LostCave

The DIY Data Center

UEFI auf einem Raspberry Pi

UEFI on a Raspberry Pi

Der Raspberry Pi ist ein ARM-basierter Single-Board-Computer mit sehr vielfältigen Anwendungsmöglichkeiten, allerdings hat er einen kleinen Haken: Die Systeme, die auf dem Pi laufen müssen speziell für den Pi gemacht sein.
Im Folgenden beschreibe ich, wie ich generische UEFI-ARM-Systeme auf einem Raspberry Pi zum Laufen gebracht habe. Die ganze Prozedur ist vollkommen unbedenklich und kann problemlos rückgängig gemacht werden, indem das Bootmedium gelöscht oder mit einem anderen Image überschrieben wird.

The Raspberry Pi is an ARM based single board computer with various applications but it has one downfall: Operating systems that run on the Pi have to be specifically made to run on it.
This guide shows how I got generic UEFI ARM systems running on a Pi. The setup will not damage your Pi and can be undone by wiping the boot medium or overwriting it with another image.

Wie es funktioniert

How it works

Raspberry Pis haben die Firmware nicht direkt auf einem Chip auf der Platine, sondern haben einen minimalen Loader, der die Firmware von einer Partition auf dem Bootmedium lädt. Das heißt, das Bootmedium muss die Firmware selbst mitbringen. Es heißt aber auch, dass man die Firmware einfach austauchen kann (zum Beispiel durch eine UEFI-Firmware).

Raspberry Pis don't have the firmware on a chip on their PCB. They have a minimal loader that loads the firmware off a partition on the boot medium. That means the firmware has to be provided on the boot medium. This allows to easily exchange the firmware for another one (for example with a UEFI-capable one).

Vorbereitung

Preparation

Es ist empfehlenswert (aber nicht unbedingt erforderlich), den ROM des Pis zu updaten, da ältere Versionen des ROMs möglicherweise keine GPT-Partitionierung erkennen und dadurch nicht in der Lage sind, die Firmware zu laden.
Außerdem is es sinnvoll, zwei oder drei Speichermedien bereit zu legen. Eines wird für die Installation eines Betriebssystems verwendet und abhängig davon, ob das Betriebssystem und die Firmware auf das gleiche oder auf unterschiedliche Medien sollen, werden eines oder zwei dafür gebraucht.
Falls ein Pi mit einem veralteten ROM, der kein GPT unterstützt, verwendet werden soll, muss die Variante mit separaten Medien für Firmware und Betriebssystem gewählt werden.
Die Firmware-Dateien, die später verwendet werden, können von dieser Seite heruntergeladen werden.

It is advisable (but not necessary) to update the Pi's ROM because older versions of the ROM may not support GPT.
You will also want to have two or three storage devices ready to use. One will be used for the OS installer and depending on whether you want to put the firmware and the OS on the same drive or on different ones, you will need one or two storage devices for that.
To use a Pi with an outdated firmware that is unable to handle GPT, you will need separate storage media for the firmware and the operating system.
The firmware files that will be used can be downloaded from here.

Installation der Firmware

Installing the Firmware

Zuerst muss eine Firmware-Partition angelegt werden. Für die Installation von Firmware und Betriebssystem auf separaten Medien ist es ratsam, eine MBR-Partitionstabelle auf dem Firmware-Speicherrmedium anzulegen, da die Kompatibilität mit alten ROM-Versionen so sicher gestellt werden kann. Der nächste Schritt ist, eine Partition mit FAT32-Formatierung für die Fimware anzulegen. Für die Installation von Firmmware und Betriebssystem auf einem Medium muss ein GPT angelegt werden und dann eine Partition mit Partitionstyp "Microsoft Data" und FAT-32-Formatierung.
Die Installation der Firmware wird abgeschlossen, indem die Firmware-Dateien aus dem heruntergeladenen Zip-Archiv auf die Partition entpackt werden. Dabei ist es wichtig, dass die Ordnerstruktur beibehalten wird.