Saya telah membaca beberapa kali bahwa pi raspberry tidak mendukung grub. Saya belum dapat menemukan spesifik tentang ketidakcocokan. Saya hanya menemukan pernyataan agak tumpul dari bentuk "itu tidak didukung".
Saya ingin mengerti persis apa masalahnya dan apa yang perlu ditulis ulang untuk membuatnya bekerja.
Apa yang saya temukan sejauh ini adalah bootloader tahap 3 membaca start.elf yang pada gilirannya membaca gambar kernel. Menurut saya, jika grub berhasil, itu akan menggantikan (seluruhnya) mulai. Saya telah melihat format bootloader UEFI dan menemukan bahwa mereka menggunakan format PE yang dapat dieksekusi. Jadi hipotesis pertama saya adalah bahwa ketidakcocokan adalah (hanya) bahwa grub dikompilasi sebagai PE dan tahap 3 hanya membaca ELF .
Apakah saya melewatkan beberapa ketidakcocokan utama lainnya? Apakah saya melewatkan beberapa tugas besar lainnya start.elf
yang akan hilang jika digantikan oleh grub?
sumber
grub
hanya berfungsi untuk arsitektur Intel.Jawaban:
Sebenarnya, jika Anda ingin menginstal Ubuntu dengan kernel generik pada Raspberry Pi Anda, Anda harus menggunakan grub2, seperti dijelaskan di sini .
Satu-satunya kendala kompatibilitas adalah grub2 dapat mengatur flag EFI pada partisi boot, dan bootloader RPi akan menolak untuk mem-boot partisi dengan set flag EFI. Bendera dapat dibersihkan secara manual oleh editor partisi mana saja, membuat bootloader RPi dan grub2 mengenali partisi dengan benar.
sumber
Raspberry Pi khusus bahwa bootloader primer (on-chip ROM), sekunder (bootcode.bin) dan ketiga (start.elf) dijalankan pada GPU -nya , satu rantai memuat yang lainnya. Set instruksi tidak didokumentasikan dengan benar dan mulai. Rahasia itu sendiri sangat rahasia.
Apa yang dapat dilakukan (seperti yang ditunjukkan SuSE dan Microsoft) adalah mengganti kernel.img sesuka hati - bahkan dengan versi kustom TianoCore (implementasi UEFI sumber terbuka) atau U-Boot. Ini kemudian dapat digunakan untuk memulai biner GRUB2 atau BOOTMGR yang kompatibel dengan UEFI.
sumber