[arch-releng] [RFCv2] [PATCH 2/2] [configs/releng] Use whichsys.c32 to determine bootloader type

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Thu Dec 1 09:29:20 EST 2011


In that way we can have two differents syslinux menus depending if booting from
PXE or from non-PXE. Some file renames are made to keep things ordered.

* By default NBD PXE option is selected for booting on timeout.
* As (NDB/NFS/HTTP/FTP) server is used the same IP from pxeserver.
---
 configs/releng/syslinux.dual/archiso.cfg           |   17 +++----
 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 --
 .../releng/syslinux.dual/archiso_choose_pxe.cfg    |   12 +++++
 .../releng/syslinux.dual/archiso_choose_sys.cfg    |   12 +++++
 configs/releng/syslinux.dual/archiso_pxe32.cfg     |   43 ++++++++++++++++++
 configs/releng/syslinux.dual/archiso_pxe64.cfg     |   43 ++++++++++++++++++
 .../releng/syslinux.dual/archiso_pxe_32_inc.cfg    |    3 +
 .../releng/syslinux.dual/archiso_pxe_both_inc.cfg  |    4 ++
 configs/releng/syslinux.dual/archiso_sys32.cfg     |    9 ++++
 configs/releng/syslinux.dual/archiso_sys64.cfg     |    9 ++++
 .../releng/syslinux.dual/archiso_sys_32_inc.cfg    |    3 +
 .../releng/syslinux.dual/archiso_sys_both_inc.cfg  |    4 ++
 configs/releng/syslinux/archiso.cfg                |   14 +++++-
 configs/releng/syslinux/archiso_pxe.cfg            |   46 ++++++++++++++++++++
 configs/releng/syslinux/archiso_pxe_inc.cfg        |    3 +
 configs/releng/syslinux/archiso_sys.cfg            |    1 -
 configs/releng/syslinux/archiso_sys_inc.cfg        |    3 +
 20 files changed, 213 insertions(+), 40 deletions(-)
 delete mode 100644 configs/releng/syslinux.dual/archiso_32only.cfg
 delete mode 100644 configs/releng/syslinux.dual/archiso_arch32.cfg
 delete mode 100644 configs/releng/syslinux.dual/archiso_arch64.cfg
 delete mode 100644 configs/releng/syslinux.dual/archiso_both.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_choose_pxe.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_choose_sys.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_pxe32.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_pxe64.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_pxe_32_inc.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_pxe_both_inc.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_sys32.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_sys64.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_sys_32_inc.cfg
 create mode 100644 configs/releng/syslinux.dual/archiso_sys_both_inc.cfg
 create mode 100644 configs/releng/syslinux/archiso_pxe.cfg
 create mode 100644 configs/releng/syslinux/archiso_pxe_inc.cfg
 create mode 100644 configs/releng/syslinux/archiso_sys_inc.cfg

diff --git a/configs/releng/syslinux.dual/archiso.cfg b/configs/releng/syslinux.dual/archiso.cfg
index 9994e43..134d15a 100644
--- a/configs/releng/syslinux.dual/archiso.cfg
+++ b/configs/releng/syslinux.dual/archiso.cfg
@@ -1,12 +1,11 @@
-DEFAULT choose
-PROMPT 0
+DEFAULT select
 
-LABEL choose
-KERNEL boot/syslinux/ifcpu64.c32
-APPEND have64 -- nohave64
+LABEL select
+COM32 boot/syslinux/whichsys.c32
+APPEND -pxe- pxe -sys- sys -iso- sys
 
-LABEL have64
-CONFIG boot/syslinux/archiso_both.cfg
+LABEL pxe
+CONFIG boot/syslinux/archiso_choose_pxe.cfg
 
-LABEL nohave64
-CONFIG boot/syslinux/archiso_32only.cfg
+LABEL sys
+CONFIG boot/syslinux/archiso_choose_sys.cfg
diff --git a/configs/releng/syslinux.dual/archiso_32only.cfg b/configs/releng/syslinux.dual/archiso_32only.cfg
deleted file mode 100644
index e0cad88..0000000
--- a/configs/releng/syslinux.dual/archiso_32only.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100644
index e7c7e23..0000000
--- a/configs/releng/syslinux.dual/archiso_arch32.cfg
+++ /dev/null
@@ -1,10 +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 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
deleted file mode 100644
index aee7bb0..0000000
--- a/configs/releng/syslinux.dual/archiso_arch64.cfg
+++ /dev/null
@@ -1,10 +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 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
deleted file mode 100644
index 493ee81..0000000
--- a/configs/releng/syslinux.dual/archiso_both.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-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_choose_pxe.cfg b/configs/releng/syslinux.dual/archiso_choose_pxe.cfg
new file mode 100644
index 0000000..e34ab3d
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_choose_pxe.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_pxe_both_inc.cfg
+
+LABEL nohave64
+CONFIG boot/syslinux/archiso_pxe_32_inc.cfg
diff --git a/configs/releng/syslinux.dual/archiso_choose_sys.cfg b/configs/releng/syslinux.dual/archiso_choose_sys.cfg
new file mode 100644
index 0000000..6e8bc21
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_choose_sys.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_sys_both_inc.cfg
+
+LABEL nohave64
+CONFIG boot/syslinux/archiso_sys_32_inc.cfg
diff --git a/configs/releng/syslinux.dual/archiso_pxe32.cfg b/configs/releng/syslinux.dual/archiso_pxe32.cfg
new file mode 100644
index 0000000..f68cff4
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_pxe32.cfg
@@ -0,0 +1,43 @@
+LABEL arch32
+TEXT HELP
+Boot the Arch Linux (i686) live medium (Using NBD). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (i686) (NBD)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
+IPAPPEND 3
+
+LABEL arch32_nfs
+TEXT HELP
+Boot the Arch Linux (i686) live medium (Using NFS). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (i686) (NFS)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt
+IPAPPEND 3
+
+LABEL arch32_http
+TEXT HELP
+Boot the Arch Linux (i686) live medium (Using HTTP). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (i686) (HTTP)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_curl_url=http://${pxeserver}/
+IPAPPEND 3
+
+LABEL arch32_ftp
+TEXT HELP
+Boot the Arch Linux (i686) live medium (Using FTP). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (i686) (FTP)
+LINUX boot/i686/vmlinuz
+INITRD boot/i686/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_curl_url=ftp://${pxeserver}/
+IPAPPEND 3
diff --git a/configs/releng/syslinux.dual/archiso_pxe64.cfg b/configs/releng/syslinux.dual/archiso_pxe64.cfg
new file mode 100644
index 0000000..c543bd7
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_pxe64.cfg
@@ -0,0 +1,43 @@
+LABEL arch64
+TEXT HELP
+Boot the Arch Linux (x86_64) live medium (Using NBD). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (x86_64) (NBD)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
+IPAPPEND 3
+
+LABEL arch64_nfs
+TEXT HELP
+Boot the Arch Linux (x86_64) live medium (Using NFS). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (x86_64) (NFS)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt
+IPAPPEND 3
+
+LABEL arch64_http
+TEXT HELP
+Boot the Arch Linux (x86_64) live medium (Using HTTP). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (x86_64) (HTTP)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_curl_url=http://${pxeserver}/
+IPAPPEND 3
+
+LABEL arch64_ftp
+TEXT HELP
+Boot the Arch Linux (x86_64) live medium (Using FTP). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (x86_64) (FTP)
+LINUX boot/x86_64/vmlinuz
+INITRD boot/x86_64/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_curl_url=ftp://${pxeserver}/
+IPAPPEND 3
diff --git a/configs/releng/syslinux.dual/archiso_pxe_32_inc.cfg b/configs/releng/syslinux.dual/archiso_pxe_32_inc.cfg
new file mode 100644
index 0000000..e4115df
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_pxe_32_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_pxe32.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
diff --git a/configs/releng/syslinux.dual/archiso_pxe_both_inc.cfg b/configs/releng/syslinux.dual/archiso_pxe_both_inc.cfg
new file mode 100644
index 0000000..324523e
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_pxe_both_inc.cfg
@@ -0,0 +1,4 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_pxe32.cfg
+INCLUDE boot/syslinux/archiso_pxe64.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
diff --git a/configs/releng/syslinux.dual/archiso_sys32.cfg b/configs/releng/syslinux.dual/archiso_sys32.cfg
new file mode 100644
index 0000000..261579e
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_sys32.cfg
@@ -0,0 +1,9 @@
+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%
diff --git a/configs/releng/syslinux.dual/archiso_sys64.cfg b/configs/releng/syslinux.dual/archiso_sys64.cfg
new file mode 100644
index 0000000..eb89813
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_sys64.cfg
@@ -0,0 +1,9 @@
+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%
diff --git a/configs/releng/syslinux.dual/archiso_sys_32_inc.cfg b/configs/releng/syslinux.dual/archiso_sys_32_inc.cfg
new file mode 100644
index 0000000..9e37093
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_sys_32_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_sys32.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
diff --git a/configs/releng/syslinux.dual/archiso_sys_both_inc.cfg b/configs/releng/syslinux.dual/archiso_sys_both_inc.cfg
new file mode 100644
index 0000000..4ed6b39
--- /dev/null
+++ b/configs/releng/syslinux.dual/archiso_sys_both_inc.cfg
@@ -0,0 +1,4 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_sys32.cfg
+INCLUDE boot/syslinux/archiso_sys64.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
diff --git a/configs/releng/syslinux/archiso.cfg b/configs/releng/syslinux/archiso.cfg
index 1228355..126fc77 100644
--- a/configs/releng/syslinux/archiso.cfg
+++ b/configs/releng/syslinux/archiso.cfg
@@ -1,3 +1,11 @@
-INCLUDE boot/syslinux/archiso_head.cfg
-INCLUDE boot/syslinux/archiso_arch.cfg
-INCLUDE boot/syslinux/archiso_tail.cfg
+DEFAULT select
+
+LABEL select
+COM32 boot/syslinux/whichsys.c32
+APPEND -pxe- pxe -sys- sys -iso- sys
+
+LABEL pxe
+CONFIG boot/syslinux/archiso_pxe_inc.cfg
+
+LABEL sys
+CONFIG boot/syslinux/archiso_sys_inc.cfg
diff --git a/configs/releng/syslinux/archiso_pxe.cfg b/configs/releng/syslinux/archiso_pxe.cfg
new file mode 100644
index 0000000..16cbd46
--- /dev/null
+++ b/configs/releng/syslinux/archiso_pxe.cfg
@@ -0,0 +1,46 @@
+LABEL arch
+arch_nbd
+
+LABEL arch_nbd
+TEXT HELP
+Boot the Arch Linux live medium (Using NBD). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (NBD)
+LINUX boot/%ARCH%/vmlinuz
+INITRD boot/%ARCH%/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver}
+IPAPPEND 3
+
+LABEL arch_nfs
+TEXT HELP
+Boot the Arch Linux live medium (Using NFS). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (NFS)
+LINUX boot/%ARCH%/vmlinuz
+INITRD boot/%ARCH%/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt
+IPAPPEND 3
+
+LABEL arch_http
+TEXT HELP
+Boot the Arch Linux live medium (Using HTTP). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (HTTP)
+LINUX boot/%ARCH%/vmlinuz
+INITRD boot/%ARCH%/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_curl_url=http://${pxeserver}/
+IPAPPEND 3
+
+LABEL arch_ftp
+TEXT HELP
+Boot the Arch Linux live medium (Using FTP). It allows you to install Arch Linux or
+perform system maintenance.
+ENDTEXT
+MENU LABEL Boot Arch Linux (FTP)
+LINUX boot/%ARCH%/vmlinuz
+INITRD boot/%ARCH%/archiso.img
+APPEND archisobasedir=%INSTALL_DIR% archiso_curl_url=ftp://${pxeserver}/
+IPAPPEND 3
diff --git a/configs/releng/syslinux/archiso_pxe_inc.cfg b/configs/releng/syslinux/archiso_pxe_inc.cfg
new file mode 100644
index 0000000..b2b6887
--- /dev/null
+++ b/configs/releng/syslinux/archiso_pxe_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_pxe.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
diff --git a/configs/releng/syslinux/archiso_sys.cfg b/configs/releng/syslinux/archiso_sys.cfg
index 1326db8..35303db 100644
--- a/configs/releng/syslinux/archiso_sys.cfg
+++ b/configs/releng/syslinux/archiso_sys.cfg
@@ -7,4 +7,3 @@ MENU LABEL Boot Arch Linux
 LINUX boot/%ARCH%/vmlinuz
 INITRD boot/%ARCH%/archiso.img
 APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
-IPAPPEND 3
diff --git a/configs/releng/syslinux/archiso_sys_inc.cfg b/configs/releng/syslinux/archiso_sys_inc.cfg
new file mode 100644
index 0000000..56c6a17
--- /dev/null
+++ b/configs/releng/syslinux/archiso_sys_inc.cfg
@@ -0,0 +1,3 @@
+INCLUDE boot/syslinux/archiso_head.cfg
+INCLUDE boot/syslinux/archiso_sys.cfg
+INCLUDE boot/syslinux/archiso_tail.cfg
-- 
1.7.7.4



More information about the arch-releng mailing list