Browse Source

Merge pull request #163 from antonym/arch_changes

Testing architecture and provider dynamic menus
Antony Messerli 7 years ago
parent
commit
659a7e3432
2 changed files with 66 additions and 10 deletions
  1. 58 2
      src/boot.cfg
  2. 8 8
      src/menu.ipxe

+ 58 - 2
src/boot.cfg

@@ -24,17 +24,73 @@ set sigs http://${boot_domain}/sigs/
 # set location of latest iPXE
 set ipxe_disk netboot.xyz-undionly.kpxe
 
+#################################################
+# determine architectures and enable menu options
+#################################################
+:architectures
+set menu_linux 1
+set menu_bsd 1
+set menu_freedos 1
+set menu_hypervisor 1
+set menu_live 1
+set menu_security 1
+set menu_windows 1
+set menu_utils 1
+iseq ${buildarch} x86_64 && goto x86_64
+iseq ${buildarch} arm64 && goto arm64
+goto architectures_end
+:x86_64
+goto architectures_end
+:arm64
+set menu_freedos 0
+set menu_hypervisor 0
+set menu_live 0
+set menu_security 0
+set menu_windows 0
+set menu_utils 0
+goto architectures_end
+:architectures_end
+goto clouds
+
+###################################
 # set iPXE cloud provider specifics
+###################################
 :clouds
 iseq ${ipxe_cloud_config} gce && goto gce ||
 iseq ${ipxe_cloud_config} packet && goto packet ||
-exit
+goto clouds_end
 
 :gce
 set console console=ttyS0,115200n8
-exit
+goto clouds_end
 
 :packet
+iseq ${buildarch} x86_64 && goto packet_x86_64 ||
+iseq ${buildarch} arm64 && goto packet_arm64 ||
+goto clouds_end
+
+:packet_x86_64
 set console console=ttyS1,115200n8
 set ipxe_disk netboot.xyz-packet.kpxe
+set menu_freedos 0
+set menu_windows 0
+set menu_utils 0
+goto clouds_end
+
+:packet_arm64
+set console console=ttyAMA0,115200
+set ipxe_disk netboot.xyz-packet-arm64.efi
+set menu_bsd 0
+set menu_freedos 0
+set menu_hypervisor 0
+set menu_live 0
+set menu_security 0
+set menu_windows 0
+set menu_utils 0
+goto clouds_end
+
+:clouds_end
+goto end
+
+:end
 exit

+ 8 - 8
src/menu.ipxe

@@ -40,15 +40,15 @@ menu ${site_name}
 item --gap Default:
 item local ${space} Boot from local hdd
 item --gap Distributions:
-item linux ${space} Linux Installs
-item bsd ${space} BSD Installs
-item freedos ${space} FreeDOS
-item hypervisor ${space} Hypervisor Installs
-item live ${space} Live Boot
-item security ${space} Security Related
-item windows ${space} Windows
+iseq ${menu_linux} 1 && item linux ${space} Linux Installs ||
+iseq ${menu_bsd} 1 && item bsd ${space} BSD Installs ||
+iseq ${menu_freedos} 1 && item freedos ${space} FreeDOS || 
+iseq ${menu_hypervisor} 1 && item hypervisor ${space} Hypervisor Installs ||
+iseq ${menu_live} 1 && item live ${space} Live Boot ||
+iseq ${menu_security} 1 && item security ${space} Security Related ||
+iseq ${menu_windows} 1 && item windows ${space} Windows ||
 item --gap Tools:
-item utils ${space} Utilities
+iseq ${menu_utils} 1 && item utils ${space} Utilities ||
 iseq ${arch} x86_64 && set bits 64 || set bits 32
 item changebits ${space} Architecture: ${arch} (${bits}bit)
 item shell ${space} iPXE shell