GNU GRUB - Bugs: bug #61101, UEFI PXE boot over VLAN is failing...
You are not allowed to post comments on this tracker with your current authentication level.
bug #61101: UEFI PXE boot over VLAN is failing with 'could not resolve hardware address' msg
Submitter: | Piotr Zaprawa <pb_pzaprawa> | ||
Submitted: | Wed 01 Sep 2021 09:51:34 AM UTC | ||
Category: | Booting | Severity: | Major |
Priority: | 5 - Normal | Item Group: | Software Error |
Status: | None | Privacy: | Public |
Assigned to: | None | Originator Name: | Piotr Zaprawa |
Open/Closed: | Open | Release: | other |
Release: | Reproducibility: | Every Time | |
Planned Release: | None |
Sun 12 Sep 2021 09:32:11 PM UTC, comment #4: |
Scott Serr <serrsm> |
Thu 09 Sep 2021 08:00:52 PM UTC, comment #3: Grub is not able to tftp/get its modules. Building modules into the image does not help "error: could not resolve hardware address." |
Scott Serr <serrsm> |
Thu 09 Sep 2021 07:54:02 PM UTC, comment #2: I have also run into this same problem. I'll add that I've tried patches to 2.06 from various vendors (Fedora, OpenSUSE, CentOS). I'm able to test on Dell (C6420/Intel) and SuperMicro (H12DSG-Q-CPU6/AMD).
|
Scott Serr <serrsm> |
Wed 01 Sep 2021 10:45:14 AM UTC, comment #1: Windows is booting fine over UEFI PXE boot with VLAN enabled. |
Piotr Zaprawa <pb_pzaprawa> |
Wed 01 Sep 2021 09:51:34 AM UTC, original submission:
Versions affected: up to 2.06 (2.02., 2.04, 2.06)
|
Piotr Zaprawa <pb_pzaprawa> |
Depends on the following items: None found
Items that depend on this one: None found
There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.
Follow 3 latest changes.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2021-09-01 | pb_pzaprawa | Attached File | - | Added uefi_pxe_boot_over_vlan.png, #51856 | |
Attached File | - | Added uefi_pxe_boot_over_vlan_2.png, #51857 | |||
Carbon-Copy | - | Added -email is unavailable- |
Powered by Savane 3.13-758e.
Corresponding source code
I had some discussion with TJ_ on IRC/#grub. TJ was very helpful, here are some relevant links and findings we discussed:
This thread is related: https://lists.gnu.org/archive/html/help-grub/2017-01/msg00002.html "UEFI-PXE boot to grub2 with BIOS configured VLAN tagging?"
VLAN Trunk: The system trying to PXE boot is on a trunk port, not access port. The post to the help-grub has a better use case than I do, "...think hypervisor host with just one interface which is a VLAN trunk."
Found 2 links to informative UEFI documentation:
- https://edk2-docs.gitbook.io/edk-ii-uefi-driver-writer-s-guide/25_network_driver_design_guidelines/253_simple_network_protocol_implementations
- https://edk2-docs.gitbook.io/edk-ii-uefi-driver-writer-s-guide/25_network_driver_design_guidelines
iPXE vision explaining poor UEFI features:
- https://ipxe.org/efi/vision
From TJ: there's a very interesting comment in the source of grub-core/net/drivers/efi/efinet.c::grub_efi_net_config_real() around line 353 about how EFI deals with PXE.
A workaround that TJ proposed (that is possibly better than using my old grub 0.97 for these specific boots): UEFI pxe -> DHCP -> iPXE -> grub2. "Host UEFI PXE DHCP/TFTP fetches the iPXE UEFI executable as the PXE payload. iPXE can then be configured to do the same again (DHCP/TFTP) to load GRUB"
Possibly a hint:
My main test system is a Dell with IDRAC on a shared nic. The IDRAC is also configured to use the same same VLAN. Odd thing, the IDRAC is very unstable during these attempted PXE boots, the IDRAC itself hangs/reboots seemingly every time the system tries to PXE boot. The IDRAC is stable via network when not doing these PXE boot tests. It is also stable when accessed from USB (instead of network) while doing these PXE boot tests.
Potential debug options:
- build all needed modules into the grub image for better diagnostic info
- (hack) adding the option to set a vlan tag number from a variable would be useful as a test
I will attempt to:
- build modules in base image and post (in text) all the grub variable (using a text console instead of graphical)
- get a workaround by bouncing through iPXE
- setup a qemu environment where I can test and share configuration with others