diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc
index 8bd6ffd81..842755bf7 100644
--- a/src/etc/inc/plugins.inc.d/dhcpd.inc
+++ b/src/etc/inc/plugins.inc.d/dhcpd.inc
@@ -1078,6 +1078,8 @@ EOD;
if (!empty($dhcpifconf['nextserver'])) {
$dhcpdconf .= " next-server {$dhcpifconf['nextserver']};\n";
}
+ $arm64 = $dhcpifconf['filename64arm'] ?? $dhcpifconf['filename'];
+ $arm32 = $dhcpifconf['filename32arm'] ?? $dhcpifconf['filename'];
if (!empty($dhcpifconf['filename']) && !empty($dhcpifconf['filename32']) && !empty($dhcpifconf['filename64'])) {
$dhcpdconf .= " if option arch = 00:06 {\n";
$dhcpdconf .= " filename \"{$dhcpifconf['filename32']}\";\n";
@@ -1085,6 +1087,10 @@ EOD;
$dhcpdconf .= " filename \"{$dhcpifconf['filename64']}\";\n";
$dhcpdconf .= " } else if option arch = 00:09 {\n";
$dhcpdconf .= " filename \"{$dhcpifconf['filename64']}\";\n";
+ $dhcpdconf .= " } else if option arch = 00:0a {\n";
+ $dhcpdconf .= " filename \"{$arm32}\";\n";
+ $dhcpdconf .= " } else if option arch = 00:0b {\n";
+ $dhcpdconf .= " filename \"{$arm64}\";\n";
$dhcpdconf .= " } else {\n";
$dhcpdconf .= " filename \"{$dhcpifconf['filename']}\";\n";
$dhcpdconf .= " }\n\n";
diff --git a/src/www/services_dhcp.php b/src/www/services_dhcp.php
index 0912e8f63..17cf4bb25 100644
--- a/src/www/services_dhcp.php
+++ b/src/www/services_dhcp.php
@@ -58,7 +58,8 @@ $config_copy_fieldsnames = array('enable', 'staticarp', 'failover_peerip', 'fail
'defaultleasetime', 'maxleasetime', 'gateway', 'domain', 'domainsearchlist', 'denyunknown','ignoreuids', 'ddnsdomain',
'ddnsdomainprimary', 'ddnsdomainkeyname', 'ddnsdomainkey', 'ddnsdomainalgorithm', 'ddnsupdate', 'mac_allow',
'mac_deny', 'tftp', 'bootfilename', 'ldap', 'netboot', 'nextserver', 'filename', 'filename32', 'filename64',
- 'rootpath', 'netmask', 'numberoptions', 'interface_mtu', 'wpad', 'omapi', 'omapiport', 'omapialgorithm', 'omapikey', 'minsecs');
+ 'filename32arm', 'filename64arm', 'rootpath', 'netmask', 'numberoptions', 'interface_mtu', 'wpad', 'omapi', 'omapiport',
+ 'omapialgorithm', 'omapikey', 'minsecs');
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
// handle identifiers and action
@@ -983,6 +984,10 @@ include("head.inc");
=gettext('Set UEFI 64bit filename');?>
+ =gettext('Set UEFI ARM 32bit filename');?>
+
+ =gettext('Set UEFI ARM 64bit filename');?>
+
=gettext("Note: You need both a filename and a boot server configured for this to work!");?>
=gettext("You will need all three filenames and a boot server configured for UEFI to work!");?>