Hello coreboot developers,
Here a coreboot user who wishes to boot from an USB-memory-stick. That is in addition to regular boot from internal storage device.
The computer I'm talking about is a Lenovo Thinkpad X230 which does have coreboot installed, it is what I have bought. Payload is grub.
An .iso is fetched from Internet and `dd` to USB-memory-stick. The USB-thumbdrive is then inserted in the X230, on the left side, in the USB-slot closest to user[1].
Upon power-on is a grub menu shown[2]. Default menu entry has description "Load operating system", beneat is `search_grub ahci` and does indeed load and start Linux. (in ohter words: payload came alive)
However the other boot menu entries[3] don't work. It is the reason why I'm seeking your advice.
When I active menu entry 'Search ISOLINUX menu (USB)', which has grub command 'search_isolinux usb', screen goes shortly black and then the main grub menu re-appears. As if the coreboot payload grub wants to tell "nothing found".
For the other boot menu entries I also get "nothing found".
What to do to make coreboot grub accepting USB image?
Groeten Geert Stappers
[1] Other USB-slots have also been tried. Only with the "front-left-USB-slot" do I see a blinking activity LED of the USB-memory-stick. [2] Other power-up-messages might have been printed, but the quick appearance of the grub menu overwrites then. [3] "Poweroff" and "Reboot" are not **boot** menu entries.
Hey Geert,
Geert Stappers wrote:
When I active menu entry 'Search ISOLINUX menu (USB)', which has grub command 'search_isolinux usb', screen goes shortly black and then the main grub menu re-appears. As if the coreboot payload grub wants to tell "nothing found".
..
What to do to make coreboot grub accepting USB image?
There are two ways forward, but neither actually involves coreboot itself:
1. Debug your grub
For this, please get in touch with the grub community, and remember to make clear that you're using grub on coreboot, not grub with a BIOS.
2. Use a SeaBIOS payload instead of grub
SeaBIOS is an open source BIOS implementation that can be built as coreboot payload, is known to boot well from USB and can additionally also boot other coreboot payloads (which you could use to start grub).
Replacing the payload requires changing the contents of the boot flash on your mainboard, possibly to contain a SeaBIOS payload that you built yourself. This alternative may or may not be practical for you.
In any case, coreboot is not involved in booting the operating system and that is on purpose. This task lies with the payload, so once the payload is running successfully you have to investigate the payload, not coreboot. I hope that makes sense. :)
Kind regards
//Peter
Hi Geert,
On 2022/8/8 03:51, Geert Stappers wrote:
Hello coreboot developers,
An .iso is fetched from Internet and `dd` to USB-memory-stick. The USB-thumbdrive is then inserted in the X230, on the left side, in the USB-slot closest to user[1].
I use my tool liveusb-builder (https://github.com/mytbk/liveusb-builder) to make your multiboot USB stick, which supports several common types of GNU/Linux iso images. It can generate a grub.cfg file that works with GRUB payload.