Mengapa grub tidak kompatibel dengan pi raspberry?


10

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.elfyang akan hilang jika digantikan oleh grub?


Saya tidak 100% tentang ini, tapi saya pikir masalahnya adalah prosesor ARM. AFAIK, grubhanya berfungsi untuk arsitektur Intel.
Seamus

@ Seamus Terima kasih atas pemikirannya. Keberadaan paket Debian grub-efi-arm menunjukkan bahwa grub dapat digunakan pada ARM.
Philip Couling


Tidak tahu itu - terima kasih! Sudahkah Anda mencoba versi ARM dari GRUB?
Seamus

4
Saya ingin mendapatkan komentar dari orang-orang yang memilih untuk menutup pertanyaan ini sebagai "tidak spesifik untuk Raspberry Pi". Bagaimana masalah sesuatu yang tidak kompatibel dengan Raspberry Pi tidak spesifik untuk itu?
Dmitry Grigoryev

Jawaban:


5

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.


Tautan mengkilap yang belum saya temukan. Saya ingin tahu apakah pemeriksaan EFI dapat dimatikan.
Philip Couling

@ PhilipCouling Saya rasa tidak, dalam pemahaman saya cek dilakukan di bagian sumber tertutup dari rantai bootloader.
Dmitry Grigoryev

2

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.


Memang. Raspberry Pi 3 sebenarnya memiliki firmware UEFI yang matang sekarang, dan pekerjaan sedang berlangsung untuk membawa hal yang sama untuk Pi 4. Dengan ini, Anda dapat dengan mudah menginstal distribusi vanilla Linux dan menggunakan GRUB sebagai bootloader Anda. Contoh instalasi vanili Debian dengan GRUB dapat ditemukan di sini misalnya.
Akeo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.