summaryrefslogtreecommitdiffstats
path: root/modules-available/serversetup-bwlp-ipxe/inc/localboot.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/serversetup-bwlp-ipxe/inc/localboot.inc.php')
-rw-r--r--modules-available/serversetup-bwlp-ipxe/inc/localboot.inc.php41
1 files changed, 36 insertions, 5 deletions
diff --git a/modules-available/serversetup-bwlp-ipxe/inc/localboot.inc.php b/modules-available/serversetup-bwlp-ipxe/inc/localboot.inc.php
index 3ab81862..624d10e4 100644
--- a/modules-available/serversetup-bwlp-ipxe/inc/localboot.inc.php
+++ b/modules-available/serversetup-bwlp-ipxe/inc/localboot.inc.php
@@ -6,10 +6,41 @@ class Localboot
const PROPERTY_KEY = 'serversetup.localboot';
const BOOT_METHODS = [
- 'AUTO' => 'iseq efi ${platform} && exit 1 || sanboot --no-describe',
- 'EXIT' => 'exit 1',
- 'COMBOOT' => 'chain /tftp/chain.c32 hd0',
- 'SANBOOT' => 'sanboot --no-describe',
+ 'PCBIOS' => [
+ 'EXIT' => 'exit 1',
+ 'COMBOOT' => 'set netX/209:string localboot.cfg ||
+set netX/210:string http://${serverip}/tftp/sl-bios/ ||
+chain -ar /tftp/sl-bios/lpxelinux.0',
+ 'SANBOOT' => 'sanboot --no-describe',
+ ],
+ 'EFI' => [
+ 'EXIT' => 'exit 1',
+ 'COMBOOT' => 'set netX/209:string localboot.cfg ||
+set netX/210:string http://${serverip}/tftp/sl-efi64/ ||
+chain -ar /tftp/sl-efi64/syslinux.efi',
+ ],
];
-} \ No newline at end of file
+ public static function getDefault()
+ {
+ $ret = explode(',', Property::get(self::PROPERTY_KEY, 'SANBOOT,EXIT'));
+ if (empty($ret)) {
+ $ret = ['SANBOOT', 'EXIT'];
+ } elseif (count($ret) < 2) {
+ $ret[] = 'EXIT';
+ }
+ if (!isset(self::BOOT_METHODS['PCBIOS'][$ret[0]])) {
+ $ret[0] = 'SANBOOT';
+ }
+ if (!isset(self::BOOT_METHODS['EFI'][$ret[1]])) {
+ $ret[1] = 'EXIT';
+ }
+ return ['PCBIOS' => $ret[0], 'EFI' => $ret[1]];
+ }
+
+ public static function setDefault($pcbios, $efi)
+ {
+ Property::set(self::PROPERTY_KEY, "$pcbios,$efi");
+ }
+
+}