Leí muchas veces que la frambuesa pi no es compatible con grub. No he podido encontrar ningún detalle sobre la incompatibilidad. Solo he encontrado declaraciones bastante contundentes de la forma "no es compatible".
Me gustaría entender exactamente cuál es el problema y qué se debería volver a escribir para que funcione.
Lo que he encontrado hasta ahora es que el gestor de arranque de la etapa 3 lee start.elf, que a su vez lee la imagen del kernel. En mi opinión, si grub funcionara, reemplazaría (completamente) start.elf. Miré el formato de los cargadores de arranque UEFI y descubrí que usan un ejecutable en formato PE . Entonces, mi primera hipótesis es que la incompatibilidad es (solo) que grub se compila como PE y la etapa 3 solo lee ELF .
¿Me he perdido alguna otra gran incompatibilidad? ¿Me he perdido alguna otra tarea importante start.elf
que se perdería si fuera reemplazada por grub?
fuente
grub
solo funciona para arquitecturas Intel.Respuestas:
En realidad, si desea instalar Ubuntu con un núcleo genérico en su Raspberry Pi, debe usar grub2, como se describe aquí .
La única peculiaridad de compatibilidad es que grub2 puede establecer el indicador EFI en la partición de inicio, y el gestor de arranque RPi se negará a iniciar una partición con un conjunto de indicadores EFI. Cualquier editor de partición puede borrar la marca manualmente, haciendo que tanto el cargador de arranque RPi como grub2 reconozcan la partición correctamente.
fuente
El Raspberry Pi es especial porque el primario (ROM en el chip), el secundario (bootcode.bin) y el tercer gestor de arranque (start.elf) se ejecutan en su GPU , uno carga en cadena al otro. El conjunto de instrucciones no está debidamente documentado y se inicia a sí mismo en alto secreto.
Lo que se puede hacer (como han demostrado SuSE y Microsoft) es reemplazar kernel.img a voluntad , incluso con una versión personalizada de TianoCore (una implementación UEFI de código abierto) o U-Boot. Esto se puede usar para iniciar un binario GRUB2 o BOOTMGR compatible con UEFI.
fuente