Raspberry Pi: Bootmenü
- schorsch_76
- Beiträge: 2543
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Raspberry Pi: Bootmenü
Hallo zusammen,
hat jemand eine Idee wie man auf dem Pi ein Bootmenü einrichten kann ähnlich wie grub? Kann uboot das?
Hintergrund: Auf meinem Pi4 hab ich jetzt Debian Buster aarch64 am laufen und ich würde gerne verschiedene Bootoptionen anbieten.
hat jemand eine Idee wie man auf dem Pi ein Bootmenü einrichten kann ähnlich wie grub? Kann uboot das?
Hintergrund: Auf meinem Pi4 hab ich jetzt Debian Buster aarch64 am laufen und ich würde gerne verschiedene Bootoptionen anbieten.
Re: Raspberry Pi: Bootmenü
Wenn uboot funktioniert sollte das grundsätzlich funktionieren, mit grub-uboot.
Es soll dann so ablaufen, dass uboot startet und grub lädt. Wenn du herausfindest wie man das einrichtet, wäre ich dankbar, wenn du schreibst wie es geht (ich habe es nicht hartnäckig versucht).
Es soll dann so ablaufen, dass uboot startet und grub lädt. Wenn du herausfindest wie man das einrichtet, wäre ich dankbar, wenn du schreibst wie es geht (ich habe es nicht hartnäckig versucht).
- schorsch_76
- Beiträge: 2543
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Raspberry Pi: Bootmenü
u-boot kann wohl selbst ein Bootmenü anzeigen. Das muss ich mal probieren!
https://gitlab.denx.de/u-boot/u-boot/bl ... E.bootmenu
https://gitlab.denx.de/u-boot/u-boot/bl ... E.bootmenu
- schorsch_76
- Beiträge: 2543
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
- schorsch_76
- Beiträge: 2543
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Raspberry Pi: Bootmenü
Grub2 zum laufen zu bekommen war jetzt nicht so schlimm wie ich dachte ... aber es gibt natürlich noch ein Problem oder zwei ...
Wie ihr hier sehen könnt, lädt der RPi4 über UBoot grubaa64.efi und startet anschliessend den Kernel. Über die serielle Konsole kann ich grub auch bedienen aber das KEyboard wird nicht erkannt während grub aktiv ist. Auch unter UBoot kann ich nur über die Konsole was machen. Eventuell kann man hier bei der UBoot Config noch was machen.
u-boot hab ich aus den Quellen gebaut auf dem Pi selbst und anschließend nach /boot/firmware gepackt. Die config.txt startet das als "kernel=u-boot.bin". Wichtig ist auch "dtoverlay=disable-bt" damit der serielle Port nutzbar ist.
Oh ja, fast vergessen: Wichtig ist auch die aktuelle Ausgabe von /proc/cmdline in /etc/default/grub zu pachen in die default Argumente, sonst hat nach grub der Kernel keine cmdline bekommen. Das äussert sich darin, dass ihr gar nichts seht und auf der Console auch Leere herrscht.
https://youtu.be/i2e4FQShcy8
Muss mal weiter schauen, warum der Kernel hängen bleibt.
Auf der seriellen Konsole sieht man:
Wenn der Monitor nicht angesteckt ist, bootet der Kernel durch und ich kann mich über die serielle Konsole einloggen. Auch grub ist über die Konsole hervorragend bedienbar.
Wie ihr hier sehen könnt, lädt der RPi4 über UBoot grubaa64.efi und startet anschliessend den Kernel. Über die serielle Konsole kann ich grub auch bedienen aber das KEyboard wird nicht erkannt während grub aktiv ist. Auch unter UBoot kann ich nur über die Konsole was machen. Eventuell kann man hier bei der UBoot Config noch was machen.
u-boot hab ich aus den Quellen gebaut auf dem Pi selbst und anschließend nach /boot/firmware gepackt. Die config.txt startet das als "kernel=u-boot.bin". Wichtig ist auch "dtoverlay=disable-bt" damit der serielle Port nutzbar ist.
Oh ja, fast vergessen: Wichtig ist auch die aktuelle Ausgabe von /proc/cmdline in /etc/default/grub zu pachen in die default Argumente, sonst hat nach grub der Kernel keine cmdline bekommen. Das äussert sich darin, dass ihr gar nichts seht und auf der Console auch Leere herrscht.
https://youtu.be/i2e4FQShcy8
Muss mal weiter schauen, warum der Kernel hängen bleibt.
Auf der seriellen Konsole sieht man:
Code: Alles auswählen
U-Boot 2020.01-rc5-00027-g831f06fe9a (Dec 28 2019 - 16:31:53 +0000)
DRAM: 3.9 GiB
RPI 4 Model B (0xc03111)
MMC: emmc2@7e340000: 0, mmcnr@7e300000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial
Out: vidconsole
Err: vidconsole
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
224 bytes read in 13 ms (16.6 KiB/s)
## Executing script at 02400000
139264 bytes read in 41 ms (3.2 MiB/s)
Scanning disk emmc2@7e340000.blk...
Card did not respond to voltage select!
Scanning disk mmcnr@7e300000.blk...
Disk mmcnr@7e300000.blk not ready
Found 3 disks
EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map...
Re: Raspberry Pi: Bootmenü
Oh, ich bin davon ausgegangen, dass grub-uboot einen eigenen USB-Tastaturtreiber mitbringt, wie es auch grub-efi tut (»/usr/lib/grub/x86_64-efi/usb_keyboard.mod« im Paket grub-efi-amd64-bin, aber im Paket grub-uboot-bin findet sich keine vergleichbare Datei).
Auch das grub das als EFI bezeichnet finde ich interessant.
Danke fürs Posten!
Auch das grub das als EFI bezeichnet finde ich interessant.
Danke fürs Posten!
- schorsch_76
- Beiträge: 2543
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Raspberry Pi: Bootmenü
Hier ist das grub binary ein EFI Executable
u-boot standardisiert wohl ziemlich viele der Arm Platformen auf das EFI Interface. Siehe die Youtube Videos über UEFI.
u-boot standardisiert wohl ziemlich viele der Arm Platformen auf das EFI Interface. Siehe die Youtube Videos über UEFI.
- schorsch_76
- Beiträge: 2543
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Raspberry Pi: Bootmenü
Das mit usb_keyboard muss ich morgen mal probieren