diff options
Diffstat (limited to 'configs')
54 files changed, 408 insertions, 546 deletions
diff --git a/configs/baseline/airootfs/etc/localtime b/configs/baseline/airootfs/etc/localtime Binary files differnew file mode 100644 index 0000000..91558be --- /dev/null +++ b/configs/baseline/airootfs/etc/localtime diff --git a/configs/baseline/airootfs/etc/mkinitcpio.conf b/configs/baseline/airootfs/etc/mkinitcpio.conf deleted file mode 100644 index 9a851c9..0000000 --- a/configs/baseline/airootfs/etc/mkinitcpio.conf +++ /dev/null @@ -1,67 +0,0 @@ -# vim:set ft=sh -# MODULES -# The following modules are loaded before any boot hooks are -# run. Advanced users may wish to specify all system modules -# in this array. For instance: -# MODULES=(piix ide_disk reiserfs) -MODULES=() - -# BINARIES -# This setting includes any additional binaries a given user may -# wish into the CPIO image. This is run last, so it may be used to -# override the actual binaries included by a given hook -# BINARIES are dependency parsed, so you may safely ignore libraries -BINARIES=() - -# FILES -# This setting is similar to BINARIES above, however, files are added -# as-is and are not parsed in any way. This is useful for config files. -FILES=() - -# HOOKS -# This is the most important setting in this file. The HOOKS control the -# modules and scripts added to the image, and what happens at boot time. -# Order is important, and it is recommended that you do not change the -# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for -# help on a given hook. -# 'base' is _required_ unless you know precisely what you are doing. -# 'udev' is _required_ in order to automatically load modules -# 'filesystems' is _required_ unless you specify your fs modules in MODULES -# Examples: -## This setup specifies all modules in the MODULES setting above. -## No raid, lvm2, or encrypted root is needed. -# HOOKS=(base) -# -## This setup will autodetect all modules for your system and should -## work as a sane default -# HOOKS=(base udev autodetect block filesystems) -# -## This setup will generate a 'full' image which supports most systems. -## No autodetection is done. -# HOOKS=(base udev block filesystems) -# -## This setup assembles a pata mdadm array with an encrypted root FS. -## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. -# HOOKS=(base udev block mdadm encrypt filesystems) -# -## This setup loads an lvm2 volume group on a usb device. -# HOOKS=(base udev block lvm2 filesystems) -# -## NOTE: If you have /usr on a separate partition, you MUST include the -# usr, fsck and shutdown hooks. -HOOKS=(base udev modconf parabolaiso block filesystems) - -# COMPRESSION -# Use this to compress the initramfs image. By default, gzip compression -# is used. Use 'cat' to create an uncompressed image. -#COMPRESSION="gzip" -#COMPRESSION="bzip2" -#COMPRESSION="lzma" -#COMPRESSION="xz" -#COMPRESSION="lzop" -#COMPRESSION="lz4" -#COMPRESSION="zstd" - -# COMPRESSION_OPTIONS -# Additional options for the compressor -#COMPRESSION_OPTIONS=() diff --git a/configs/baseline/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf b/configs/baseline/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf new file mode 100644 index 0000000..9d4877e --- /dev/null +++ b/configs/baseline/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf @@ -0,0 +1 @@ +HOOKS=(base udev modconf parabolaiso block filesystems) diff --git a/configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset b/configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset index 625a03d..282bcde 100644 --- a/configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset +++ b/configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset @@ -3,6 +3,6 @@ PRESETS=('parabolaiso') ALL_kver='/boot/vmlinuz-linux-libre' -ALL_config='/etc/mkinitcpio.conf' +parabolaiso_config='/etc/mkinitcpio.conf.d/parabolaiso.conf' parabolaiso_image="/boot/initramfs-linux-libre.img" diff --git a/configs/baseline/airootfs/etc/ssh/sshd_config b/configs/baseline/airootfs/etc/ssh/sshd_config deleted file mode 100644 index 93f7d63..0000000 --- a/configs/baseline/airootfs/etc/ssh/sshd_config +++ /dev/null @@ -1,116 +0,0 @@ -# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $ - -# This is the sshd server system-wide configuration file. See -# sshd_config(5) for more information. - -# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin - -# The strategy used for options in the default sshd_config shipped with -# OpenSSH is to specify options with their default value where -# possible, but leave them commented. Uncommented options override the -# default value. - -#Port 22 -#AddressFamily any -#ListenAddress 0.0.0.0 -#ListenAddress :: - -#HostKey /etc/ssh/ssh_host_rsa_key -#HostKey /etc/ssh/ssh_host_ecdsa_key -#HostKey /etc/ssh/ssh_host_ed25519_key - -# Ciphers and keying -#RekeyLimit default none - -# Logging -#SyslogFacility AUTH -#LogLevel INFO - -# Authentication: - -#LoginGraceTime 2m -PermitRootLogin yes -#StrictModes yes -#MaxAuthTries 6 -#MaxSessions 10 - -#PubkeyAuthentication yes - -# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 -# but this is overridden so installations will only check .ssh/authorized_keys -AuthorizedKeysFile .ssh/authorized_keys - -#AuthorizedPrincipalsFile none - -#AuthorizedKeysCommand none -#AuthorizedKeysCommandUser nobody - -# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts -#HostbasedAuthentication no -# Change to yes if you don't trust ~/.ssh/known_hosts for -# HostbasedAuthentication -#IgnoreUserKnownHosts no -# Don't read the user's ~/.rhosts and ~/.shosts files -#IgnoreRhosts yes - -# To disable tunneled clear text passwords, change to no here! -#PasswordAuthentication yes -#PermitEmptyPasswords no - -# Change to no to disable s/key passwords -#KbdInteractiveAuthentication yes - -# Kerberos options -#KerberosAuthentication no -#KerberosOrLocalPasswd yes -#KerberosTicketCleanup yes -#KerberosGetAFSToken no - -# GSSAPI options -#GSSAPIAuthentication no -#GSSAPICleanupCredentials yes - -# Set this to 'yes' to enable PAM authentication, account processing, -# and session processing. If this is enabled, PAM authentication will -# be allowed through the KbdInteractiveAuthentication and -# PasswordAuthentication. Depending on your PAM configuration, -# PAM authentication via KbdInteractiveAuthentication may bypass -# the setting of "PermitRootLogin without-password". -# If you just want the PAM account and session checks to run without -# PAM authentication, then enable this but set PasswordAuthentication -# and KbdInteractiveAuthentication to 'no'. -UsePAM yes - -#AllowAgentForwarding yes -#AllowTcpForwarding yes -#GatewayPorts no -#X11Forwarding no -#X11DisplayOffset 10 -#X11UseLocalhost yes -#PermitTTY yes -PrintMotd no # pam does that -#PrintLastLog yes -#TCPKeepAlive yes -#PermitUserEnvironment no -#Compression delayed -#ClientAliveInterval 0 -#ClientAliveCountMax 3 -#UseDNS no -#PidFile /run/sshd.pid -#MaxStartups 10:30:100 -#PermitTunnel no -#ChrootDirectory none -#VersionAddendum none - -# no default banner path -#Banner none - -# override default of no subsystems -Subsystem sftp /usr/lib/ssh/sftp-server - -# Example of overriding settings on a per-user basis -#Match User anoncvs -# X11Forwarding no -# AllowTcpForwarding no -# PermitTTY no -# ForceCommand cvs server diff --git a/configs/baseline/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf b/configs/baseline/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf new file mode 100644 index 0000000..6ea7b41 --- /dev/null +++ b/configs/baseline/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf @@ -0,0 +1,3 @@ +# Allow root login using password authentication +PasswordAuthentication yes +PermitRootLogin yes diff --git a/configs/baseline/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/configs/baseline/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf new file mode 100644 index 0000000..0e9ceb4 --- /dev/null +++ b/configs/baseline/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf @@ -0,0 +1,2 @@ +[Network] +IPv6PrivacyExtensions=yes diff --git a/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network b/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network index 4b6a2ab..0e4287b 100644 --- a/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network +++ b/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network @@ -5,6 +5,9 @@ Name=en* Name=eth* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes -IPv6PrivacyExtensions=yes +MulticastDNS=yes diff --git a/configs/baseline/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf b/configs/baseline/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf new file mode 100644 index 0000000..5d64185 --- /dev/null +++ b/configs/baseline/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf @@ -0,0 +1,4 @@ +# Default systemd-resolved configuration for parabolaiso + +[Resolve] +MulticastDNS=yes diff --git a/configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service b/configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service deleted file mode 120000 index 8e3ff80..0000000 --- a/configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/qemu-guest-agent.service
\ No newline at end of file diff --git a/configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf b/configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf index e89de03..dcfa3a9 100644 --- a/configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf +++ b/configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf @@ -1,4 +1,4 @@ title Parabola GNU/Linux-libre (x86_64, UEFI) linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% +options parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% diff --git a/configs/baseline/efiboot/loader/entries/02-parabolaiso-x86_64-ram-linux-libre.conf b/configs/baseline/efiboot/loader/entries/02-parabolaiso-x86_64-ram-linux-libre.conf deleted file mode 100644 index 630af00..0000000 --- a/configs/baseline/efiboot/loader/entries/02-parabolaiso-x86_64-ram-linux-libre.conf +++ /dev/null @@ -1,4 +0,0 @@ -title Parabola GNU/Linux-libre (x86_64, UEFI) Copy to RAM -linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre -initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram diff --git a/configs/baseline/grub/grub.cfg b/configs/baseline/grub/grub.cfg index ddcfa41..540ba68 100644 --- a/configs/baseline/grub/grub.cfg +++ b/configs/baseline/grub/grub.cfg @@ -3,23 +3,55 @@ insmod part_gpt insmod part_msdos insmod fat insmod iso9660 +insmod ntfs +insmod ntfscomp +insmod exfat +insmod udf # Use graphics-mode output -insmod all_video -insmod font if loadfont "${prefix}/fonts/unicode.pf2" ; then - insmod gfxterm + insmod all_video set gfxmode="auto" terminal_input console - terminal_output gfxterm + terminal_output console fi # Enable serial console +insmod serial +insmod usbserial_common +insmod usbserial_ftdi +insmod usbserial_pl2303 +insmod usbserial_usbdebug if serial --unit=0 --speed=115200; then terminal_input --append serial terminal_output --append serial fi +# Search for the ISO volume +if [ -z "${PARABOLAISO_UUID}" ]; then + if [ -z "${PARABOLAISO_HINT}" ]; then + regexp --set=1:PARABOLAISO_HINT '^\(([^)]+)\)' "${cmdpath}" + fi + search --no-floppy --set=root --file '%PARABOLAISO_SEARCH_FILENAME%' --hint "${PARABOLAISO_HINT}" + probe --set PARABOLAISO_UUID --fs-uuid "${root}" +fi + +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + parabolaiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + parabolaiso_platform="x64 ${parabolaiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + parabolaiso_platform="IA32 ${parabolaiso_platform}" + else + parabolaiso_platform="${grub_cpu} ${parabolaiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + parabolaiso_platform='BIOS' +else + parabolaiso_platform="${grub_cpu} ${grub_platform}" +fi + # Set default menu entry default=parabola timeout=15 @@ -27,16 +59,46 @@ timeout_style=menu # Menu entries -menuentry "Parabola GNU/Linux-libre (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'parabola' { +menuentry "Parabola GNU/Linux-libre (%ARCH%, ${parabolaiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'parabola' { set gfxpayload=keep - search --no-floppy --set=root --label %PARABOLAISO_LABEL% - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% - initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=${PARABOLAISO_UUID} + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img } -menuentry "Parabola GNU/Linux-libre (x86_64, UEFI) Copy to RAM" --class arch --class gnu-linux --class gnu --class os --id 'parabola-copy-to-ram' { - set gfxpayload=keep - search --no-floppy --set=root --label %PARABOLAISO_LABEL% - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram - initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' { + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' { + chainloader /shellia32.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' + reboot } diff --git a/configs/baseline/grub/loopback.cfg b/configs/baseline/grub/loopback.cfg new file mode 100644 index 0000000..149c879 --- /dev/null +++ b/configs/baseline/grub/loopback.cfg @@ -0,0 +1,73 @@ +# https://www.supergrubdisk.org/wiki/Loopback.cfg + +# Search for the ISO volume +search --no-floppy --set=parabolaiso_img_dev --file "${iso_path}" +probe --set parabolaiso_img_dev_uuid --fs-uuid "${parabolaiso_img_dev}" + +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + parabolaiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + parabolaiso_platform="x64 ${parabolaiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + parabolaiso_platform="IA32 ${parabolaiso_platform}" + else + parabolaiso_platform="${grub_cpu} ${parabolaiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + parabolaiso_platform='BIOS' +else + parabolaiso_platform="${grub_cpu} ${grub_platform}" +fi + +# Set default menu entry +default=parabola +timeout=15 +timeout_style=menu + + +# Menu entries + +menuentry "Parabola GNU/Linux-libre (%ARCH%, ${parabolaiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'parabola' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% img_dev=UUID=${parabolaiso_img_dev_uuid} img_loop="${iso_path}" + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img +} + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' { + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' { + chainloader /shellia32.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' + reboot +} diff --git a/configs/baseline/pacman.conf b/configs/baseline/pacman.conf index 7bcfccb..59821bc 100644 --- a/configs/baseline/pacman.conf +++ b/configs/baseline/pacman.conf @@ -77,21 +77,12 @@ LocalFileSigLevel = Optional [libre] Include = /etc/pacman.d/mirrorlist -#[testing] -#Include = /etc/pacman.d/mirrorlist - [core] Include = /etc/pacman.d/mirrorlist [extra] Include = /etc/pacman.d/mirrorlist -#[community-testing] -#Include = /etc/pacman.d/mirrorlist - -[community] -Include = /etc/pacman.d/mirrorlist - #[pcr-testing] #Include = /etc/pacman.d/mirrorlist diff --git a/configs/baseline/profiledef.sh b/configs/baseline/profiledef.sh index 7e714ef..7c35814 100644 --- a/configs/baseline/profiledef.sh +++ b/configs/baseline/profiledef.sh @@ -2,10 +2,10 @@ # shellcheck disable=SC2034 iso_name="parabola-baseline" -iso_label="PARA_$(date +%Y%m)" +iso_label="PARA_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" iso_publisher="Parabola GNU/Linux-libre <https://parabola.nu>" iso_application="Parabola GNU/Linux-libre baseline" -iso_version="$(date +%Y.%m.%d)" +iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" install_dir="parabola" buildmodes=('iso') bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' @@ -14,7 +14,7 @@ bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' arch="x86_64" pacman_conf="pacman.conf" airootfs_image_type="erofs" -airootfs_image_tool_options=('-zlz4hc,12' -E ztailpacking) +airootfs_image_tool_options=('-zlzma,109' -E 'ztailpacking,fragments,dedupe') file_permissions=( ["/etc/shadow"]="0:0:400" ) diff --git a/configs/baseline/syslinux/syslinux-linux-libre.cfg b/configs/baseline/syslinux/syslinux-linux-libre.cfg index 47ac1e7..458bfe4 100644 --- a/configs/baseline/syslinux/syslinux-linux-libre.cfg +++ b/configs/baseline/syslinux/syslinux-linux-libre.cfg @@ -2,10 +2,4 @@ LABEL parabola MENU LABEL Parabola GNU/Linux-libre (x86_64, BIOS) LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% - -LABEL parabola-ram -MENU LABEL Parabola GNU/Linux-libre (x86_64, BIOS) Copy to RAM -LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre -INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% diff --git a/configs/releng/airootfs/etc/mkinitcpio.conf b/configs/releng/airootfs/etc/mkinitcpio.conf deleted file mode 100644 index f1d34eb..0000000 --- a/configs/releng/airootfs/etc/mkinitcpio.conf +++ /dev/null @@ -1,67 +0,0 @@ -# vim:set ft=sh -# MODULES -# The following modules are loaded before any boot hooks are -# run. Advanced users may wish to specify all system modules -# in this array. For instance: -# MODULES=(piix ide_disk reiserfs) -MODULES=() - -# BINARIES -# This setting includes any additional binaries a given user may -# wish into the CPIO image. This is run last, so it may be used to -# override the actual binaries included by a given hook -# BINARIES are dependency parsed, so you may safely ignore libraries -BINARIES=() - -# FILES -# This setting is similar to BINARIES above, however, files are added -# as-is and are not parsed in any way. This is useful for config files. -FILES=() - -# HOOKS -# This is the most important setting in this file. The HOOKS control the -# modules and scripts added to the image, and what happens at boot time. -# Order is important, and it is recommended that you do not change the -# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for -# help on a given hook. -# 'base' is _required_ unless you know precisely what you are doing. -# 'udev' is _required_ in order to automatically load modules -# 'filesystems' is _required_ unless you specify your fs modules in MODULES -# Examples: -## This setup specifies all modules in the MODULES setting above. -## No raid, lvm2, or encrypted root is needed. -# HOOKS=(base) -# -## This setup will autodetect all modules for your system and should -## work as a sane default -# HOOKS=(base udev autodetect block filesystems) -# -## This setup will generate a 'full' image which supports most systems. -## No autodetection is done. -# HOOKS=(base udev block filesystems) -# -## This setup assembles a pata mdadm array with an encrypted root FS. -## Note: See 'mkinitcpio -H mdadm' for more information on raid devices. -# HOOKS=(base udev block mdadm encrypt filesystems) -# -## This setup loads an lvm2 volume group on a usb device. -# HOOKS=(base udev block lvm2 filesystems) -# -## NOTE: If you have /usr on a separate partition, you MUST include the -# usr, fsck and shutdown hooks. -HOOKS=(base udev modconf memdisk parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block filesystems keyboard) - -# COMPRESSION -# Use this to compress the initramfs image. By default, gzip compression -# is used. Use 'cat' to create an uncompressed image. -#COMPRESSION="gzip" -#COMPRESSION="bzip2" -#COMPRESSION="lzma" -COMPRESSION="xz" -#COMPRESSION="lzop" -#COMPRESSION="lz4" -#COMPRESSION="zstd" - -# COMPRESSION_OPTIONS -# Additional options for the compressor -#COMPRESSION_OPTIONS=() diff --git a/configs/releng/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf b/configs/releng/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf new file mode 100644 index 0000000..26c74ea --- /dev/null +++ b/configs/releng/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf @@ -0,0 +1,2 @@ +HOOKS=(base udev modconf kms memdisk parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs block filesystems keyboard) +COMPRESSION="xz" diff --git a/configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset b/configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset index 625a03d..282bcde 100644 --- a/configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset +++ b/configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset @@ -3,6 +3,6 @@ PRESETS=('parabolaiso') ALL_kver='/boot/vmlinuz-linux-libre' -ALL_config='/etc/mkinitcpio.conf' +parabolaiso_config='/etc/mkinitcpio.conf.d/parabolaiso.conf' parabolaiso_image="/boot/initramfs-linux-libre.img" diff --git a/configs/releng/airootfs/etc/ssh/sshd_config b/configs/releng/airootfs/etc/ssh/sshd_config deleted file mode 100644 index 93f7d63..0000000 --- a/configs/releng/airootfs/etc/ssh/sshd_config +++ /dev/null @@ -1,116 +0,0 @@ -# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $ - -# This is the sshd server system-wide configuration file. See -# sshd_config(5) for more information. - -# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin - -# The strategy used for options in the default sshd_config shipped with -# OpenSSH is to specify options with their default value where -# possible, but leave them commented. Uncommented options override the -# default value. - -#Port 22 -#AddressFamily any -#ListenAddress 0.0.0.0 -#ListenAddress :: - -#HostKey /etc/ssh/ssh_host_rsa_key -#HostKey /etc/ssh/ssh_host_ecdsa_key -#HostKey /etc/ssh/ssh_host_ed25519_key - -# Ciphers and keying -#RekeyLimit default none - -# Logging -#SyslogFacility AUTH -#LogLevel INFO - -# Authentication: - -#LoginGraceTime 2m -PermitRootLogin yes -#StrictModes yes -#MaxAuthTries 6 -#MaxSessions 10 - -#PubkeyAuthentication yes - -# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 -# but this is overridden so installations will only check .ssh/authorized_keys -AuthorizedKeysFile .ssh/authorized_keys - -#AuthorizedPrincipalsFile none - -#AuthorizedKeysCommand none -#AuthorizedKeysCommandUser nobody - -# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts -#HostbasedAuthentication no -# Change to yes if you don't trust ~/.ssh/known_hosts for -# HostbasedAuthentication -#IgnoreUserKnownHosts no -# Don't read the user's ~/.rhosts and ~/.shosts files -#IgnoreRhosts yes - -# To disable tunneled clear text passwords, change to no here! -#PasswordAuthentication yes -#PermitEmptyPasswords no - -# Change to no to disable s/key passwords -#KbdInteractiveAuthentication yes - -# Kerberos options -#KerberosAuthentication no -#KerberosOrLocalPasswd yes -#KerberosTicketCleanup yes -#KerberosGetAFSToken no - -# GSSAPI options -#GSSAPIAuthentication no -#GSSAPICleanupCredentials yes - -# Set this to 'yes' to enable PAM authentication, account processing, -# and session processing. If this is enabled, PAM authentication will -# be allowed through the KbdInteractiveAuthentication and -# PasswordAuthentication. Depending on your PAM configuration, -# PAM authentication via KbdInteractiveAuthentication may bypass -# the setting of "PermitRootLogin without-password". -# If you just want the PAM account and session checks to run without -# PAM authentication, then enable this but set PasswordAuthentication -# and KbdInteractiveAuthentication to 'no'. -UsePAM yes - -#AllowAgentForwarding yes -#AllowTcpForwarding yes -#GatewayPorts no -#X11Forwarding no -#X11DisplayOffset 10 -#X11UseLocalhost yes -#PermitTTY yes -PrintMotd no # pam does that -#PrintLastLog yes -#TCPKeepAlive yes -#PermitUserEnvironment no -#Compression delayed -#ClientAliveInterval 0 -#ClientAliveCountMax 3 -#UseDNS no -#PidFile /run/sshd.pid -#MaxStartups 10:30:100 -#PermitTunnel no -#ChrootDirectory none -#VersionAddendum none - -# no default banner path -#Banner none - -# override default of no subsystems -Subsystem sftp /usr/lib/ssh/sftp-server - -# Example of overriding settings on a per-user basis -#Match User anoncvs -# X11Forwarding no -# AllowTcpForwarding no -# PermitTTY no -# ForceCommand cvs server diff --git a/configs/releng/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf b/configs/releng/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf new file mode 100644 index 0000000..6ea7b41 --- /dev/null +++ b/configs/releng/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf @@ -0,0 +1,3 @@ +# Allow root login using password authentication +PasswordAuthentication yes +PermitRootLogin yes diff --git a/configs/releng/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/configs/releng/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf new file mode 100644 index 0000000..0e9ceb4 --- /dev/null +++ b/configs/releng/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf @@ -0,0 +1,2 @@ +[Network] +IPv6PrivacyExtensions=yes diff --git a/configs/releng/airootfs/etc/systemd/network/20-ethernet.network b/configs/releng/airootfs/etc/systemd/network/20-ethernet.network index 9ada778..d3a3271 100644 --- a/configs/releng/airootfs/etc/systemd/network/20-ethernet.network +++ b/configs/releng/airootfs/etc/systemd/network/20-ethernet.network @@ -5,9 +5,12 @@ Name=en* Name=eth* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes -IPv6PrivacyExtensions=yes +MulticastDNS=yes # systemd-networkd does not set per-interface-type default route metrics # https://github.com/systemd/systemd/issues/17698 diff --git a/configs/releng/airootfs/etc/systemd/network/20-wlan.network b/configs/releng/airootfs/etc/systemd/network/20-wlan.network index 601d5b8..8b70a95 100644 --- a/configs/releng/airootfs/etc/systemd/network/20-wlan.network +++ b/configs/releng/airootfs/etc/systemd/network/20-wlan.network @@ -1,9 +1,12 @@ [Match] Name=wl* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes -IPv6PrivacyExtensions=yes +MulticastDNS=yes # systemd-networkd does not set per-interface-type default route metrics # https://github.com/systemd/systemd/issues/17698 diff --git a/configs/releng/airootfs/etc/systemd/network/20-wwan.network b/configs/releng/airootfs/etc/systemd/network/20-wwan.network index 55dadc2..6e1c8dd 100644 --- a/configs/releng/airootfs/etc/systemd/network/20-wwan.network +++ b/configs/releng/airootfs/etc/systemd/network/20-wwan.network @@ -1,9 +1,11 @@ [Match] -Type=ww* +Name=ww* + +[Link] +RequiredForOnline=routable [Network] DHCP=yes -IPv6PrivacyExtensions=yes # systemd-networkd does not set per-interface-type default route metrics # https://github.com/systemd/systemd/issues/17698 @@ -11,7 +13,7 @@ IPv6PrivacyExtensions=yes # Use values from NetworkManager. From nm_device_get_route_metric_default in # https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c [DHCPv4] -RouteMetric=2048 +RouteMetric=700 [IPv6AcceptRA] RouteMetric=700 diff --git a/configs/releng/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf b/configs/releng/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf new file mode 100644 index 0000000..5d64185 --- /dev/null +++ b/configs/releng/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf @@ -0,0 +1,4 @@ +# Default systemd-resolved configuration for parabolaiso + +[Resolve] +MulticastDNS=yes diff --git a/configs/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service b/configs/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/configs/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service
\ No newline at end of file diff --git a/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount index 0ba0e67..038961e 100644 --- a/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount +++ b/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -2,7 +2,7 @@ Description=Temporary /etc/pacman.d/gnupg directory [Mount] -What=ramfs +What=tmpfs Where=/etc/pacman.d/gnupg -Type=ramfs -Options=mode=0755 +Type=tmpfs +Options=mode=0755,noswap diff --git a/configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service b/configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service deleted file mode 120000 index 8e3ff80..0000000 --- a/configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/qemu-guest-agent.service
\ No newline at end of file diff --git a/configs/releng/airootfs/etc/systemd/system/pacman-init.service b/configs/releng/airootfs/etc/systemd/system/pacman-init.service index b18f7f8..b824884 100644 --- a/configs/releng/airootfs/etc/systemd/system/pacman-init.service +++ b/configs/releng/airootfs/etc/systemd/system/pacman-init.service @@ -1,7 +1,9 @@ [Unit] Description=Initializes Pacman keyring Requires=etc-pacman.d-gnupg.mount -After=etc-pacman.d-gnupg.mount +After=etc-pacman.d-gnupg.mount time-sync.target +BindsTo=etc-pacman.d-gnupg.mount +Before=archlinux-keyring-wkd-sync.service [Service] Type=oneshot diff --git a/configs/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket b/configs/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket new file mode 120000 index 0000000..3897c63 --- /dev/null +++ b/configs/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/pcscd.socket
\ No newline at end of file diff --git a/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service b/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service new file mode 120000 index 0000000..cabf28b --- /dev/null +++ b/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-time-wait-sync.service
\ No newline at end of file diff --git a/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service b/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service
\ No newline at end of file diff --git a/configs/releng/airootfs/root/.automated_script.sh b/configs/releng/airootfs/root/.automated_script.sh index 52c47e6..0d95012 100755 --- a/configs/releng/airootfs/root/.automated_script.sh +++ b/configs/releng/airootfs/root/.automated_script.sh @@ -1,22 +1,29 @@ #!/usr/bin/env bash -script_cmdline () -{ +script_cmdline() { local param - for param in $(< /proc/cmdline); do + for param in $(</proc/cmdline); do case "${param}" in - script=*) echo "${param#*=}" ; return 0 ;; + script=*) + echo "${param#*=}" + return 0 + ;; esac done } -automated_script () -{ +automated_script() { local script rt script="$(script_cmdline)" if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then - if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then - curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script >/dev/null + if [[ "${script}" =~ ^((http|https|ftp|tftp)://) ]]; then + # there's no synchronization for network availability before executing this script + printf '%s: waiting for network-online.target\n' "$0" + until systemctl --quiet is-active network-online.target; do + sleep 1 + done + printf '%s: downloading %s\n' "$0" "${script}" + curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script rt=$? else cp "${script}" /tmp/startup_script @@ -24,6 +31,9 @@ automated_script () fi if [[ ${rt} -eq 0 ]]; then chmod +x /tmp/startup_script + printf '%s: executing automated script\n' "$0" + # note that script is executed when other services (like pacman-init) may be still in progress, please + # synchronize to "systemctl is-system-running --wait" when your script depends on other services /tmp/startup_script fi fi diff --git a/configs/releng/airootfs/root/.gnupg/scdaemon.conf b/configs/releng/airootfs/root/.gnupg/scdaemon.conf new file mode 100644 index 0000000..e1f3d1f --- /dev/null +++ b/configs/releng/airootfs/root/.gnupg/scdaemon.conf @@ -0,0 +1,4 @@ +disable-ccid +disable-pinpad +pcsc-driver /usr/lib/libpcsclite.so +pcsc-shared diff --git a/configs/releng/airootfs/root/.zlogin b/configs/releng/airootfs/root/.zlogin index 0fb119d..bf6bc8f 100644 --- a/configs/releng/airootfs/root/.zlogin +++ b/configs/releng/airootfs/root/.zlogin @@ -1,5 +1,5 @@ # fix for screen readers -if grep -Fq 'accessibility=' /proc/cmdline &> /dev/null; then +if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then setopt SINGLE_LINE_ZLE fi diff --git a/configs/releng/airootfs/usr/local/bin/choose-mirror b/configs/releng/airootfs/usr/local/bin/choose-mirror index e8f8254..2f881e4 100755 --- a/configs/releng/airootfs/usr/local/bin/choose-mirror +++ b/configs/releng/airootfs/usr/local/bin/choose-mirror @@ -4,21 +4,22 @@ get_cmdline() { local param - for param in $(< /proc/cmdline); do + for param in $(</proc/cmdline); do case "${param}" in - $1=*) echo "${param##*=}"; - return 0 - ;; + "${1}="*) + echo "${param##*=}" + return 0 + ;; esac done } -mirror=$(get_cmdline mirror) -[[ $mirror = auto ]] && mirror=$(get_cmdline parabolaiso_http_srv) -[[ $mirror ]] || exit 0 +mirror="$(get_cmdline mirror)" +[[ "$mirror" == 'auto' ]] && mirror="$(get_cmdline parabolaiso_http_srv)" +[[ -n "$mirror" ]] || exit 0 mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig -cat >/etc/pacman.d/mirrorlist << EOF +cat >/etc/pacman.d/mirrorlist <<EOF # # Parabola GNU/Linux-libre repository mirrorlist # Generated by parabolaiso diff --git a/configs/releng/airootfs/usr/local/bin/livecd-sound b/configs/releng/airootfs/usr/local/bin/livecd-sound index baae0d2..b92fcf2 100755 --- a/configs/releng/airootfs/usr/local/bin/livecd-sound +++ b/configs/releng/airootfs/usr/local/bin/livecd-sound @@ -3,7 +3,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later usage() { - cat <<- _EOF_ + cat <<-_EOF_ live cd sound helper script. Usage: livecdsound [OPTION] OPTIONS @@ -14,14 +14,13 @@ usage() { _EOF_ } -bugout () { +bugout() { printf "/usr/local/bin/livecdsound: programming error" stat_fail } -echo_card_indices() -{ - if [ -f /proc/asound/cards ] ; then +echo_card_indices() { + if [[ -f /proc/asound/cards ]]; then sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards fi } @@ -33,8 +32,8 @@ echo_card_indices() # $1 <card id> # $2 <control> # $3 <level> -unmute_and_set_level(){ - { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout +unmute_and_set_level() { + [[ -n "$3" && -n "$2" && -n "$1" ]] || bugout systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute return 0 @@ -42,9 +41,8 @@ unmute_and_set_level(){ # $1 <card id> # $2 <control> -mute_and_zero_level() -{ - { [ "$1" ] && [ "$2" ] ; } || bugout +mute_and_zero_level() { + [[ -n "$1" && -n "$2" ]] || bugout systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute return 0 @@ -53,17 +51,15 @@ mute_and_zero_level() # $1 <card ID> # $2 <control> # $3 "on" | "off" -switch_control() -{ - { [ "$3" ] && [ "$1" ] ; } || bugout +switch_control() { + [[ -n "$3" && -n "$1" ]] || bugout systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" return 0 } # $1 <card ID> -sanify_levels_on_card() -{ +sanify_levels_on_card() { unmute_and_set_level "$1" "Front" "80%" unmute_and_set_level "$1" "Master" "80%" unmute_and_set_level "$1" "Master Mono" "80%" @@ -134,94 +130,89 @@ sanify_levels_on_card() } # $1 <card ID> | "all" -sanify_levels() -{ +sanify_levels() { local ttsdml_returnstatus=0 local card case "$1" in - all) - for card in $(echo_card_indices) ; do - sanify_levels_on_card "$card" || ttsdml_returnstatus=1 - done - ;; - *) - sanify_levels_on_card "$1" || ttsdml_returnstatus=1 - ;; + all) + for card in $(echo_card_indices); do + sanify_levels_on_card "$card" || ttsdml_returnstatus=1 + done + ;; + *) + sanify_levels_on_card "$1" || ttsdml_returnstatus=1 + ;; esac - return $ttsdml_returnstatus + return "$ttsdml_returnstatus" } # List all cards that *should* be usable for PCM audio. In my experience, # the console speaker (handled by the pcsp driver) isn't a suitable playback # device, so we'll exclude it. -list_non_pcsp_cards() -{ +list_non_pcsp_cards() { for card in $(echo_card_indices); do local cardfile="/proc/asound/card${card}/id" - if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \ - [ "$(cat "$cardfile")" != pcsp ]; then + if [[ -r "$cardfile" && -f "$cardfile" && "$(cat "$cardfile")" != pcsp ]]; then echo "$card" fi done } # Properly initialize the sound card so that we have audio at boot. -unmute_all_cards() -{ +unmute_all_cards() { sanify_levels all } is_numeric() { - local str=$1 + local str="$1" [[ "$str" =~ ^[0-9]+$ ]] } set_default_card() { - local card=$1 - sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \ - > /etc/asound.conf + local card="$1" + sed -e "s/%card%/$card/g" </usr/local/share/livecd-sound/asound.conf.in \ + >/etc/asound.conf } play_on_card() { - local card=$1 file=$2 + local card="$1" file="$2" aplay -q "-Dplughw:$card,0" "$file" } # If there are multiple usable sound cards, prompt the user to choose one, # using auditory feedback. -pick_a_card() -{ +pick_a_card() { set -f usable_cards="$(list_non_pcsp_cards)" - num_usable_cards="$(wc -w <<< "$usable_cards")" + num_usable_cards="$(wc -w <<<"$usable_cards")" - if [ "$num_usable_cards" -eq 1 ]; then + if (( num_usable_cards == 1 )); then systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" exit 0 fi systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" - for card in $usable_cards; do + for card in "${usable_cards[@]}"; do if ! is_numeric "$card"; then continue fi - play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& + play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav & done wait sleep 1 - for card in $usable_cards; do + for card in "${usable_cards[@]}"; do if ! is_numeric "$card"; then continue - fi - play_on_card "$card" /usr/share/livecd-sounds/beep.wav - if read -r -t 10; then - systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" - set_default_card "$card" - break - fi -done + fi + play_on_card "$card" /usr/share/livecd-sounds/beep.wav + if read -r -t 10; then + systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" + set_default_card "$card" + break + fi + done } -if [[ $# -eq 0 ]]; then +if (( $# == 0 )); then echo "error: No argument passed." exit 1 fi diff --git a/configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf b/configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf index 925962a..1af7867 100644 --- a/configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf +++ b/configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf @@ -2,4 +2,4 @@ title Parabola GNU/Linux-libre install medium (x86_64, UEFI) sort-key 01 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% +options parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% diff --git a/configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf b/configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf index e2f3cbe..3bb7725 100644 --- a/configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf +++ b/configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf @@ -2,4 +2,4 @@ title Parabola GNU/Linux-libre install medium (x86_64, UEFI) with speech sort-key 02 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on +options parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% accessibility=on diff --git a/configs/releng/efiboot/loader/entries/03-parabolaiso-x86_64-ram-linux-libre.conf b/configs/releng/efiboot/loader/entries/03-parabolaiso-x86_64-ram-linux-libre.conf deleted file mode 100644 index ea54bc3..0000000 --- a/configs/releng/efiboot/loader/entries/03-parabolaiso-x86_64-ram-linux-libre.conf +++ /dev/null @@ -1,5 +0,0 @@ -title Parabola GNU/Linux-libre install medium (x86_64, UEFI, Copy to RAM) -sort-key 03 -linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre -initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram diff --git a/configs/releng/efiboot/loader/entries/04-parabolaiso-x86_64-ram-speech-linux-libre.conf b/configs/releng/efiboot/loader/entries/04-parabolaiso-x86_64-ram-speech-linux-libre.conf deleted file mode 100644 index 9a5b99b..0000000 --- a/configs/releng/efiboot/loader/entries/04-parabolaiso-x86_64-ram-speech-linux-libre.conf +++ /dev/null @@ -1,5 +0,0 @@ -title Parabola GNU/Linux-libre install medium (x86_64, UEFI, Copy to RAM) with speech -sort-key 04 -linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre -initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram accessibility=on diff --git a/configs/releng/grub/grub.cfg b/configs/releng/grub/grub.cfg index c8c885e..4266ef3 100644 --- a/configs/releng/grub/grub.cfg +++ b/configs/releng/grub/grub.cfg @@ -3,15 +3,18 @@ insmod part_gpt insmod part_msdos insmod fat insmod iso9660 +insmod ntfs +insmod ntfscomp +insmod exfat +insmod udf # Use graphics-mode output insmod all_video insmod font if loadfont "${prefix}/fonts/unicode.pf2" ; then - insmod gfxterm set gfxmode="auto" terminal_input console - terminal_output gfxterm + terminal_output console fi # Enable serial console @@ -20,6 +23,15 @@ if serial --unit=0 --speed=115200; then terminal_output --append serial fi +# Search for the ISO volume +if [ -z "${PARABOLAISO_UUID}" ]; then + if [ -z "${PARABOLAISO_HINT}" ]; then + regexp --set=1:PARABOLAISO_HINT '^\(([^)]+)\)' "${cmdpath}" + fi + search --no-floppy --set=root --file '%PARABOLAISO_SEARCH_FILENAME%' --hint "${PARABOLAISO_HINT}" + probe --set PARABOLAISO_UUID --fs-uuid "${root}" +fi + # Set default menu entry default=parabola timeout=15 @@ -32,29 +44,29 @@ play 600 988 1 1319 4 menuentry "Parabola GNU/Linux-libre install medium (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'parabola' { set gfxpayload=keep - search --no-floppy --set=root --label %PARABOLAISO_LABEL% - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=${PARABOLAISO_UUID} initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img } menuentry "Parabola GNU/Linux-libre install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'parabola-accessibility' { set gfxpayload=keep - search --no-floppy --set=root --label %PARABOLAISO_LABEL% - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=${PARABOLAISO_UUID} accessibility=on initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img } if [ "${grub_platform}" == "efi" ]; then if [ "${grub_cpu}" == "x86_64" ]; then - menuentry "UEFI Shell" { + menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } + menuentry "UEFI Shell" --class efi { insmod chain - search --no-floppy --set=root --label %PARABOLAISO_LABEL% chainloader /shellx64.efi } elif [ "${grub_cpu}" == "i386" ]; then - menuentry "UEFI Shell" { + menuentry "UEFI Shell" --class efi { insmod chain - search --no-floppy --set=root --label %PARABOLAISO_LABEL% chainloader /shellia32.efi } fi diff --git a/configs/releng/grub/loopback.cfg b/configs/releng/grub/loopback.cfg new file mode 100644 index 0000000..6ac328c --- /dev/null +++ b/configs/releng/grub/loopback.cfg @@ -0,0 +1,80 @@ +# https://www.supergrubdisk.org/wiki/Loopback.cfg + +# Search for the ISO volume +search --no-floppy --set=parabolaiso_img_dev --file "${iso_path}" +probe --set parabolaiso_img_dev_uuid --fs-uuid "${parabolaiso_img_dev}" + +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + parabolaiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + parabolaiso_platform="x64 ${parabolaiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + parabolaiso_platform="IA32 ${parabolaiso_platform}" + else + parabolaiso_platform="${grub_cpu} ${parabolaiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + parabolaiso_platform='BIOS' +else + parabolaiso_platform="${grub_cpu} ${grub_platform}" +fi + +# Set default menu entry +default=parabola +timeout=15 +timeout_style=menu + + +# Menu entries + +menuentry "Parabola GNU/Linux-libre install medium (%ARCH%, ${parabolaiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'parabola' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% img_dev=UUID=${parabolaiso_img_dev_uuid} img_loop="${iso_path}" + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img +} + +menuentry "Parabola GNU/Linux-libre install medium with speakup screen reader (%ARCH%, ${parabolaiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'parabola-accessibility' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% img_dev=UUID=${parabolaiso_img_dev_uuid} img_loop="${iso_path}" accessibility=on + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img +} + + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellia32.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' + reboot +} diff --git a/configs/releng/packages.both b/configs/releng/packages.both index aabb1e6..9828871 100644 --- a/configs/releng/packages.both +++ b/configs/releng/packages.both @@ -1,7 +1,9 @@ alsa-utils arch-install-scripts base +bcachefs-tools bind +bolt brltty btrfs-progs cloud-init @@ -23,6 +25,7 @@ ethtool exfatprogs f2fs-tools fatresize +foot-terminfo fsarchiver gnu-netcat gpart @@ -53,6 +56,7 @@ man-pages mc mdadm memtest86+ +memtest86+-efi mkinitcpio mkinitcpio-parabolaiso mkinitcpio-nfs-utils @@ -67,6 +71,7 @@ ntfs-3g nvme-cli open-iscsi openconnect +openpgp-card-tools openssh openvpn partclone @@ -84,10 +89,10 @@ rp-pppoe rsync rxvt-unicode-terminfo screen +sequoia-sq sdparm sg3_utils smartmontools -sof-firmware squashfs-tools sudo syslinux @@ -96,6 +101,7 @@ tcpdump terminus-font testdisk tmux +tpm2-tools tpm2-tss udftools usb_modeswitch @@ -103,6 +109,7 @@ usbmuxd usbutils vim vpnc +wezterm-terminfo wireless-regdb wireless_tools wpa_supplicant diff --git a/configs/releng/pacman.conf b/configs/releng/pacman.conf index 79a8f69..4469abc 100644 --- a/configs/releng/pacman.conf +++ b/configs/releng/pacman.conf @@ -76,21 +76,12 @@ LocalFileSigLevel = Optional [libre] Include = /etc/pacman.d/mirrorlist -#[testing] -#Include = /etc/pacman.d/mirrorlist - [core] Include = /etc/pacman.d/mirrorlist [extra] Include = /etc/pacman.d/mirrorlist -#[community-testing] -#Include = /etc/pacman.d/mirrorlist - -[community] -Include = /etc/pacman.d/mirrorlist - #[pcr-testing] #Include = /etc/pacman.d/mirrorlist diff --git a/configs/releng/profiledef.sh b/configs/releng/profiledef.sh index 12df102..5ac639e 100644 --- a/configs/releng/profiledef.sh +++ b/configs/releng/profiledef.sh @@ -2,10 +2,10 @@ # shellcheck disable=SC2034 iso_name="parabola" -iso_label="PARA_$(date +%Y%m)" +iso_label="PARA_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" iso_publisher="Parabola GNU/Linux-libre <https://parabola.nu>" iso_application="Parabola GNU/Linux-libre Live/Rescue CD" -iso_version="$(date +%Y.%m.%d)" +iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" install_dir="parabola" buildmodes=('iso') bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' @@ -19,6 +19,7 @@ file_permissions=( ["/etc/shadow"]="0:0:400" ["/root"]="0:0:750" ["/root/.automated_script.sh"]="0:0:755" + ["/root/.gnupg"]="0:0:700" ["/usr/local/bin/choose-mirror"]="0:0:755" ["/usr/local/bin/Installation_guide"]="0:0:755" ["/usr/local/bin/livecd-sound"]="0:0:755" diff --git a/configs/releng/syslinux/parabolaiso_head.cfg b/configs/releng/syslinux/parabolaiso_head.cfg index 591097e..4f56858 100644 --- a/configs/releng/syslinux/parabolaiso_head.cfg +++ b/configs/releng/syslinux/parabolaiso_head.cfg @@ -12,7 +12,7 @@ MENU CMDLINEROW 14 MENU HELPMSGROW 16 MENU HELPMSGENDROW 29 -# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu +# Refer to https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32 MENU COLOR border 35;40 #ff777caa #a0000000 std MENU COLOR title 1;35;40 #ff777caa #a0000000 std diff --git a/configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg b/configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg index 5e44dc9..fa629f1 100644 --- a/configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg +++ b/configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg @@ -6,7 +6,7 @@ ENDTEXT MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NBD) LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre INITRD ::/%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} checksum verify +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% parabolaiso_nbd_srv=${pxeserver} cms_verify=y SYSAPPEND 3 LABEL parabola32_nfs @@ -17,7 +17,7 @@ ENDTEXT MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NFS) LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre INITRD ::/%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt checksum verify +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt cms_verify=y SYSAPPEND 3 LABEL parabola32_http @@ -28,5 +28,5 @@ ENDTEXT MENU LABEL Boot Parabola GNU/Linux-libre (i686) (HTTP) LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre INITRD ::/%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ checksum verify +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ cms_verify=y SYSAPPEND 3 diff --git a/configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg b/configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg index 9868ea9..44531ab 100644 --- a/configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg +++ b/configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg @@ -6,7 +6,7 @@ ENDTEXT MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NBD) LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre INITRD ::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} checksum verify +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% parabolaiso_nbd_srv=${pxeserver} cms_verify=y SYSAPPEND 3 LABEL parabola64_nfs @@ -17,7 +17,7 @@ ENDTEXT MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NFS) LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre INITRD ::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt checksum verify +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt cms_verify=y SYSAPPEND 3 LABEL parabola64_http @@ -28,5 +28,5 @@ ENDTEXT MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (HTTP) LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre INITRD ::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ checksum verify +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ cms_verify=y SYSAPPEND 3 diff --git a/configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg b/configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg index 4f0acb1..d15cac6 100644 --- a/configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg +++ b/configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg @@ -8,7 +8,7 @@ ENDTEXT MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS) LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% # Accessibility boot option LABEL parabola32speech @@ -19,7 +19,7 @@ ENDTEXT MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS) with ^speech LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% accessibility=on # Copy to RAM boot option LABEL parabola32ram @@ -30,4 +30,4 @@ ENDTEXT MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS, Copy to RAM) LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% copytoram diff --git a/configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg b/configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg index cbf736e..9750687 100644 --- a/configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg +++ b/configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg @@ -6,7 +6,7 @@ ENDTEXT MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS) LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% # Accessibility boot option LABEL parabola64speech @@ -17,15 +17,4 @@ ENDTEXT MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS) with ^speech LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on - -# Copy to RAM boot option -LABEL parabola64ram -TEXT HELP -Boot the Parabola GNU/Linux-libre install medium on BIOS with Copy-to-RAM option -It allows you to install Parabola GNU/Linux-libre or perform system maintenance. -ENDTEXT -MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS, Copy to RAM) -LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre -INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img -APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram +APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% accessibility=on diff --git a/configs/releng/syslinux/parabolaiso_tail.cfg b/configs/releng/syslinux/parabolaiso_tail.cfg index e5339a2..dcbb413 100644 --- a/configs/releng/syslinux/parabolaiso_tail.cfg +++ b/configs/releng/syslinux/parabolaiso_tail.cfg @@ -7,12 +7,12 @@ MENU LABEL Boot existing OS COM32 chain.c32 APPEND hd0 0 -# http://www.memtest.org/ +# https://www.memtest.org/ LABEL memtest MENU LABEL Run Memtest86+ (RAM test) LINUX /%INSTALL_DIR%/boot/memtest -# http://hdt-project.org/ +# https://wiki.syslinux.org/wiki/index.php/Hdt_(Hardware_Detection_Tool) LABEL hdt MENU LABEL Hardware Information (HDT) COM32 hdt.c32 |