Bug 43728 - support PXE for BIOS and UEFI clients automatically and simultaneously
support PXE for BIOS and UEFI clients automatically and simultaneously
Status: RESOLVED WONTFIX
Product: UCS
Classification: Unclassified
Component: DHCP
UCS 4.3
Other Linux
: P5 normal with 2 votes (vote)
: ---
Assigned To: UCS maintainers
UCS maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2017-03-06 14:09 CET by Sönke Schwardt-Krummrich
Modified: 2021-05-14 16:34 CEST (History)
5 users (show)

See Also:
What kind of report is it?: Feature Request
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?: Yes
School Customer affected?: Yes
ISV affected?: Yes
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2017-03-06 14:09:00 CET
A larger customer reported that all new machines are configured by default to use UEFI and by customer policy they have to use UEFI.

The PXE client send some information that makes it possible to detect if the PXE client uses BIOS or UEFI. This is important since the bootimage has to match to the currently active architecture, otherwise the client won't boot.

Possible automatic detection rules are documented e.g. at
https://wiki.fogproject.org/wiki/index.php?title=BIOS_and_UEFI_Co-Existence
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2017-03-07 11:04:48 CET
---[/etc/dhcp/local.conf]--
option arch code 93 = unsigned integer 16;

if (exists arch and (option arch = 00:07 or option arch = 00:09)) {
   filename "uefi/ipxe/ipxe.efi";
} else {
   filename "pxelinux/pxelinux.0";
}
---[cut]---

00:07 and 00:09 are afair UEFI 64bit.
Comment 2 Erik Damrose univentionstaff 2017-03-07 12:45:00 CET
This would be very useful for UCC as well. The PXELinux documentation [1] has other examples:

option architecture-type code 93 = unsigned integer 16;

class "pxeclients" {
     match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";

     if option architecture-type = 0 {
         filename "path/to/BIOS/pxelinux.0";
     } elsif option architecture-type = 9 {
         filename "path/to/EFIx64/syslinux.efi";
     } elsif option architecture-type = 7 {
         filename "path/to/EFIx64/syslinux.efi";
     } elsif option architecture-type = 6 {
         filename "path/to/EFIia32/syslinux.efi";
     }
}

There is also an example about organizing the directories by architecture number:
class "pxeclients" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";

    filename concat("path/to/PXE-",  binary-to-ascii(16, 16, "", option architecture-type), "/pxelinux.0");
}

http://www.syslinux.org/wiki/index.php?title=PXELINUX#UEFI
Comment 3 Florian Best univentionstaff 2017-06-28 14:53:14 CEST
There is a Customer ID set so I set the flag "Enterprise Customer affected".
Comment 4 Michel Smidt 2018-08-03 13:01:27 CEST
Today discussed with a partner and a customer
Comment 5 Ingo Steuwer univentionstaff 2021-05-14 15:43:24 CEST
This issue has been filed against UCS 4.3.

UCS 4.3 is out of maintenance and many UCS components have changed in later releases. Thus, this issue is now being closed.

If this issue still occurs in newer UCS versions, please use "Clone this bug" or reopen it and update the UCS version. In this case please provide detailed information on how this issue is affecting you.