danderson / netboot

Packages and utilities for network booting
Apache License 2.0
1.48k stars 181 forks source link

unsupported client firmware type '0' (please file a bug!) #132

Open coolty opened 3 years ago

coolty commented 3 years ago

sudo pixiecore quick xyz --dhcp-no-bind [DHCP] Offering to boot 08:00:46:45:c1:bf [PXE] Unusable packet from 08:00:46:45:c1:bf (192.168.0.10:68): unsupported client firmware type '0' (please file a bug!) [PXE] Unusable packet from 08:00:46:45:c1:bf (192.168.0.10:68): unsupported client firmware type '0' (please file a bug!) [PXE] Unusable packet from 08:00:46:45:c1:bf (192.168.0.10:68): unsupported client firmware type '0' (please file a bug!) [DHCP] Offering to boot 08:00:46:45:c1:bf [PXE] Unusable packet from 08:00:46:45:c1:bf (192.168.0.10:68): unsupported client firmware type '0' (please file a bug!) [PXE] Unusable packet from 08:00:46:45:c1:bf (192.168.0.10:68): unsupported client firmware type '0' (please file a bug!)

Trying to boot a Sony PCG-SRX3E/BD Laptop that originally ran Windows XP and has a Celeron CPU...

PMunch commented 3 years ago

Just faced the same issue trying to boot a Fujitsu Lifebook B2154 that also runs a Celeron but is intended for Windows 98 or 2000. Booting it yields the same message (with a different MAC address of course). The device itself says "Intel UNDI, PXE-2.0 (build 071)" and simply spins on the DHCP stage of the boot.

frantisekhanzlikbl commented 2 years ago

Just wanted to say that I have bumped into this as well, on two different devices. I am not sure what details are relevant, but one of them was ARM (RPI4) which, as I understand #72, is not supported, but the other one is a pretty normal x86-64 machine with an AMD CPU and an AORUS motherboard.

RaitoBezarius commented 1 year ago

Just run into that issue on a Proxmox VM, uncertain how to debug this further.

Ognian commented 1 year ago

Same problem, no Idea what to do

mudler commented 1 year ago

hey @danderson :wave: anything we can do from our side to collect more logs and help?

Can you provide some guidance on how to debug so we can try to come up with a fix/PR?

danderson commented 4 months ago

Pixiecore is not being actively developed, so you should not expect bugfixes at this time. I may dust it off and do some poking at some point, but no promises.

Almost certainly you are all trying to netboot arm64 computers, which were all but unheard of for consumers at the time I wrote pixiecore, and so it doesn't support booting arm64 computers. Assuming ipxe knows how to compile for arm64+UEFI, at least some of them should be easy to make bootable. arm64 uboot is harder because those tend to require exact out of band knowledge of the system being booted, so that the right kernel and devicetree can be selected. And apparently raspberry pi rolled their own different thing, I've not looked at what that would take.

I did however find that there is an intermediate different bug, which is that the error you all posted was unconditionally reporting firmware type 0 for all unknown firmware, instead of the correct value. I've fixed that, so you can at least find out how the client is asking to boot (list of values: https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#processor-architecture). To save you the time of digging through the spec and translating hex, you might see one of the following things pixiecore doesn't currently handle:

Unless y'all want to gift me some computers that use the unsupported architectures, I don't have any of them myself and so am unlikely to add support. Getting a new firmware type to boot is an iterative process of discovering the bugs and quirks of that implementation, and how it needs to be cajoled into booting stuff reliably. I've tried in the past to do this through Q&A on github, and it's just frustrating for everyone involved and doesn't work out, sorry.

If alternatives to netbooting are acceptable, https://netboot.xyz on a USB stick is a handy thing to have around, although of course you need a physical console to do that.

PMunch commented 4 months ago

Completely understandable! I was just curious to see which Linux distro I could get running on an ancient machine. For what it's worth the Celeron is x86 (32-bit) and I'm not sure UEFI wa invented yet, but could be category 20 in your above list