Keine Ahnung ob es an mir, den hier rumliegenden APU1-Boards von PC Engines oder sonstetwas liegt. Bei dem Versuch Debian 9.6.0 Stretch via Netinst-USB-Stick auf mehrere dieser Boards einzurichten ging ein bischen was schief. Hingegen vieler Anleitungen im Netz wollte es nicht so recht klappen. Die Kombi aus mehreren Anleitungen verhalf dann letztlich erfolgreich zum Ziel.

Unterschiede APU(1) und APU2

Unterschiede zwischen den APU(1) und APU2-Boards gibt es einige, wie z.B. anderer Prozessor, schnellerer RAM, Realtek- (APU1) bzw. Intel (APU2)-NICs, usw.

PC Engines – APU

PC Eninges – APU2

APU(1)-Boards sind schlicht die älteren Boards, verrichten aber bislang in vielen Appliances treu ihren Dienst, zumindest hatten wir bislang keinen Ausfall.

Boot-Probleme

Der Start vom USB-Stick blieb mitunter bereits nach “ISOLINUX” hängen, spätestens aber nach “Probing EDD…” stehen. Man kam jedenfalls nicht weiter.

BIOS aktualisieren

Auf dem Board sollte die aktuellste BIOS-Version installiert sein, andernfalls kommt es unter Umständen zu Abstürzen:

3CX/Debian: Kernel Panic bei der Installation auf PC Engines APU1-Board

USB-Stick erstellen

  • Zuerst lädt man das aktuelle Debian-Netinst-ISO herunter.
  • Dieses Abbild schreibt man mit Rufus auf einen USB-Stick.

Hinweis: Mit anderen Tools als Rufus kann man die ISO zwar ebenfalls auf einen USB-Stick übertragen, allerdings booteten diese dann nicht bei mir erfolgreich durch.

USB-Stick anpassen

Damit der Bootvorgang auf dem APU(1)-Board gelingt und man über die serielle Schnittstelle sowohl das Bootmenü und später den Installer dargestellt bekommt, müssen folgende Änderungen auf dem USB-Stick vorgenommen werden:

Im Root des USB-Sticks die Datei “syslinux.cfg” editieren und am Anfang die folgenden beiden Zeilen einfügen:

CONSOLE 0
SERIAL 0 115200

Dadurch wird bereits das Bootmenü an die serielle Schnittstellen umgeleitet.

Im Ordner “isolinux” die Datei “txt.cfg” editieren. Die Zeile mit “append…” muss wie folgt aussehen:

append vga=off console=ttyS0,115200n8 initrd=/install.amd/initrd.gz --- quiet console=ttyS0,115200n8

Wichtig: Unbedingt die Reihenfolge beachten, andernfalls klappt es nicht! Am besten die Zeile so übernehmen wie sie hier steht.

Diese Änderung sorgt dafür, das der Text-Installer, nachdem man “Install” aus dem Bootmenü ausgewählt hat, an die serielle Schnittstelle umgeleitet wird und man darüber letztlich die eigentliche Installation durchführen kann.

Zu guterletzt muss man noch die Realtek-Firmware für die Netzwerkkarten auf den Stick kopieren:

Debian installieren

Nun kann man das Board mit dem Stick starten und die Installation wie gewünscht durchführen.

Bemerkung zur Sprachauswahl:

Eigentlich steht nur „English“ zur Auswahl und „Land/Region“ kann man auswählen. Letztgenanntes ist relevant! Um „Europe“ und folglich „Germany“ auswählen zu können, zunächst „other“ auswählen. Die „locales“-Auswahl wie vorgeschlagen lassen. Nach der Installation kann man “locales” wie folgt ändern:

dpkg-reconfigure locales

Nach Ausführung des obigen Befehls erschien bei mir folgende Ausgabe:

Generating locales (this might take a while)...
de_DE.UTF-8... done
en_US.UTF-8... done
Generation complete.
*** update-locale: Warning: LANGUAGE ("en_US:en") is not compatible with LANG (de_DE.UTF-8). Disabling it.

Das klingt zunächst unerfreulich. Nach einer Runde Ab- und Anmelden und Prüfung durch folgenden Befehl scheint alles gut zu sein:

root@debian:~# env | grep LANG
LANG=de_DE.UTF-8

Anpassungen nach der Installation

Sobald die eigentliche Installation abgeschlossen ist, sollte man noch den GRUB-Bootloader anpassen, sonst sieht man zukünftig keine Ausgabe an der Konsole.

Hinweis: Dieser Schritt ist nur notwendig, wenn man zuvor in der “txt.cfg” nicht zu Erweiterung “console=ttyS0,115200n8” am Ende drin stehen hat.

  • nano /etc/default/grub
  • Folgendes Einfügen bzw. Ergänzen und Speichern:
    GRUB_CMDLINE_LINUX="console=ttyS0,115200n8"
  • update-grub

Was tun, wenn ssh nicht läuft und man an der Konsole nichts sieht

Hat man die Änderung von Grub vergessen und ssh nicht installiert oder es läuft es irgendwelchen anderen Gründen nicht, so kann man beim Booten noch händisch eintragen, das auf die serielle Schnittstelle umgeleitet werden soll:

  • Das Board neu starten und “e” drücken.
  • Den “linux”-Eintrag um “console=ttyS0,115200n8″ ergänzen” und “F10” drücken.

Abschlussbemerkung

Wenn man weiß wo und wie ist die Einrichtung ganz simple. Ohne die Anleitung von Marcel Stritzelberger wäre ich allerdings ganz schön aufgeschmissen gewesen.

Quellen:

How to install Ubuntu using serial console

computing competence – Installation von Debian auf einem APU Embedded Board (APU.2C4)

debian – Wiki – Locale

debian – Wiki – ChangeLanguage

Update 26.11.2018

Kaum den Beitrag geschrieben und veröffentlich, schon gibt’s ein Update: Kleinere Fehler korrigiert. Automatische Aktualisierung von Grub eingetragen, dadurch entfällt das manuelle Nachtragen. Falls man die Grub-Änderung doch mal vergessen haben sollte hinzugefügt und einen Abschnitt zur Installation bzw. zu den “locales” hinzugefügt.