blob: 2b086fa9c2c5edae592d9dfd7d8c598be1cae19c [file] [log] [blame]
Zack Williams5b5d9a72020-11-06 13:59:06 -07001#!ipxe
2{#
3SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
4SPDX-License-Identifier: Apache-2.0
5#}
6
7# variables
8set menu_timeout 10000
9set menu_default exit
10set http_server_url {{ pxeboot_web_server }}
11
12# menu
13:start
14menu ONF iPXE Boot Menu
Zack Williamsa5a10bc2021-04-06 11:58:44 -070015item --gap -- ------------------------- System and Network Info ------------------------
Zack Williams5b5d9a72020-11-06 13:59:06 -070016item --gap -- MAC: ${net0/mac}, Serial Number: ${serial}, Chipset: ${net0/chip}
17item --gap -- Manufacturer: ${manufacturer}, Product: ${product}
18item --gap -- UUID: ${uuid}
Zack Williams5b5d9a72020-11-06 13:59:06 -070019item --gap -- IP: ${net0/ip}, Netmask: ${net0/netmask}, Gateway: ${net0/gateway}
20item --gap -- DNS Servers: ${net0/dns}, Domain: ${net0/domain}
21item --gap -- DHCP Server: ${net0/dhcp-server}
22item --gap -- ------------------------- Operating systems ------------------------------
Zack Williams92f3c202021-08-24 23:04:47 -070023{% if "debian10" in pxeboot_boot_images %}
Zack Williamsa5a10bc2021-04-06 11:58:44 -070024item --key d deb10 Debian 10 Installer
25item --key f deb10f Debian 10 Installer (nonfree firmware)
Zack Williams92f3c202021-08-24 23:04:47 -070026{% endif %}
27{% if "debian11" in pxeboot_boot_images %}
Zack Williams92f3c202021-08-24 23:04:47 -070028item --key h deb11f Debian 11 Installer (nonfree firmware)
Zack Williamsd1ee6262022-05-19 15:29:40 -070029item --key h deb11afs Debian 11 Installer (nonfree firmware, auto, serial)
30item --key h deb11afm Debian 11 Installer (nonfree firmware, auto, MAC)
Zack Williams92f3c202021-08-24 23:04:47 -070031{% endif %}
32{% if "ubuntu1804" in pxeboot_boot_images %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070033item --key u ub1804 Ubuntu 18.04 Installer
Zack Williams6f70f4d2021-06-07 12:54:07 -070034item --key a ub1804as Ubuntu 18.04 Installer (fully automatic, serial)
Zack Williams92f3c202021-08-24 23:04:47 -070035item --key m ub1804am Ubuntu 18.04 Installer (fully automatic, MAC)
Zack Williams92f3c202021-08-24 23:04:47 -070036{% endif %}
37{% if "ubuntu2004" in pxeboot_boot_images %}
38item --key v ub2004 Ubuntu 20.04 Installer
39{% endif %}
40{% if "openbsd70" in pxeboot_boot_images %}
41item --key o openbsd70 OpenBSD 7.0 Installer
42{% endif %}
43{% if "memtest" in pxeboot_boot_images %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070044item --key m memtest Memtest
Zack Williams92f3c202021-08-24 23:04:47 -070045{% endif %}
46item --gap -- ------------------------- Utilities --------------------------------------
Zack Williams5b5d9a72020-11-06 13:59:06 -070047item --key c configure Configuration Menu
48item --key s shell iPXE Shell
49item --key r reboot Reboot
50item --key x exit Exit iPXE and continue system boot
51choose --timeout ${menu_timeout} --default ${menu_default} selected || goto cancel
52set menu-timeout 0
53goto ${selected}
54
Zack Williams92f3c202021-08-24 23:04:47 -070055# Utility functions
Zack Williams5b5d9a72020-11-06 13:59:06 -070056:cancel
57echo Menu canceled, dropping to iPXE shell
58goto shell
59
60:configure
61config
62set menu-timeout 0
63set submenu-timeout 0
64goto start
65
66:shell
67echo Type 'exit' to get the back to the menu
68shell
69set menu-timeout 0
70set submenu-timeout 0
71goto start
72
73:failed
74echo Booting failed, dropping to shell
75goto shell
76
77:reboot
78reboot
79
80:exit
81exit
82
83# diagnostics
Zack Williams92f3c202021-08-24 23:04:47 -070084{% if "memtest" in pxeboot_boot_images %}
85
86# memtest
Zack Williams5b5d9a72020-11-06 13:59:06 -070087:memtest
88echo Booting Memtest
Zack Williams92f3c202021-08-24 23:04:47 -070089kernel ${http_server_url}/utils/memdisk
Zack Williams5b5d9a72020-11-06 13:59:06 -070090initrd ${http_server_url}/memtest/memtest.iso
91imgargs memdisk iso raw
92boot || goto failed
Zack Williams92f3c202021-08-24 23:04:47 -070093{% endif %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070094
95# installers
Zack Williams92f3c202021-08-24 23:04:47 -070096{% if "debian11" in pxeboot_boot_images %}
97
Zack Williams92f3c202021-08-24 23:04:47 -070098# Debian 11 with nonfree firmware
99:deb11f
100echo Booting Debian 11 Installer with nonfree firmware
101kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz
Zack Williams56b213a2022-06-28 15:21:51 -0700102initrd ${http_server_url}/debian11/initrd.gz
103initrd ${http_server_url}/debian11/firmware.cpio.gz
Zack Williamsd1ee6262022-05-19 15:29:40 -0700104boot || goto failed
105
106# Debian 11 with nonfree firmware, auto, serial
107:deb11afs
108echo Booting Debian 11 Installer with nonfree firmware, auto, serial
109kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz initrd=preseed.cfg
Zack Williams56b213a2022-06-28 15:21:51 -0700110initrd ${http_server_url}/debian11/initrd.gz
111initrd ${http_server_url}/debian11/firmware.cpio.gz
Zack Williamsd1ee6262022-05-19 15:29:40 -0700112initrd ${http_server_url}/debian11/${serial}_preseed.cfg preseed.cfg
113boot || goto failed
114
115# Debian 11 with nonfree firmware, auto, MAC
116:deb11afm
117echo Booting Debian 11 Installer with nonfree firmware, auto, MAC
118kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz initrd=preseed.cfg
Zack Williams56b213a2022-06-28 15:21:51 -0700119initrd ${http_server_url}/debian11/initrd.gz
120initrd ${http_server_url}/debian11/firmware.cpio.gz
Zack Williamsd1ee6262022-05-19 15:29:40 -0700121initrd ${http_server_url}/debian11/${net0/mac}_preseed.cfg preseed.cfg
Zack Williams92f3c202021-08-24 23:04:47 -0700122boot || goto failed
123{% endif %}
124{% if "ubuntu1804" in pxeboot_boot_images %}
Zack Williamsa5a10bc2021-04-06 11:58:44 -0700125
Zack Williams5b5d9a72020-11-06 13:59:06 -0700126# Ubuntu 18.04
127:ub1804
128echo Booting Ubuntu 18.04 Installer
Zack Williamsd1ee6262022-05-19 15:29:40 -0700129kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz
130initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz
Zack Williams5b5d9a72020-11-06 13:59:06 -0700131boot || goto failed
132
Zack Williams6f70f4d2021-06-07 12:54:07 -0700133# Ubuntu 18.04 autoinstall, serial
Zack Williams5b5d9a72020-11-06 13:59:06 -0700134# https://ipxe.org/appnote/debian_preseed
Zack Williams6f70f4d2021-06-07 12:54:07 -0700135:ub1804as
136echo Booting Ubuntu 18.04 Installer (autoinstall, serial)
Zack Williamsdb394142020-11-11 22:52:34 -0700137kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg
Zack Williams56b213a2022-06-28 15:21:51 -0700138initrd ${http_server_url}/ubuntu1804/initrd.gz
Zack Williams5b5d9a72020-11-06 13:59:06 -0700139initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg
Zack Williams3fcd2c52021-03-02 21:44:52 -0700140boot || goto failed
141
Zack Williams6f70f4d2021-06-07 12:54:07 -0700142# Ubuntu 18.04 autoinstall, MAC
143# https://ipxe.org/appnote/debian_preseed
144:ub1804am
145echo Booting Ubuntu 18.04 Installer (autoinstall, MAC)
146kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg
Zack Williams56b213a2022-06-28 15:21:51 -0700147initrd ${http_server_url}/ubuntu1804/initrd.gz
Zack Williams6f70f4d2021-06-07 12:54:07 -0700148initrd ${http_server_url}/ubuntu1804/${net0/mac}_preseed.cfg preseed.cfg
149boot || goto failed
Zack Williams92f3c202021-08-24 23:04:47 -0700150{% if pxeboot_image_debug %}
Zack Williams6f70f4d2021-06-07 12:54:07 -0700151
Zack Williams3fcd2c52021-03-02 21:44:52 -0700152# Ubuntu 18.04 autoinstall, text-mode, debug
153:ub1804adt
154echo Booting Ubuntu 18.04 Installer, text mode, debug
155kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg DEBIAN_FRONTEND=text BOOT_DEBUG=2
Zack Williams56b213a2022-06-28 15:21:51 -0700156initrd ${http_server_url}/ubuntu1804/initrd.gz
Zack Williams3fcd2c52021-03-02 21:44:52 -0700157initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg
Zack Williams5b5d9a72020-11-06 13:59:06 -0700158boot || goto failed
Zack Williams92f3c202021-08-24 23:04:47 -0700159{% endif %}
160{% endif %}
161{% if "ubuntu2004" in pxeboot_boot_images %}
162
Zack Williams56b213a2022-06-28 15:21:51 -0700163# Ubuntu 20.04
Zack Williams92f3c202021-08-24 23:04:47 -0700164:ub2004
165echo Booting Ubuntu 20.04 Installer
Zack Williamsd1ee6262022-05-19 15:29:40 -0700166kernel ${http_server_url}/ubuntu2004/linux initrd=initrd.gz
Zack Williams56b213a2022-06-28 15:21:51 -0700167initrd ${http_server_url}/ubuntu2004/initrd.gz
Zack Williams92f3c202021-08-24 23:04:47 -0700168boot || goto failed
169{% endif %}
170{% if "openbsd70" in pxeboot_boot_images %}
171
172# OpenBSD 7.0
173:openbsd70
174echo Booting OpenBSD 7.0
175kernel ${http_server_url}/utils/memdisk
176initrd ${http_server_url}/openbsd70/cd70.iso
177imgargs memdisk iso raw
178boot || goto failed
179{% endif %}