Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornl6720 <nl6720@gmail.com>2020-11-17 14:10:21 +0200
committernl6720 <nl6720@gmail.com>2020-11-30 16:00:15 +0200
commit863247d0a6980906dad0308044f2f3b6ceccc110 (patch)
tree7fee2d93d14b66def36282bcb0f9676db6959004
parent183ae5279252cebca0aac5de328566e3e31b09c2 (diff)
Keep all SYSLINUX files in /syslinux
This gets rid of the duplicate ldlinux.c32 and the useless isolinux.cfg which only points to syslinux.cfg. Implements https://gitlab.archlinux.org/archlinux/archiso/-/issues/46 .
-rw-r--r--README.profile.rst13
-rwxr-xr-xarchiso/mkarchiso76
-rw-r--r--configs/baseline/isolinux/isolinux.cfg9
-rw-r--r--configs/baseline/syslinux/syslinux-linux.cfg4
-rw-r--r--configs/baseline/syslinux/syslinux.cfg4
-rw-r--r--configs/releng/isolinux/isolinux.cfg9
-rw-r--r--configs/releng/syslinux/archiso.cfg14
-rw-r--r--configs/releng/syslinux/archiso_head.cfg4
-rw-r--r--configs/releng/syslinux/archiso_pxe-linux.cfg12
-rw-r--r--configs/releng/syslinux/archiso_pxe.cfg6
-rw-r--r--configs/releng/syslinux/archiso_sys-linux.cfg8
-rw-r--r--configs/releng/syslinux/archiso_sys.cfg6
-rw-r--r--configs/releng/syslinux/archiso_tail.cfg12
-rw-r--r--configs/releng/syslinux/syslinux.cfg17
14 files changed, 64 insertions, 130 deletions
diff --git a/README.profile.rst b/README.profile.rst
index 1729319..6541bd7 100644
--- a/README.profile.rst
+++ b/README.profile.rst
@@ -9,7 +9,6 @@ An archiso profile consists of several configuration files and a directory for f
profile
|- airootfs/
|- efiboot/
- |- isolinux/
|- syslinux/
|- packages.arch
|- pacman.conf
@@ -133,21 +132,13 @@ selected in **profiledef.sh**. It contains configuration for `systemd-boot
The *custom template identifiers* are **only** understood in the boot loader entry `.conf` files (i.e. **not** in
`loader.conf`).
-isolinux
---------
-
-This directory is mandatory when the `bios.syslinux.eltorito` bootmode is selected in **profiledef.sh**.
-It contains configuration for `isolinux <https://wiki.syslinux.org/wiki/index.php?title=ISOLINUX>`_ used in the resuling
-image.
-
-The *custom template identifiers* are understood in all `.cfg` files in this directory.
-
syslinux
--------
This directory is mandatory when the `bios.syslinux.mbr` or the `bios.syslinux.eltorito` bootmodes are selected in
**profiledef.sh**.
-It contains configuration files for `syslinux <https://wiki.syslinux.org/wiki/index.php?title=SYSLINUX>`_ or `pxelinux
+It contains configuration files for `syslinux <https://wiki.syslinux.org/wiki/index.php?title=SYSLINUX>`_ or `isolinux
+<https://wiki.syslinux.org/wiki/index.php?title=ISOLINUX>`_ , or `pxelinux
<https://wiki.syslinux.org/wiki/index.php?title=PXELINUX>`_ used in the resuling image.
The *custom template identifiers* are understood in all `.cfg` files in this directory.
diff --git a/archiso/mkarchiso b/archiso/mkarchiso
index 645dd83..0e478a4 100755
--- a/archiso/mkarchiso
+++ b/archiso/mkarchiso
@@ -372,33 +372,33 @@ _make_boot_on_iso9660() {
_msg_info "Done!"
}
-# Prepare /${install_dir}/boot/syslinux
+# Prepare /syslinux for booting from MBR
_make_bootmode_bios.syslinux.mbr() {
_msg_info "Setting up SYSLINUX for BIOS booting from a disk..."
- install -d -m 0755 -- "${isofs_dir}/${install_dir}/boot/syslinux"
+ install -d -m 0755 -- "${isofs_dir}/syslinux"
for _cfg in "${profile}/syslinux/"*.cfg; do
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g" \
- "${_cfg}" > "${isofs_dir}/${install_dir}/boot/syslinux/${_cfg##*/}"
+ "${_cfg}" > "${isofs_dir}/syslinux/${_cfg##*/}"
done
if [[ -e "${profile}/syslinux/splash.png" ]]; then
- install -m 0644 -- "${profile}/syslinux/splash.png" "${isofs_dir}/${install_dir}/boot/syslinux/"
+ install -m 0644 -- "${profile}/syslinux/splash.png" "${isofs_dir}/syslinux/"
fi
- install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/"*.c32 "${isofs_dir}/${install_dir}/boot/syslinux/"
- install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/lpxelinux.0" "${isofs_dir}/${install_dir}/boot/syslinux/"
- install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/memdisk" "${isofs_dir}/${install_dir}/boot/syslinux/"
+ install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/"*.c32 "${isofs_dir}/syslinux/"
+ install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/lpxelinux.0" "${isofs_dir}/syslinux/"
+ install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/memdisk" "${isofs_dir}/syslinux/"
_run_once _make_boot_on_iso9660
- if [[ -e "${isofs_dir}/${install_dir}/boot/syslinux/hdt.c32" ]]; then
- install -d -m 0755 -- "${isofs_dir}/${install_dir}/boot/syslinux/hdt"
+ if [[ -e "${isofs_dir}/syslinux/hdt.c32" ]]; then
+ install -d -m 0755 -- "${isofs_dir}/syslinux/hdt"
if [[ -e "${airootfs_dir}/usr/share/hwdata/pci.ids" ]]; then
gzip -c -9 "${airootfs_dir}/usr/share/hwdata/pci.ids" > \
- "${isofs_dir}/${install_dir}/boot/syslinux/hdt/pciids.gz"
+ "${isofs_dir}/syslinux/hdt/pciids.gz"
fi
find "${airootfs_dir}/usr/lib/modules" -name 'modules.alias' -print -exec gzip -c -9 '{}' ';' -quit > \
- "${isofs_dir}/${install_dir}/boot/syslinux/hdt/modalias.gz"
+ "${isofs_dir}/syslinux/hdt/modalias.gz"
fi
# Add other aditional/extra files to ${install_dir}/boot/
@@ -412,21 +412,14 @@ _make_bootmode_bios.syslinux.mbr() {
_msg_info "Done! SYSLINUX set up for BIOS booting from a disk successfully."
}
-# Prepare /isolinux
+# Prepare /syslinux for El-Torito booting
_make_bootmode_bios.syslinux.eltorito() {
_msg_info "Setting up SYSLINUX for BIOS booting from an optical disc..."
- install -d -m 0755 -- "${isofs_dir}/isolinux"
- for _cfg in "${profile}/isolinux/"*".cfg"; do
- sed "s|%ARCHISO_LABEL%|${iso_label}|g;
- s|%INSTALL_DIR%|${install_dir}|g;
- s|%ARCH%|${arch}|g" \
- "${_cfg}" > "${isofs_dir}/isolinux/${_cfg##*/}"
- done
- install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/isolinux.bin" "${isofs_dir}/isolinux/"
- install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/isohdpfx.bin" "${isofs_dir}/isolinux/"
- install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/ldlinux.c32" "${isofs_dir}/isolinux/"
+ install -d -m 0755 -- "${isofs_dir}/syslinux"
+ install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/isolinux.bin" "${isofs_dir}/syslinux/"
+ install -m 0644 -- "${airootfs_dir}/usr/lib/syslinux/bios/isohdpfx.bin" "${isofs_dir}/syslinux/"
- # isolinux.cfg loads syslinux.cfg
+ # ISOLINUX and SYSLINUX installation is shared
_run_once _make_bootmode_bios.syslinux.mbr
_msg_info "Done! SYSLINUX set up for BIOS booting from an optical disc successfully."
@@ -573,34 +566,7 @@ _validate_requirements_bootmode_bios.syslinux.mbr() {
}
_validate_requirements_bootmode_bios.syslinux.eltorito() {
- # Check if the syslinux package is in the package list
- # shellcheck disable=SC2076
- if [[ ! " ${pkg_list[*]} " =~ ' syslinux ' ]]; then
- (( validation_error=validation_error+1 ))
- _msg_error "Validating '${bootmode}': The 'syslinux' package is missing from the package list!" 0
- fi
-
- # Check if isolinux configuration files exist
- if [[ ! -d "${profile}/isolinux" ]]; then
- (( validation_error=validation_error+1 ))
- _msg_error "Validating '${bootmode}': The '${profile}/isolinux' directory is missing!" 0
- else
- local cfgfile
- for cfgfile in "${profile}/isolinux/"*'.cfg'; do
- if [[ -e "${cfgfile}" ]]; then
- break
- else
- (( validation_error=validation_error+1 ))
- _msg_error "Validating '${bootmode}': No configuration file found in '${profile}/isolinux/'!" 0
- fi
- done
- fi
-
- # Check for optional packages
- # shellcheck disable=SC2076
- if [[ ! " ${pkg_list[*]} " =~ ' memtest86+ ' ]]; then
- _msg_info "Validating '${bootmode}': 'memtest86+' is not in the package list. Memory testing will not be available from syslinux."
- fi
+ _validate_requirements_bootmode_bios.syslinux.mbr
}
_validate_requirements_bootmode_uefi-x64.systemd-boot.esp() {
@@ -675,9 +641,9 @@ _validate_requirements_airootfs_image_type_ext4+squashfs() {
_add_xorrisofs_options_bios.syslinux.eltorito() {
xorrisofs_options+=(
# El Torito boot image for x86 BIOS
- '-eltorito-boot' 'isolinux/isolinux.bin'
+ '-eltorito-boot' 'syslinux/isolinux.bin'
# El Torito boot catalog file
- '-eltorito-catalog' 'isolinux/boot.cat'
+ '-eltorito-catalog' 'syslinux/boot.cat'
# Required options to boot with ISOLINUX
'-no-emul-boot' '-boot-load-size' '4' '-boot-info-table'
)
@@ -686,8 +652,8 @@ _add_xorrisofs_options_bios.syslinux.eltorito() {
# SYSLINUX MBR
_add_xorrisofs_options_bios.syslinux.mbr() {
xorrisofs_options+=(
- # SYSLINUX MBR bootstrap code; does not work without "-eltorito-boot isolinux/isolinux.bin"
- '-isohybrid-mbr' "${isofs_dir}/isolinux/isohdpfx.bin"
+ # SYSLINUX MBR bootstrap code; does not work without "-eltorito-boot syslinux/isolinux.bin"
+ '-isohybrid-mbr' "${isofs_dir}/syslinux/isohdpfx.bin"
# When GPT is used, create an additional partition in the MBR (besides 0xEE) for sectors 0–1 (MBR
# bootstrap code area) and mark it as bootable
# This violates the UEFI specification, but may allow booting on some systems
diff --git a/configs/baseline/isolinux/isolinux.cfg b/configs/baseline/isolinux/isolinux.cfg
deleted file mode 100644
index e078ce3..0000000
--- a/configs/baseline/isolinux/isolinux.cfg
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-PATH /%INSTALL_DIR%/boot/syslinux/
-DEFAULT loadconfig
-
-LABEL loadconfig
- CONFIG /%INSTALL_DIR%/boot/syslinux/syslinux.cfg
- APPEND /%INSTALL_DIR%/
diff --git a/configs/baseline/syslinux/syslinux-linux.cfg b/configs/baseline/syslinux/syslinux-linux.cfg
index 21dfbd7..867d815 100644
--- a/configs/baseline/syslinux/syslinux-linux.cfg
+++ b/configs/baseline/syslinux/syslinux-linux.cfg
@@ -3,6 +3,6 @@
LABEL arch
MENU LABEL Arch Linux (x86_64, BIOS)
-LINUX boot/%ARCH%/vmlinuz-linux
-INITRD boot/%ARCH%/initramfs-linux.img
+LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
diff --git a/configs/baseline/syslinux/syslinux.cfg b/configs/baseline/syslinux/syslinux.cfg
index c021a0e..88a36ea 100644
--- a/configs/baseline/syslinux/syslinux.cfg
+++ b/configs/baseline/syslinux/syslinux.cfg
@@ -1,11 +1,11 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
-UI boot/syslinux/menu.c32
+UI menu.c32
MENU TITLE Arch Linux
MENU CLEAR
DEFAULT arch
TIMEOUT 30
-INCLUDE boot/syslinux/syslinux-linux.cfg
+INCLUDE syslinux-linux.cfg
diff --git a/configs/releng/isolinux/isolinux.cfg b/configs/releng/isolinux/isolinux.cfg
deleted file mode 100644
index 7b14d59..0000000
--- a/configs/releng/isolinux/isolinux.cfg
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-PATH /%INSTALL_DIR%/boot/syslinux/
-DEFAULT loadconfig
-
-LABEL loadconfig
- CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg
- APPEND /%INSTALL_DIR%/
diff --git a/configs/releng/syslinux/archiso.cfg b/configs/releng/syslinux/archiso.cfg
deleted file mode 100644
index a6ba8b0..0000000
--- a/configs/releng/syslinux/archiso.cfg
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-DEFAULT select
-
-LABEL select
-COM32 boot/syslinux/whichsys.c32
-APPEND -pxe- pxe -sys- sys -iso- sys
-
-LABEL pxe
-CONFIG boot/syslinux/archiso_pxe.cfg
-
-LABEL sys
-CONFIG boot/syslinux/archiso_sys.cfg
diff --git a/configs/releng/syslinux/archiso_head.cfg b/configs/releng/syslinux/archiso_head.cfg
index be08525..e553e79 100644
--- a/configs/releng/syslinux/archiso_head.cfg
+++ b/configs/releng/syslinux/archiso_head.cfg
@@ -2,9 +2,9 @@
# SPDX-License-Identifier: GPL-3.0-or-later
SERIAL 0 38400
-UI boot/syslinux/vesamenu.c32
+UI vesamenu.c32
MENU TITLE Arch Linux
-MENU BACKGROUND boot/syslinux/splash.png
+MENU BACKGROUND splash.png
MENU WIDTH 78
MENU MARGIN 4
diff --git a/configs/releng/syslinux/archiso_pxe-linux.cfg b/configs/releng/syslinux/archiso_pxe-linux.cfg
index aa4bc2a..c991ca0 100644
--- a/configs/releng/syslinux/archiso_pxe-linux.cfg
+++ b/configs/releng/syslinux/archiso_pxe-linux.cfg
@@ -7,8 +7,8 @@ Boot the Arch Linux install medium using NBD.
It allows you to install Arch Linux or perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux install medium (x86_64, NBD)
-LINUX boot/x86_64/vmlinuz-linux
-INITRD boot/intel-ucode.img,boot/amd-ucode.img,boot/x86_64/initramfs-linux.img
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} checksum verify
SYSAPPEND 3
@@ -18,8 +18,8 @@ Boot the Arch Linux live medium using NFS.
It allows you to install Arch Linux or perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux install medium (x86_64, NFS)
-LINUX boot/x86_64/vmlinuz-linux
-INITRD boot/intel-ucode.img,boot/amd-ucode.img,boot/x86_64/initramfs-linux.img
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt checksum verify
SYSAPPEND 3
@@ -29,7 +29,7 @@ Boot the Arch Linux live medium using HTTP.
It allows you to install Arch Linux or perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux install medium (x86_64, HTTP)
-LINUX boot/x86_64/vmlinuz-linux
-INITRD boot/intel-ucode.img,boot/amd-ucode.img,boot/x86_64/initramfs-linux.img
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ checksum verify
SYSAPPEND 3
diff --git a/configs/releng/syslinux/archiso_pxe.cfg b/configs/releng/syslinux/archiso_pxe.cfg
index 202ed7a..b005cb1 100644
--- a/configs/releng/syslinux/archiso_pxe.cfg
+++ b/configs/releng/syslinux/archiso_pxe.cfg
@@ -1,8 +1,8 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
-INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE archiso_head.cfg
-INCLUDE boot/syslinux/archiso_pxe-linux.cfg
+INCLUDE archiso_pxe-linux.cfg
-INCLUDE boot/syslinux/archiso_tail.cfg
+INCLUDE archiso_tail.cfg
diff --git a/configs/releng/syslinux/archiso_sys-linux.cfg b/configs/releng/syslinux/archiso_sys-linux.cfg
index d5fd776..e2b4edd 100644
--- a/configs/releng/syslinux/archiso_sys-linux.cfg
+++ b/configs/releng/syslinux/archiso_sys-linux.cfg
@@ -7,8 +7,8 @@ Boot the Arch Linux install medium on BIOS.
It allows you to install Arch Linux or perform system maintenance.
ENDTEXT
MENU LABEL Arch Linux install medium (x86_64, BIOS)
-LINUX boot/x86_64/vmlinuz-linux
-INITRD boot/intel-ucode.img,boot/amd-ucode.img,boot/x86_64/initramfs-linux.img
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
# Accessibility boot option
@@ -18,6 +18,6 @@ Boot the Arch Linux install medium on BIOS with speakup screen reader.
It allows you to install Arch Linux or perform system maintenance with speech feedback.
ENDTEXT
MENU LABEL Arch Linux install medium (x86_64, BIOS) with ^speech
-LINUX boot/x86_64/vmlinuz-linux
-INITRD boot/intel-ucode.img,boot/amd-ucode.img,boot/x86_64/initramfs-linux.img
+LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
+INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% accessibility=on
diff --git a/configs/releng/syslinux/archiso_sys.cfg b/configs/releng/syslinux/archiso_sys.cfg
index 9e70c17..cab78f8 100644
--- a/configs/releng/syslinux/archiso_sys.cfg
+++ b/configs/releng/syslinux/archiso_sys.cfg
@@ -1,11 +1,11 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
-INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE archiso_head.cfg
DEFAULT arch64
TIMEOUT 150
-INCLUDE boot/syslinux/archiso_sys-linux.cfg
+INCLUDE archiso_sys-linux.cfg
-INCLUDE boot/syslinux/archiso_tail.cfg
+INCLUDE archiso_tail.cfg
diff --git a/configs/releng/syslinux/archiso_tail.cfg b/configs/releng/syslinux/archiso_tail.cfg
index 685e1c8..af172c0 100644
--- a/configs/releng/syslinux/archiso_tail.cfg
+++ b/configs/releng/syslinux/archiso_tail.cfg
@@ -7,19 +7,19 @@ Boot an existing operating system.
Press TAB to edit the disk and partition number to boot.
ENDTEXT
MENU LABEL Boot existing OS
-COM32 boot/syslinux/chain.c32
+COM32 chain.c32
APPEND hd0 0
# http://www.memtest.org/
LABEL memtest
MENU LABEL Run Memtest86+ (RAM test)
-LINUX boot/memtest
+LINUX /%INSTALL_DIR%/boot/memtest
# http://hdt-project.org/
LABEL hdt
MENU LABEL Hardware Information (HDT)
-COM32 boot/syslinux/hdt.c32
-APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz
+COM32 hdt.c32
+APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
LABEL reboot
TEXT HELP
@@ -27,7 +27,7 @@ Reboot computer.
The computer's firmware must support APM.
ENDTEXT
MENU LABEL Reboot
-COM32 boot/syslinux/reboot.c32
+COM32 reboot.c32
LABEL poweroff
TEXT HELP
@@ -35,4 +35,4 @@ Power off computer.
The computer's firmware must support APM.
ENDTEXT
MENU LABEL Power Off
-COM32 boot/syslinux/poweroff.c32
+COM32 poweroff.c32
diff --git a/configs/releng/syslinux/syslinux.cfg b/configs/releng/syslinux/syslinux.cfg
index 3ee98de..847ab6b 100644
--- a/configs/releng/syslinux/syslinux.cfg
+++ b/configs/releng/syslinux/syslinux.cfg
@@ -1,5 +1,14 @@
-DEFAULT loadconfig
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
-LABEL loadconfig
- CONFIG archiso.cfg
- APPEND ../../
+DEFAULT select
+
+LABEL select
+COM32 whichsys.c32
+APPEND -pxe- pxe -sys- sys -iso- sys
+
+LABEL pxe
+CONFIG archiso_pxe.cfg
+
+LABEL sys
+CONFIG archiso_sys.cfg