Debian ARM64 in Proxmox

Aus /usr/space Wiki
Zur Navigation springen Zur Suche springen

In diesem Artikel wird beschrieben, wie Debian (arm64) in einer Proxmox-VM (auf einem x86-64 Host) aufgesetzt wird. Dieser Fall ist besonders für die Softwareentwicklung interessant, da sich so Programme für z.B. Raspberry Pi OS kompilieren lassen, ohne einen Raspberry Pi zur Hand zu haben.

Diese Anleitung wurde wurde für folgende Proxmox/Debian-ARM64-Kombinationen getestet:

  • Proxmox 7.x
    • Debian 12.1.0

Diese Anleitung basiert auf https://i12bretro.github.io/tutorials/0661.html.


Herunterladen des Images

Das zur Zeit aktuelle Debian-Image kann unter https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/ heruntergeladen werden. Andere Debian-Versionen müssen mit jigdo heruntergeladen werden, womit ich aber keinerlei Erfahrung habe - du darfst den Artikel gerne um entsprechende Infos erweitern ;-) .

Das Image kann direkt von Proxmox heruntergeladen werden, oder über das Webinterface des Clients auf den Proxmox-Server hochgeladen werden, wenn es bereits auf den Client geladen wurde. Dazu muss das entsprechende Storage (local) ausgewählt werden, unter ISO-Images finden sich die entsprechenden Buttons Hochladen und Von URL herunterladen.

Erstellen der VM

Mit einem Rechtsklick auf den Node-Namen bzw. Klick rechts oben auf den blauen Button Erstelle VM wird eine neue VM angelegt. Im folgenden werden nur die notwendigsten Schritte beschrieben:

  • Allgemein
    • Einen Namen für die VM vergeben
  • OS
    • Kein Medium verwenden auswählen
    • Linux 6.x - 2.6 auswählen
  • System
    • Grafikkarte: Serielles Terminal 0 wählen
    • SCSI Controller: VirtIO SCSI wählen (NICHT VirtIO SCSI single)
    • Bios OVMF (UEFI) wählen
      • Haken bei EFI-Disk hinzufügen entfernen
  • Disks
    • Disk-Größe anpassen
  • CPU
    • Anzahl der Kerne anpassen
  • Speicher
    • RAM anpassen
  • Netzwerk
    • Defaults beibehalten
  • Bestätigen
    • Übersicht kontrollieren und Button Abschließen klicken
    • Checkbox Nach Erstellen starten NICHT anhaken

Anpassen der VM

Im linken Navigationsbereich sollte die neu angelegte VM zu sehen sein - einmal anklicken, um sie auszuwählen. Im der VM-Navigation den Bereich Hardware auswählen:

  • CD/DVD Laufwerk (ide<X>) auswählen
    • oben auf den Button Entfernen klicken
  • Hinzufügen -> Serieller Anschluss
    • 0 beibehalten -> Hinzufügen klicken
  • Hinzufügen -> CD/DVD Laufwerk
    • Bus/Device: SCSI
    • Debian-Image auswählen

Jetzt den Bereich Optionen wählen.

  • Doppelklick auf Boot-Reihenfolge
    • Das Laufwerk, welches das Debian-Image enthält, per drag-and-drop nach oben verschieben

Starte ein Terminal auf deinem Proxmox-System, entweder per SSH oder klicke links im Navigationsbreich auf <Node-Name> -> Shell oder Rechtsklick auf <Node-Name> -> Shell:

  • Führe nano /etc/pve/qemu-server/<VM-ID>.conf aus, wobei die ID der VM einzusetzen ist.
    • Füge die folgende Zeile hinzu: arch: aarch64
    • Die Zeile, welche mit 'vmgenid' beginnt, kommentieren, indem ein '#' (ohne ') am Anfang der Zeile eingefügt wird

Erster Start der VM

  • Wähle links im Navigationsbereich wieder die erstellte VM aus und starte eine Konsole durch Klick auf den Button Konsole rechts oben.
    • Wähle NICHT Konsole aus dem Navigationsbereich der VM, da dabei die Konsole nicht in einem separaten Fenster, sondern eingebettet im restlichen Proxmox-Webinterface gestartet wird. Ich habe mit dieser Methode schlechte Erfahrungen gemacht, da bei mir die Verbindung über die serielle Schnittstelle zur VM nur beim ersten Versuch funktioniert hat - es kann also passieren, wenn du im Proxmox-Webinterface weiternavigierst, dass du die Verbindung der Konsole verlierst, was während der Installation besonders nervenraubend sein kann.
  • Klicke im Konsolen-Fenster auf den Button Start Now

Installation von Debian

Es sollte bereits der Punkt Install ausgewählt sein, falls nicht, wähle ihn mit den Pfeil rauf/Pfeil runter Tasten aus, und bestätige mit Enter oder Pfeil rechts. Ab jetzt einfach den Anweisungen folgen und ein bisschen Geduld haben ;-)

Sobald eine Desktopumgebung ausgewählt werden kann, sollte KEINE DE ausgewählt werden. Ich habe keine DE zum Laufen gebracht (Zumindest nicht bei meinen ersten Versuchen [ca 2021] mit Debian 11), mit der ich mich über z.B. VNC verbinden hätte können. Eine DE ist zum Kompilieren von z.B. GUIs auch nicht notwendig - zumindest nicht, wenn man das Programm nicht auf der gleichen Maschine ausführen will ;-)

Sobald die Installation abgeschlossen ist, wähle neu starten/reboot aus. Sobald wieder das Installationsmenü auftaucht, Stoppe die VM durch Rechtsklick auf die VM links im Navigationsbereich -> Stopp, oder durch Klick auf den kleinen Pfeil nach unten rechts von Herunterfahren (oben links von Konsole) -> Stopp.

VM fertig einrichten

Wähle Hardware aus dem Navigationsbereich der VM:

  • Doppelklicke auf CD/DVD Laufwerk (scsi<X>)
    • Wähle Kein Medium verwenden

Wähle Optionen aus dem Navigationsbereich der VM:

  • Doppelklicke auf Boot-Reihenfolge
    • Entferne den Aktiviert-Haken bei net0 (sonst muss beim Start der VM lange auf das Fehlschlagen des Netzwerk-Boots gewartet werden, da unser Debian noch nicht bootfähig ist)
    • Nach Wunsch kann auch der Aktiviert-Haken des CD-Laufwerks entfernt werden.

Falls der Start Now-Button nicht im Konsolen-Fenster zu sehen ist, einfach das Fenster schließen und durch Klick auf Konsole rechts oben ein neues Konsolen-Fenster öffnen und auf Start Now klicken. Es sollte ein Prompt der UEFI-Shell auftauchen. Es muss folgender Befehl eingegeben werden:

 fs0:\EFI\debian\grubaa64.efi

Es kann Tab zur Autovervollständigung benutzt werden. Beachte, dass \ (Backslash) anstatt / (Forward Slash) benutzt werden.

Anscheinend funktioniert die Backspace-Taste nicht wie gewohnt. Zum Löschen einzelner Zeichen muss sie in Kombination mit Umschalt betätigt werden. Zum Löschen der ganzen Zeile kann Alt + Backspace gedrückt werden.

Letzte Schritte

Als root anmelden

Falls sudo noch nicht installiert ist (einfach 'sudo' eingeben, dann siehst du, ob es installiert ist) führe noch folgende Befehle aus:

 apt install sudo
 usermod -aG sudo <BENUTZERNAME>

Ersetze dabei <BENUTZERNAME> durch den unprivilegierten Benutzer, der während der Installation angelegt wurde. Standardmäßig sollte nämlich SSH für den root-Benutzer deaktiviert sein (das sollte auch so bleiben), somit braucht der 'normale' Benutzer eine Möglichkeit, Root-Rechte zu erlangen.

System bootfähig machen

Die folgenden letzten :-) Schritte können entweder in der aktuellen root-Konsole oder bereits per SSH erledigt werden. Falls man nicht root ist, ist dem Befehl noch ein sudo voranzustellen:

 nano /boot/efi/startup.nsh

Jetzt den Befehl, den wir vorher in die UEFI-Shell eingeben mussten, in die Datei schreiben:

 fs0:\EFI\debian\grubaa64.efi

Speichern (Strg + O) und schließen (Strg + X).

Qemu Guest Agent

Falls notwendig, muss noch qemu-guest-agent installiert werden. Das können wir mit folgendem Befehl überprüfen:

 apt list --installed qemu-guest-agent

Falls keine entsprechende Zeile in der Ausgabe zu sehen ist, einfach den Befehl apt install qemu-guest-agent ausführen.

Jetzt muss die VM heruntergefahren werden. Z.B. mittels poweroff (als root) bzw. sudo poweroff.

Wähle Optionen aus dem Navigationsbereich der VM:

  • Doppelklick auf QEMU Guest Agent
    • Haken bei QEMU Guest Agent benützen setzen.
  • Falls die VM automatisch mit Proxmox gestartet werden soll:
    • Doppelklick auf Beim Booten starten und Checkbox anhaken

Die VM kann jetzt wieder mittels Rechtsklick auf die VM links im Navigationsbereich -> Start oder per Klick auf den Start-Button oben gestartet werden. Die serielle Konsole ist nicht mehr notwendig.

Glückwunsch. Du solltest jetzt erfolgreich ein Debian arm64-System auf deinem Proxmox-Server eingerichtet haben.