Re: [arch-releng] [PATCH] [configs/releng] Make kernel and initramfs patch relative for syslinux
Aha! I now rebember why I pushed absolute paths in syslinux.cfg: isolinux does not support ".." in paths! Only (ext|sys)linux have this and other nice features like install it on any path. ;) PS: Sorry I for "de-chain-email" am outside my home from webmail.
Am 24.11.2011 17:01, schrieb Gerardo Exequiel Pozzi:
Aha! I now rebember why I pushed absolute paths in syslinux.cfg: isolinux does not support ".." in paths!
Only (ext|sys)linux have this and other nice features like install it on any path. ;)
PS: Sorry I for "de-chain-email" am outside my home from webmail.
Holy shit! This needs to be fixed, otherwise we cannot unify the configuration files without ugliness. See my previous mail about ".." in TFTP paths.
On 11/24/2011 01:20 PM, Thomas Bächler wrote:
Am 24.11.2011 17:01, schrieb Gerardo Exequiel Pozzi:
Aha! I now rebember why I pushed absolute paths in syslinux.cfg: isolinux does not support ".." in paths!
Only (ext|sys)linux have this and other nice features like install it on any path. ;)
PS: Sorry I for "de-chain-email" am outside my home from webmail. Holy shit! This needs to be fixed, otherwise we cannot unify the configuration files without ugliness. See my previous mail about ".." in TFTP paths.
Yes I read it. So as you can see we have these choices we want to unify dir struct for all bootloaders: (in resume) 1) Change directory scheme, put kernel/initramfs inside syslinux/%ARCH%, keep _all_ files references *relative* (also we can change current absolute paths to make it relative) 2) Keep directory scheme as now, but change _all_ files references to make it *absolute*. Plus adding a pxelinux.cfg with "loadconfig". 3) Wait some time for feature ".." in pxelinux/isolinux. For each scheme I see some points: 1) Is not nice, we have mixed files. 2) Does not look to bad like (1), and if you think we have currently absolute paths _mixed_ with relative path, I this way we have _all_ path in only way form. Is trivial if you want to rename "/arch" to "/anyotherdirectory", or move "syslinux/" to another place. 3) The beautiful solution, but I guess will take some time to be implemented, in the case that can be possible. I think we can use (2) until we get (3). -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 11/24/2011 01:20 PM, Thomas Bächler wrote:
Am 24.11.2011 17:01, schrieb Gerardo Exequiel Pozzi:
Aha! I now rebember why I pushed absolute paths in syslinux.cfg: isolinux does not support ".." in paths!
Only (ext|sys)linux have this and other nice features like install it on any path. ;)
PS: Sorry I for "de-chain-email" am outside my home from webmail. Holy shit! This needs to be fixed, otherwise we cannot unify the configuration files without ugliness. See my previous mail about ".." in TFTP paths.
Yes I read it. So as you can see we have these choices we want to unify dir struct for all bootloaders: (in resume)
1) Change directory scheme, put kernel/initramfs inside syslinux/%ARCH%, keep _all_ files references *relative* (also we can change current absolute paths to make it relative) 2) Keep directory scheme as now, but change _all_ files references to make it *absolute*. Plus adding a pxelinux.cfg with "loadconfig".
On 11/24/2011 07:32 PM, Gerardo Exequiel Pozzi wrote: pxelinux.cfg "loadconfig" not needed putting it will change the prefix, and will not work for tftp. This is currently implemented in pxe_enhanced branch [#1] Is working in *all* bootloaders. Just mount iso in some path, make it as tftp_root or http_root and thats all. # mount iso in some place mount -o ro /tmp/out/archlinux-2011.11.24-netinstall-i686.iso /mnt/iso # Setup DHCP only for HTTP method (gpxe only) dnsmasq --port=0 \ --dhcp-range=192.168.0.2,192.168.0.254,8640 \ --dhcp-boot=arch/boot/syslinux/gpxelinux.0,192.168.0.77 \ --dhcp-option-force=209,arch/boot/syslinux/syslinux.cfg \ --dhcp-option-force=210,http://192.168.0.77/ # Setup DHCP for TFTP/HTTP (others pxe) dnsmasq --port=0 \ --enable-tftp \ --tftp-root=/mnt/iso \ --dhcp-range=192.168.0.2,192.168.0.254,8640 \ --dhcp-boot=arch/boot/syslinux/gpxelinux.0,192.168.0.77 \ --dhcp-option-force=209,arch/boot/syslinux/syslinux.cfg \ --dhcp-option-force=210,/ # Setup a quickly HTTP server (for both cases) darkhttpd /mnt/iso [#1] https://github.com/djgera/archiso/compare/experimental...pxe_enhanced
3) Wait some time for feature ".." in pxelinux/isolinux.
For each scheme I see some points: 1) Is not nice, we have mixed files. 2) Does not look to bad like (1), and if you think we have currently absolute paths _mixed_ with relative path, I this way we have _all_ path in only way form. Is trivial if you want to rename "/arch" to "/anyotherdirectory", or move "syslinux/" to another place. 3) The beautiful solution, but I guess will take some time to be implemented, in the case that can be possible.
I think we can use (2) until we get (3).
-- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
Am 24.11.2011 23:32, schrieb Gerardo Exequiel Pozzi:
On 11/24/2011 01:20 PM, Thomas Bächler wrote:
Holy shit! This needs to be fixed, otherwise we cannot unify the configuration files without ugliness. See my previous mail about ".." in TFTP paths.
Yes I read it. So as you can see we have these choices we want to unify dir struct for all bootloaders: (in resume)
1) Change directory scheme, put kernel/initramfs inside syslinux/%ARCH%, keep _all_ files references *relative* (also we can change current absolute paths to make it relative)
My problem here is: I like to keep bootloader and archiso files separate. There were several occasions when I wanted to just take the archiso files and didn't need the bootloader files. I don't like mixing them.
2) Keep directory scheme as now, but change _all_ files references to make it *absolute*. Plus adding a pxelinux.cfg with "loadconfig".
I don't like it either, absolute paths will complicate things.
3) Wait some time for feature ".." in pxelinux/isolinux.
I would love that. I'll send a mail to the syslinux mailing list later, inquiring about this possibility.
I think we can use (2) until we get (3).
I disagree. If we use (2), I will have to edit config files in some use cases, too. To summarize: 1) With isolinux (and hybrid), we can access everything, but only via absolute paths, or below the "current directory". If we want relative paths, we need a prefix at / or /arch. 2) With pxelinux, we can only access files below the prefix, no matter if relative or absolute. 3) With syslinux, we can access everything. However, the prefix will always equal the directory where ldlinux.sys and syslinux.cfg are. My new suggestion - keep the old directory scheme, use only relative paths with /arch as prefix: 1) isolinux - loadconfig trick in /isolinux/isolinux.cfg, set prefix to /arch/, config to /arch/boot/syslinux/archiso.cfg 2) pxelinux - set (via DHCP options) prefix to /arch/ and config to boot/syslinux/archiso.cfg 3) syslinux - have a loadconfig trick in /arch/boot/syslinux/syslinux.cfg - there, set the prefix to /arch/ and the config to /arch/boot/syslinux/archiso.cfg (same as for isolinux) If I didn't miss things, this should work. We can now have all paths relative to /arch, we don't need .. and we can remaster easily with all bootloaders. Thoughts?
On 11/25/2011 06:22 AM, Thomas Bächler wrote:
On 11/24/2011 01:20 PM, Thomas Bächler wrote:
Holy shit! This needs to be fixed, otherwise we cannot unify the configuration files without ugliness. See my previous mail about ".." in TFTP paths.
Yes I read it. So as you can see we have these choices we want to unify dir struct for all bootloaders: (in resume)
1) Change directory scheme, put kernel/initramfs inside syslinux/%ARCH%, keep _all_ files references *relative* (also we can change current absolute paths to make it relative) My problem here is: I like to keep bootloader and archiso files separate. There were several occasions when I wanted to just take the archiso files and didn't need the bootloader files. I don't like mixing
Am 24.11.2011 23:32, schrieb Gerardo Exequiel Pozzi: them.
2) Keep directory scheme as now, but change _all_ files references to make it *absolute*. Plus adding a pxelinux.cfg with "loadconfig". I don't like it either, absolute paths will complicate things.
3) Wait some time for feature ".." in pxelinux/isolinux. I would love that. I'll send a mail to the syslinux mailing list later, inquiring about this possibility.
I think we can use (2) until we get (3). I disagree. If we use (2), I will have to edit config files in some use cases, too. To summarize:
1) With isolinux (and hybrid), we can access everything, but only via absolute paths, or below the "current directory". If we want relative paths, we need a prefix at / or /arch.
2) With pxelinux, we can only access files below the prefix, no matter if relative or absolute.
3) With syslinux, we can access everything. However, the prefix will always equal the directory where ldlinux.sys and syslinux.cfg are.
My new suggestion - keep the old directory scheme, use only relative paths with /arch as prefix:
1) isolinux - loadconfig trick in /isolinux/isolinux.cfg, set prefix to /arch/, config to /arch/boot/syslinux/archiso.cfg 2) pxelinux - set (via DHCP options) prefix to /arch/ and config to boot/syslinux/archiso.cfg 3) syslinux - have a loadconfig trick in /arch/boot/syslinux/syslinux.cfg - there, set the prefix to /arch/ and the config to /arch/boot/syslinux/archiso.cfg (same as for isolinux)
If I didn't miss things, this should work. We can now have all paths relative to /arch, we don't need .. and we can remaster easily with all bootloaders. Thoughts?
Sounds good, this should work we are decending one directory level. Working on it... -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
This is a reworks of my previous RFC but with changes proposed by Thomas (plus other changes). Boot as: * (isolinux) cdrom and cdrom-hibrid-disk: OK * (pxelinux) TFTP and HTTP: OK * (extlinux) /arch and /pepe: OK * (syslinux) /arch and /coco: OK, but see note (@) (@) Due bug in mmove (from mtools), ldlinux.sys install fails: (install also fails with real devices like /dev/sdX, unrelated to loop) # syslinux -i -d /mnt/loop/arch/boot/syslinux /dev/loop1p1 s:/mnt/loop/arch/boot/syslinux/ldlinux.sys: no match for target syslinux: warning: unable to move ldlinux.sys * Workaround (always want to read syslinux.cfg on /syslinux even if moving ld-linux.sys to /arch/boot/syslinux) # mkdir /mnt/loop/syslinux # mv /mnt/loop/ldlinux.sys /mnt/loop/syslinux # cp /mnt/loop/isolinux/isolinux.cfg /mnt/loop/syslinux/syslinux.cfg * Mount ISO # mount -o ro /tmp/out/archlinux-2011.11.25-netinstall-i686.iso /mnt/iso * DHCP/HTTP method # dnsmasq --port=0 \ --dhcp-range=192.168.0.2,192.168.0.254,8640 \ --dhcp-boot=boot/syslinux/gpxelinux.0,192.168.0.77 \ --dhcp-option-force=209,boot/syslinux/archiso.cfg \ --dhcp-option-force=210,http://192.168.0.77/arch/ * DHCP/TFTP method # dnsmasq --port=0 \ --enable-tftp \ --tftp-root=/mnt/iso \ --dhcp-range=192.168.0.2,192.168.0.254,8640 \ --dhcp-boot=/arch/boot/syslinux/gpxelinux.0,192.168.0.77 \ --dhcp-option-force=209,boot/syslinux/archiso.cfg \ --dhcp-option-force=210,/arch/ * HTTP server # darkhttpd /mnt/isolinux
* In that way, we have unified directory scheme among {pxe,sys,ext,iso}linux, sharing the same directory structure and config files. * Also enable IPAPPEND (will show a warning message about unknown directive in non-pxelinux before menu) NEW: * Rename syslinux*.cfg -> archiso*.cfg * Now syslinux.cfg is only a "loadconfig" trick like we are doing for isolinux * All paths are now relative to %INSTALL_DIR% ($archisobasedir) (Default: /arch/) Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> --- configs/releng/build.sh | 10 ++- configs/releng/isolinux/isolinux.cfg | 4 +- configs/releng/syslinux.dual/archiso.cfg | 12 ++++ configs/releng/syslinux.dual/archiso_32only.cfg | 3 + configs/releng/syslinux.dual/archiso_arch32.cfg | 10 +++ configs/releng/syslinux.dual/archiso_arch64.cfg | 10 +++ configs/releng/syslinux.dual/archiso_both.cfg | 4 + configs/releng/syslinux.dual/archiso_head.cfg | 28 ++++++++ configs/releng/syslinux.dual/archiso_tail.cfg | 29 +++++++++ configs/releng/syslinux.dual/syslinux.cfg | 15 +--- configs/releng/syslinux.dual/syslinux_32only.cfg | 3 - configs/releng/syslinux.dual/syslinux_arch32.cfg | 11 --- configs/releng/syslinux.dual/syslinux_arch64.cfg | 11 --- configs/releng/syslinux.dual/syslinux_both.cfg | 4 - configs/releng/syslinux.dual/syslinux_head.cfg | 28 -------- configs/releng/syslinux.dual/syslinux_tail.cfg | 29 --------- configs/releng/syslinux/archiso.cfg | 69 ++++++++++++++++++++ configs/releng/syslinux/syslinux.cfg | 73 +-------------------- 18 files changed, 181 insertions(+), 172 deletions(-) create mode 100644 configs/releng/syslinux.dual/archiso.cfg create mode 100644 configs/releng/syslinux.dual/archiso_32only.cfg create mode 100644 configs/releng/syslinux.dual/archiso_arch32.cfg create mode 100644 configs/releng/syslinux.dual/archiso_arch64.cfg create mode 100644 configs/releng/syslinux.dual/archiso_both.cfg create mode 100644 configs/releng/syslinux.dual/archiso_head.cfg create mode 100644 configs/releng/syslinux.dual/archiso_tail.cfg delete mode 100644 configs/releng/syslinux.dual/syslinux_32only.cfg delete mode 100644 configs/releng/syslinux.dual/syslinux_arch32.cfg delete mode 100644 configs/releng/syslinux.dual/syslinux_arch64.cfg delete mode 100644 configs/releng/syslinux.dual/syslinux_both.cfg delete mode 100644 configs/releng/syslinux.dual/syslinux_head.cfg delete mode 100644 configs/releng/syslinux.dual/syslinux_tail.cfg create mode 100644 configs/releng/syslinux/archiso.cfg diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 325bca7..fcba3a3 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -75,9 +75,11 @@ make_syslinux() { local _src_syslinux=${work_dir}/root-image/usr/lib/syslinux local _dst_syslinux=${work_dir}/iso/${install_dir}/boot/syslinux mkdir -p ${_dst_syslinux} - sed "s|%ARCHISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g; - s|%ARCH%|${arch}|g" ${script_path}/syslinux/syslinux.cfg > ${_dst_syslinux}/syslinux.cfg + for _cfg in ${script_path}/syslinux/*.cfg; do + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%INSTALL_DIR%|${install_dir}|g; + s|%ARCH%|${arch}|g" ${_cfg} > ${_dst_syslinux}/${_cfg##*/} + done cp ${script_path}/syslinux/splash.png ${_dst_syslinux} cp ${_src_syslinux}/*.c32 ${_dst_syslinux} cp ${_src_syslinux}/*.com ${_dst_syslinux} @@ -187,7 +189,7 @@ make_dual() { cp -a -l -f ${_src_one} ${work_dir}/dual cp -a -l -n ${_src_two} ${work_dir}/dual rm -f ${work_dir}/dual/iso/${install_dir}/aitab - rm -f ${work_dir}/dual/iso/${install_dir}/boot/syslinux/syslinux.cfg + rm -f ${work_dir}/dual/iso/${install_dir}/boot/syslinux/*.cfg if [[ ${_iso_type} == "core" ]]; then if [[ ! -e ${work_dir}/dual/iso/${install_dir}/any/repo-core-any.sfs || ! -e ${work_dir}/dual/iso/${install_dir}/i686/repo-core-i686.sfs || diff --git a/configs/releng/isolinux/isolinux.cfg b/configs/releng/isolinux/isolinux.cfg index e7bbaa4..1040d3f 100644 --- a/configs/releng/isolinux/isolinux.cfg +++ b/configs/releng/isolinux/isolinux.cfg @@ -1,5 +1,5 @@ DEFAULT loadconfig LABEL loadconfig - CONFIG /%INSTALL_DIR%/boot/syslinux/syslinux.cfg - APPEND /%INSTALL_DIR%/boot/syslinux/ + CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg + APPEND /%INSTALL_DIR%/ diff --git a/configs/releng/syslinux.dual/archiso.cfg b/configs/releng/syslinux.dual/archiso.cfg new file mode 100644 index 0000000..9994e43 --- /dev/null +++ b/configs/releng/syslinux.dual/archiso.cfg @@ -0,0 +1,12 @@ +DEFAULT choose +PROMPT 0 + +LABEL choose +KERNEL boot/syslinux/ifcpu64.c32 +APPEND have64 -- nohave64 + +LABEL have64 +CONFIG boot/syslinux/archiso_both.cfg + +LABEL nohave64 +CONFIG boot/syslinux/archiso_32only.cfg diff --git a/configs/releng/syslinux.dual/archiso_32only.cfg b/configs/releng/syslinux.dual/archiso_32only.cfg new file mode 100644 index 0000000..e0cad88 --- /dev/null +++ b/configs/releng/syslinux.dual/archiso_32only.cfg @@ -0,0 +1,3 @@ +INCLUDE boot/syslinux/archiso_head.cfg +INCLUDE boot/syslinux/archiso_arch32.cfg +INCLUDE boot/syslinux/archiso_tail.cfg diff --git a/configs/releng/syslinux.dual/archiso_arch32.cfg b/configs/releng/syslinux.dual/archiso_arch32.cfg new file mode 100644 index 0000000..e7c7e23 --- /dev/null +++ b/configs/releng/syslinux.dual/archiso_arch32.cfg @@ -0,0 +1,10 @@ +LABEL arch32 +TEXT HELP +Boot the Arch Linux (i686) live medium. It allows you to install Arch Linux or +perform system maintenance. +ENDTEXT +MENU LABEL Boot Arch Linux (i686) +LINUX boot/i686/vmlinuz +INITRD boot/i686/archiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% +IPAPPEND 3 diff --git a/configs/releng/syslinux.dual/archiso_arch64.cfg b/configs/releng/syslinux.dual/archiso_arch64.cfg new file mode 100644 index 0000000..aee7bb0 --- /dev/null +++ b/configs/releng/syslinux.dual/archiso_arch64.cfg @@ -0,0 +1,10 @@ +LABEL arch64 +TEXT HELP +Boot the Arch Linux (x86_64) live medium. It allows you to install Arch Linux or +perform system maintenance. +ENDTEXT +MENU LABEL Boot Arch Linux (x86_64) +LINUX boot/x86_64/vmlinuz +INITRD boot/x86_64/archiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% +IPAPPEND 3 diff --git a/configs/releng/syslinux.dual/archiso_both.cfg b/configs/releng/syslinux.dual/archiso_both.cfg new file mode 100644 index 0000000..493ee81 --- /dev/null +++ b/configs/releng/syslinux.dual/archiso_both.cfg @@ -0,0 +1,4 @@ +INCLUDE boot/syslinux/archiso_head.cfg +INCLUDE boot/syslinux/archiso_arch32.cfg +INCLUDE boot/syslinux/archiso_arch64.cfg +INCLUDE boot/syslinux/archiso_tail.cfg diff --git a/configs/releng/syslinux.dual/archiso_head.cfg b/configs/releng/syslinux.dual/archiso_head.cfg new file mode 100644 index 0000000..929872e --- /dev/null +++ b/configs/releng/syslinux.dual/archiso_head.cfg @@ -0,0 +1,28 @@ +SERIAL 0 38400 +DEFAULT boot/syslinux/vesamenu.c32 +PROMPT 0 +MENU TITLE Arch Linux +MENU BACKGROUND boot/syslinux/splash.png +TIMEOUT 3000 + +MENU WIDTH 78 +MENU MARGIN 4 +MENU ROWS 7 +MENU VSHIFT 10 +MENU TIMEOUTROW 13 +MENU TABMSGROW 11 +MENU CMDLINEROW 11 +MENU HELPMSGROW 16 +MENU HELPMSGENDROW 29 + +# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu + +MENU COLOR border 30;44 #40ffffff #a0000000 std +MENU COLOR title 1;36;44 #9033ccff #a0000000 std +MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all +MENU COLOR unsel 37;44 #50ffffff #a0000000 std +MENU COLOR help 37;40 #c0ffffff #a0000000 std +MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std +MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std +MENU COLOR msg07 37;40 #90ffffff #a0000000 std +MENU COLOR tabmsg 31;40 #30ffffff #00000000 std diff --git a/configs/releng/syslinux.dual/archiso_tail.cfg b/configs/releng/syslinux.dual/archiso_tail.cfg new file mode 100644 index 0000000..791cb13 --- /dev/null +++ b/configs/releng/syslinux.dual/archiso_tail.cfg @@ -0,0 +1,29 @@ +LABEL existing +TEXT HELP +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 +APPEND hd0 0 + +# http://www.memtest.org/ +LABEL memtest +MENU LABEL Run Memtest86+ (RAM test) +LINUX boot/memtest + +# http://hdt-project.org/ +LABEL hdt +MENU LABEL Hardware Information (HDT) +COM32 hdt.c32 +APPEND modules_alias=boot/syslinux/hdt/modalias.gz pciids=boot/syslinux/hdt/pciids.gz + +LABEL reboot +MENU LABEL Reboot +COM32 boot/syslinux/reboot.c32 + +LABEL poweroff +MENU LABEL Power Off +COMBOOT boot/syslinux/poweroff.com + +ONTIMEOUT arch32 diff --git a/configs/releng/syslinux.dual/syslinux.cfg b/configs/releng/syslinux.dual/syslinux.cfg index ac92998..1040d3f 100644 --- a/configs/releng/syslinux.dual/syslinux.cfg +++ b/configs/releng/syslinux.dual/syslinux.cfg @@ -1,12 +1,5 @@ -DEFAULT choose -PROMPT 0 +DEFAULT loadconfig -LABEL choose -KERNEL ifcpu64.c32 -APPEND have64 -- nohave64 - -LABEL have64 -CONFIG syslinux_both.cfg - -LABEL nohave64 -CONFIG syslinux_32only.cfg +LABEL loadconfig + CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg + APPEND /%INSTALL_DIR%/ diff --git a/configs/releng/syslinux.dual/syslinux_32only.cfg b/configs/releng/syslinux.dual/syslinux_32only.cfg deleted file mode 100644 index c7a452d..0000000 --- a/configs/releng/syslinux.dual/syslinux_32only.cfg +++ /dev/null @@ -1,3 +0,0 @@ -INCLUDE syslinux_head.cfg -INCLUDE syslinux_arch32.cfg -INCLUDE syslinux_tail.cfg diff --git a/configs/releng/syslinux.dual/syslinux_arch32.cfg b/configs/releng/syslinux.dual/syslinux_arch32.cfg deleted file mode 100644 index 9b4030e..0000000 --- a/configs/releng/syslinux.dual/syslinux_arch32.cfg +++ /dev/null @@ -1,11 +0,0 @@ -LABEL arch32 -TEXT HELP -Boot the Arch Linux (i686) live medium. It allows you to install Arch Linux or -perform system maintenance. -ENDTEXT -MENU LABEL Boot Arch Linux (i686) -LINUX /%INSTALL_DIR%/boot/i686/vmlinuz -INITRD /%INSTALL_DIR%/boot/i686/archiso.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% -# Next line should be uncommented when prepare enviroment to boot from PXE. -#IPAPPEND 3 diff --git a/configs/releng/syslinux.dual/syslinux_arch64.cfg b/configs/releng/syslinux.dual/syslinux_arch64.cfg deleted file mode 100644 index 6cc644d..0000000 --- a/configs/releng/syslinux.dual/syslinux_arch64.cfg +++ /dev/null @@ -1,11 +0,0 @@ -LABEL arch64 -TEXT HELP -Boot the Arch Linux (x86_64) live medium. It allows you to install Arch Linux or -perform system maintenance. -ENDTEXT -MENU LABEL Boot Arch Linux (x86_64) -LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz -INITRD /%INSTALL_DIR%/boot/x86_64/archiso.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% -# Next line should be uncommented when prepare enviroment to boot from PXE. -#IPAPPEND 3 diff --git a/configs/releng/syslinux.dual/syslinux_both.cfg b/configs/releng/syslinux.dual/syslinux_both.cfg deleted file mode 100644 index 9cd1584..0000000 --- a/configs/releng/syslinux.dual/syslinux_both.cfg +++ /dev/null @@ -1,4 +0,0 @@ -INCLUDE syslinux_head.cfg -INCLUDE syslinux_arch32.cfg -INCLUDE syslinux_arch64.cfg -INCLUDE syslinux_tail.cfg diff --git a/configs/releng/syslinux.dual/syslinux_head.cfg b/configs/releng/syslinux.dual/syslinux_head.cfg deleted file mode 100644 index f46ba78..0000000 --- a/configs/releng/syslinux.dual/syslinux_head.cfg +++ /dev/null @@ -1,28 +0,0 @@ -SERIAL 0 38400 -DEFAULT vesamenu.c32 -PROMPT 0 -MENU TITLE Arch Linux -MENU BACKGROUND splash.png -TIMEOUT 3000 - -MENU WIDTH 78 -MENU MARGIN 4 -MENU ROWS 7 -MENU VSHIFT 10 -MENU TIMEOUTROW 13 -MENU TABMSGROW 11 -MENU CMDLINEROW 11 -MENU HELPMSGROW 16 -MENU HELPMSGENDROW 29 - -# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu - -MENU COLOR border 30;44 #40ffffff #a0000000 std -MENU COLOR title 1;36;44 #9033ccff #a0000000 std -MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all -MENU COLOR unsel 37;44 #50ffffff #a0000000 std -MENU COLOR help 37;40 #c0ffffff #a0000000 std -MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std -MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std -MENU COLOR msg07 37;40 #90ffffff #a0000000 std -MENU COLOR tabmsg 31;40 #30ffffff #00000000 std diff --git a/configs/releng/syslinux.dual/syslinux_tail.cfg b/configs/releng/syslinux.dual/syslinux_tail.cfg deleted file mode 100644 index 7dd1270..0000000 --- a/configs/releng/syslinux.dual/syslinux_tail.cfg +++ /dev/null @@ -1,29 +0,0 @@ -LABEL existing -TEXT HELP -Boot an existing operating system. Press TAB to edit the disk and partition -number to boot. -ENDTEXT -MENU LABEL Boot existing OS -COM32 chain.c32 -APPEND hd0 0 - -# http://www.memtest.org/ -LABEL memtest -MENU LABEL Run Memtest86+ (RAM test) -LINUX /%INSTALL_DIR%/boot/memtest - -# http://hdt-project.org/ -LABEL hdt -MENU LABEL Hardware Information (HDT) -COM32 hdt.c32 -APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz - -LABEL reboot -MENU LABEL Reboot -COM32 reboot.c32 - -LABEL poweroff -MENU LABEL Power Off -COMBOOT poweroff.com - -ONTIMEOUT arch32 diff --git a/configs/releng/syslinux/archiso.cfg b/configs/releng/syslinux/archiso.cfg new file mode 100644 index 0000000..e508bcc --- /dev/null +++ b/configs/releng/syslinux/archiso.cfg @@ -0,0 +1,69 @@ +SERIAL 0 38400 +DEFAULT boot/syslinux/vesamenu.c32 +PROMPT 0 +MENU TITLE Arch Linux +MENU BACKGROUND boot/syslinux/splash.png +TIMEOUT 3000 + +MENU WIDTH 78 +MENU MARGIN 4 +MENU ROWS 6 +MENU VSHIFT 10 +MENU TIMEOUTROW 13 +MENU TABMSGROW 11 +MENU CMDLINEROW 11 +MENU HELPMSGROW 16 +MENU HELPMSGENDROW 29 + +# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu + +MENU COLOR border 30;44 #40ffffff #a0000000 std +MENU COLOR title 1;36;44 #9033ccff #a0000000 std +MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all +MENU COLOR unsel 37;44 #50ffffff #a0000000 std +MENU COLOR help 37;40 #c0ffffff #a0000000 std +MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std +MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std +MENU COLOR msg07 37;40 #90ffffff #a0000000 std +MENU COLOR tabmsg 31;40 #30ffffff #00000000 std + +LABEL arch +TEXT HELP +Boot the Arch Linux live medium. It allows you to install Arch Linux or +perform system maintenance. +ENDTEXT +MENU LABEL Boot Arch Linux +LINUX boot/%ARCH%/vmlinuz +INITRD boot/%ARCH%/archiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% +IPAPPEND 3 + +LABEL existing +TEXT HELP +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 +APPEND hd0 0 + +# http://www.memtest.org/ +LABEL memtest +MENU LABEL Run Memtest86+ (RAM test) +LINUX 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 + +LABEL reboot +MENU LABEL Reboot +COM32 boot/syslinux/reboot.c32 + +LABEL poweroff +MENU LABEL Power Off +COMBOOT boot/syslinux/poweroff.com + +ONTIMEOUT arch diff --git a/configs/releng/syslinux/syslinux.cfg b/configs/releng/syslinux/syslinux.cfg index 7762278..1040d3f 100644 --- a/configs/releng/syslinux/syslinux.cfg +++ b/configs/releng/syslinux/syslinux.cfg @@ -1,70 +1,5 @@ -SERIAL 0 38400 -DEFAULT vesamenu.c32 -PROMPT 0 -MENU TITLE Arch Linux -MENU BACKGROUND splash.png -TIMEOUT 3000 +DEFAULT loadconfig -MENU WIDTH 78 -MENU MARGIN 4 -MENU ROWS 6 -MENU VSHIFT 10 -MENU TIMEOUTROW 13 -MENU TABMSGROW 11 -MENU CMDLINEROW 11 -MENU HELPMSGROW 16 -MENU HELPMSGENDROW 29 - -# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu - -MENU COLOR border 30;44 #40ffffff #a0000000 std -MENU COLOR title 1;36;44 #9033ccff #a0000000 std -MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all -MENU COLOR unsel 37;44 #50ffffff #a0000000 std -MENU COLOR help 37;40 #c0ffffff #a0000000 std -MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std -MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std -MENU COLOR msg07 37;40 #90ffffff #a0000000 std -MENU COLOR tabmsg 31;40 #30ffffff #00000000 std - -LABEL arch -TEXT HELP -Boot the Arch Linux live medium. It allows you to install Arch Linux or -perform system maintenance. -ENDTEXT -MENU LABEL Boot Arch Linux -LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz -INITRD /%INSTALL_DIR%/boot/%ARCH%/archiso.img -APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% -# Next line should be uncommented when prepare enviroment to boot from PXE. -#IPAPPEND 3 - -LABEL existing -TEXT HELP -Boot an existing operating system. Press TAB to edit the disk and partition -number to boot. -ENDTEXT -MENU LABEL Boot existing OS -COM32 chain.c32 -APPEND hd0 0 - -# http://www.memtest.org/ -LABEL memtest -MENU LABEL Run Memtest86+ (RAM test) -LINUX /%INSTALL_DIR%/boot/memtest - -# http://hdt-project.org/ -LABEL hdt -MENU LABEL Hardware Information (HDT) -COM32 hdt.c32 -APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz - -LABEL reboot -MENU LABEL Reboot -COM32 reboot.c32 - -LABEL poweroff -MENU LABEL Power Off -COMBOOT poweroff.com - -ONTIMEOUT arch +LABEL loadconfig + CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg + APPEND /%INSTALL_DIR%/ -- 1.7.7.4
Am 25.11.2011 22:01, schrieb Gerardo Exequiel Pozzi:
This is a reworks of my previous RFC but with changes proposed by Thomas (plus other changes).
Very cool, thanks.
Boot as: * (isolinux) cdrom and cdrom-hibrid-disk: OK * (pxelinux) TFTP and HTTP: OK * (extlinux) /arch and /pepe: OK * (syslinux) /arch and /coco: OK, but see note (@)
(@) Due bug in mmove (from mtools), ldlinux.sys install fails: (install also fails with real devices like /dev/sdX, unrelated to loop) # syslinux -i -d /mnt/loop/arch/boot/syslinux /dev/loop1p1 s:/mnt/loop/arch/boot/syslinux/ldlinux.sys: no match for target syslinux: warning: unable to move ldlinux.sys
You can use extlinux on FAT32, too (nowadays, it is just a different installer of syslinux). You don't need mtools/syslinux at all if you can mount the device.
On 11/25/2011 07:24 PM, Thomas Bächler wrote:
Am 25.11.2011 22:01, schrieb Gerardo Exequiel Pozzi:
This is a reworks of my previous RFC but with changes proposed by Thomas (plus other changes). Very cool, thanks. You are welcome!
Boot as: * (isolinux) cdrom and cdrom-hibrid-disk: OK * (pxelinux) TFTP and HTTP: OK * (extlinux) /arch and /pepe: OK * (syslinux) /arch and /coco: OK, but see note (@)
(@) Due bug in mmove (from mtools), ldlinux.sys install fails: (install also fails with real devices like /dev/sdX, unrelated to loop) # syslinux -i -d /mnt/loop/arch/boot/syslinux /dev/loop1p1 s:/mnt/loop/arch/boot/syslinux/ldlinux.sys: no match for target syslinux: warning: unable to move ldlinux.sys You can use extlinux on FAT32, too (nowadays, it is just a different installer of syslinux). You don't need mtools/syslinux at all if you can mount the device.
OMG!, was my fault! syslinux works different than extlinux! 1) Device must not be mounted, before running syslinux (like in extlinux) 2) -d DIRECTORY is relative to root directory of the drive, so the _right_ command is # syslinux -i -d arch/boot/syslinux /dev/loop0p1 Wow, extlinux on fat32! great, I never know! Thanks you! So... is working! https://github.com/djgera/archiso/tree/pxe_enhanced pushing this to master when next version of mkinitpcio hits [core]. -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
On 11/25/2011 11:55 PM, Gerardo Exequiel Pozzi wrote:
On 11/25/2011 07:24 PM, Thomas Bächler wrote:
Am 25.11.2011 22:01, schrieb Gerardo Exequiel Pozzi:
This is a reworks of my previous RFC but with changes proposed by Thomas (plus other changes). Very cool, thanks. You are welcome!
Boot as: * (isolinux) cdrom and cdrom-hibrid-disk: OK * (pxelinux) TFTP and HTTP: OK * (extlinux) /arch and /pepe: OK * (syslinux) /arch and /coco: OK, but see note (@)
(@) Due bug in mmove (from mtools), ldlinux.sys install fails: (install also fails with real devices like /dev/sdX, unrelated to loop) # syslinux -i -d /mnt/loop/arch/boot/syslinux /dev/loop1p1 s:/mnt/loop/arch/boot/syslinux/ldlinux.sys: no match for target syslinux: warning: unable to move ldlinux.sys You can use extlinux on FAT32, too (nowadays, it is just a different installer of syslinux). You don't need mtools/syslinux at all if you can mount the device.
OMG!, was my fault!
syslinux works different than extlinux!
1) Device must not be mounted, before running syslinux (like in extlinux) 2) -d DIRECTORY is relative to root directory of the drive, so the _right_ command is # syslinux -i -d arch/boot/syslinux /dev/loop0p1
Wow, extlinux on fat32! great, I never know! Thanks you!
So... is working!
https://github.com/djgera/archiso/tree/pxe_enhanced
pushing this to master when next version of mkinitpcio hits [core].
When it does, can you update the wiki accordingly please?
On 11/26/2011 01:23 AM, Sven-Hendrik Haase wrote:
On 11/25/2011 11:55 PM, Gerardo Exequiel Pozzi wrote:
On 11/25/2011 07:24 PM, Thomas Bächler wrote:
Am 25.11.2011 22:01, schrieb Gerardo Exequiel Pozzi:
This is a reworks of my previous RFC but with changes proposed by Thomas (plus other changes). Very cool, thanks. You are welcome! Boot as: * (isolinux) cdrom and cdrom-hibrid-disk: OK * (pxelinux) TFTP and HTTP: OK * (extlinux) /arch and /pepe: OK * (syslinux) /arch and /coco: OK, but see note (@)
(@) Due bug in mmove (from mtools), ldlinux.sys install fails: (install also fails with real devices like /dev/sdX, unrelated to loop) # syslinux -i -d /mnt/loop/arch/boot/syslinux /dev/loop1p1 s:/mnt/loop/arch/boot/syslinux/ldlinux.sys: no match for target syslinux: warning: unable to move ldlinux.sys You can use extlinux on FAT32, too (nowadays, it is just a different installer of syslinux). You don't need mtools/syslinux at all if you can mount the device.
OMG!, was my fault!
syslinux works different than extlinux!
1) Device must not be mounted, before running syslinux (like in extlinux) 2) -d DIRECTORY is relative to root directory of the drive, so the _right_ command is # syslinux -i -d arch/boot/syslinux /dev/loop0p1
Wow, extlinux on fat32! great, I never know! Thanks you!
So... is working!
https://github.com/djgera/archiso/tree/pxe_enhanced
pushing this to master when next version of mkinitpcio hits [core].
When it does, can you update the wiki accordingly please?
Yes, no problem. I Just changed how build initramfs, using mkinitcpio -b can be broken for depending on what you are doing. The rest (syslinux config unification) is just a "releng" feature, in fact "baseline" profile is not affected, I just changed the initramfs build step ;) -- Gerardo Exequiel Pozzi \cos^2\alpha + \sin^2\alpha = 1
participants (3)
-
Gerardo Exequiel Pozzi
-
Sven-Hendrik Haase
-
Thomas Bächler