pipxe
pipxe copied to clipboard
Build Issue: no bootable option or device was found on re-built image
Hi,
When I flash a sd card with the prebuilt image everything works as expected, my pi boots through in the iPXE environment and starts looking for something to connect to on net0.
After I spun up a clean Ubuntu 20.04 environment, cloned and rebuilt the image from scratch (appears to be a clean build, no build errors reports, etc. and the generated sdcard.img is the same size as the pre-built image, however I get the following:
BdsDxe: No bootable option or device was found.
BdsDxe: Press any key to enter the Boot Manager Menu.
Pressing any key doesn't go any further i.e. no boot manager menu.
Would appreciate any thoughts...
Thanks
Shaun
What do you see as the filesystem contents of sdcard.img
?
Same here. See the sdcard,img filetree attached. I build it on gcc7 on debian. files.txt
Quick screenshot, sorry, running out the door for a week!
Hi, I just released pipxe-builder In this project I try to provide a docker container to setup a clean and controlled build environment for pipxe. With the provided Docker image you can reproduce the problem. Before I decided to use gcc Docker image I tried using fedora 35 but with gcc 10 you get a whole lot of problems esepcially in edk2. Tried to fix this without success.
Maybe this helps.
I've found the follwing issue. In the Makefile https://github.com/ipxe/pipxe/blob/a93262af3661191a9ff19b61f773d109a7c33e8e/Makefile#L1 there is a url to load the firmware -> https://github.com/raspberrypi/firmware/branches/stable/boot If you browse this url, there is an http error 401 -> Feature not found
I've found the follwing issue. In the Makefile
https://github.com/ipxe/pipxe/blob/a93262af3661191a9ff19b61f773d109a7c33e8e/Makefile#L1
there is a url to load the firmware -> https://github.com/raspberrypi/firmware/branches/stable/boot If you browse this url, there is an http error 401 -> Feature not found
However, the svn export
command at https://github.com/ipxe/pipxe/blob/a93262af3661191a9ff19b61f773d109a7c33e8e/Makefile#L29 that uses this URL does succeed, as I verified just now.
(The reason for using svn export
is to avoid downloading the entire raspberrypi/firmware
tree, which contains a lot of stuff that we don't need.)
Michael
Magic. :) Okay, just a guess.
Any Idea on the build problem? Can you verify it?
If I can provide Information or help somehow, just let me know.
The following works for me:
- Build image from scratch with a tweak in /ipxe/src/config/branding.h (to check if it really works)
- dd the prebuild sdcard.img to an sd card
- Replace the file /efi/boot/bootaa64.efi with the one of step 1) and et voilá it works, ipxe is running with the tweak
Maybe this gives you a hint where the problem is located.
3. Replace the file /efi/boot/bootaa64.efi with the one of step 1) and et voilá it works, ipxe is running with the tweak
Interesting. The prebuilt SD card should already contain this image as /efi/boot/bootaa64.efi
, built from the ipxe
submodule.
3. Replace the file /efi/boot/bootaa64.efi with the one of step 1) and et voilá it works, ipxe is running with the tweak
Interesting. The prebuilt SD card should already contain this image as
/efi/boot/bootaa64.efi
, built from theipxe
submodule.
It contains the file, shure but I replaced it. Let me explain that in more detail.
Assume I want to use the DOWNLOAD_PROTO_HTTPS and I want to integrate a little script to load my image from a certain domain. Therefore I want to build my own sdcard_.img with the customized ipxe on it (I placed an underscore in it to differentiate between my own image file and the prebuild image file sdcard.img). So I customized the ipxe and built the pipxe sdcard_.img on my own as described in the README. But the resulting sdcard_.img doesn't boot ipxe as @shaunhurley reported in this Issue. I tried to figure out how to fix this Issue, with no result. So I had the idea to replace the /efi/boot/bootaa64.efi file on the prebuild sdcard.img by the one located on my sdcard_.img. So I take the file copied it to the prebuild sdcard.img place the card in my pi and it works.
But I guess this it not the way it used to be. I have the hope this will give you a hint where the problem is located. Personally I think there is some issue with the sdk2 but its just a guess. I can't verify that.
Thank you very much for keeping up with this issue. 👍🏽
You have several components in the SD card image:
- The iPXE image at
/efi/boot/bootaa64.efi
- The EDK2 firmware image at
/RPI_EFI.fd
- The configuration files
config.txt
- The VC4 firmware components (i.e. almost everything else on the card)
Since you have both a known-working and a known-broken SD card image, you can try swapping out each component in turn to figure out which one doesn't work when rebuilt from source.
I'm having the same issues, so I hope I will figure it out. Iḿ using Raspi 3B. Can pipxe also work with an Raspi Zero, with an POE Ethernet adapter https://www.waveshare.com/poe-eth-usb-hub-hat.htm
We would like to use the PI Zero with POE in production as small, simple terminals with a 4*20 LCD. We are using iPXE since some years, but not for PI yet.