Ich habe mehrfach gelesen, dass der Himbeer-Pi Grub nicht unterstützt. Ich konnte keine Einzelheiten über die Inkompatibilität finden. Ich habe nur ziemlich stumpfe Aussagen der Form "es wird nicht unterstützt" gefunden.
Ich möchte genau verstehen, worum es geht und was neu geschrieben werden muss, damit es funktioniert.
Was ich bisher gefunden habe, ist, dass der Bootloader der Stufe 3 start.elf liest, was wiederum das Kernel-Image liest. Wenn grub funktionieren würde, würde es meiner Meinung nach (vollständig) start.elf ersetzen. Ich habe mir das Format von UEFI-Bootloadern angesehen und festgestellt, dass sie eine ausführbare Datei im PE-Format verwenden . Meine erste Hypothese ist also, dass die Inkompatibilität (nur) darin besteht, dass Grub als PE kompiliert wird und Stufe 3 nur ELF liest .
Habe ich eine andere größere Inkompatibilität verpasst? Habe ich eine andere wichtige Aufgabe verpasst, start.elf
die verloren gehen würde, wenn sie durch Maden ersetzt würde?
quelle
grub
funktioniert nur für Intel-Architekturen.Antworten:
Eigentlich, wenn Sie Ubuntu mit einem generischen Kernel auf dem Raspberry Pi installieren möchten, Sie müssen grub2 verwenden, wie hier .
Die einzige Kompatibilitäts-Besonderheit besteht darin, dass grub2 möglicherweise das EFI-Flag auf der Boot-Partition setzt und der RPi-Bootloader sich weigert, eine Partition mit gesetztem EFI-Flag zu starten. Das Flag kann von jedem Partitionseditor manuell gelöscht werden, sodass sowohl der RPi-Bootloader als auch grub2 die Partition korrekt erkennen.
quelle
Der Raspberry Pi zeichnet sich dadurch aus, dass der primäre (On-Chip-ROM), der sekundäre (bootcode.bin) und der dritte Bootloader (start.elf) auf seiner GPU ausgeführt werden , wobei einer den anderen verkettet . Der Befehlssatz ist nicht ordnungsgemäß dokumentiert und startet sich streng geheim.
Wie SuSE und Microsoft gezeigt haben , kann kernel.img nach Belieben ersetzt werden - auch durch eine benutzerdefinierte Version von TianoCore (eine Open-Source-UEFI-Implementierung) oder U-Boot. Dies kann dann verwendet werden, um eine UEFI-kompatible GRUB2- oder BOOTMGR-Binärdatei zu starten.
quelle