blob: 28721e4be717cc8c4eac4b0091d71079bc84fe81 [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 Williamsa5a10bc2021-04-06 11:58:44 -070023item --key d deb10 Debian 10 Installer
24item --key f deb10f Debian 10 Installer (nonfree firmware)
Zack Williams5b5d9a72020-11-06 13:59:06 -070025item --key u ub1804 Ubuntu 18.04 Installer
Zack Williamsa5a10bc2021-04-06 11:58:44 -070026item --key a ub1804a Ubuntu 18.04 Installer (fully automatic)
27item --key t ub1804adt Ubuntu 18.04 Installer (fully automatic, debug, text)
28item --gap -- ------------------------- Utilities --------------------------------------
Zack Williams5b5d9a72020-11-06 13:59:06 -070029item --key m memtest Memtest
Zack Williams5b5d9a72020-11-06 13:59:06 -070030item --key c configure Configuration Menu
31item --key s shell iPXE Shell
32item --key r reboot Reboot
33item --key x exit Exit iPXE and continue system boot
34choose --timeout ${menu_timeout} --default ${menu_default} selected || goto cancel
35set menu-timeout 0
36goto ${selected}
37
38# other functions
39:cancel
40echo Menu canceled, dropping to iPXE shell
41goto shell
42
43:configure
44config
45set menu-timeout 0
46set submenu-timeout 0
47goto start
48
49:shell
50echo Type 'exit' to get the back to the menu
51shell
52set menu-timeout 0
53set submenu-timeout 0
54goto start
55
56:failed
57echo Booting failed, dropping to shell
58goto shell
59
60:reboot
61reboot
62
63:exit
64exit
65
66# diagnostics
67:memtest
68echo Booting Memtest
69kernel ${http_server_url}/memtest/memdisk
70initrd ${http_server_url}/memtest/memtest.iso
71imgargs memdisk iso raw
72boot || goto failed
73
74# installers
75
Zack Williamsa5a10bc2021-04-06 11:58:44 -070076# Debian 10
77:deb10
78echo Booting Debian 10 Installer
79kernel ${http_server_url}/debian10/linux
80initrd ${http_server_url}/debian10/initrd.gz
81boot || goto failed
82
83# Debian 10 with nonfree firmware
84:deb10f
85echo Booting Debian 10 Installer with nonfree firmware
86kernel ${http_server_url}/debian10/linux initrd=initrd.gz initrd=firmware.cpio.gz
87initrd ${http_server_url}/debian10/initrd.gz
88initrd ${http_server_url}/debian10/firmware.cpio.gz
89boot || goto failed
90
Zack Williams5b5d9a72020-11-06 13:59:06 -070091# Ubuntu 18.04
92:ub1804
93echo Booting Ubuntu 18.04 Installer
94kernel ${http_server_url}/ubuntu1804/linux
95initrd ${http_server_url}/ubuntu1804/initrd.gz
Zack Williams5b5d9a72020-11-06 13:59:06 -070096boot || goto failed
97
98# Ubuntu 18.04 autoinstall
99# https://ipxe.org/appnote/debian_preseed
100:ub1804a
101echo Booting Ubuntu 18.04 Installer
Zack Williamsdb394142020-11-11 22:52:34 -0700102kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg
Zack Williams5b5d9a72020-11-06 13:59:06 -0700103initrd ${http_server_url}/ubuntu1804/initrd.gz
104initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg
Zack Williams3fcd2c52021-03-02 21:44:52 -0700105boot || goto failed
106
107# Ubuntu 18.04 autoinstall, text-mode, debug
108:ub1804adt
109echo Booting Ubuntu 18.04 Installer, text mode, debug
110kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg DEBIAN_FRONTEND=text BOOT_DEBUG=2
111initrd ${http_server_url}/ubuntu1804/initrd.gz
112initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg
Zack Williams5b5d9a72020-11-06 13:59:06 -0700113boot || goto failed