In diesem Artikel beschreibe ich kurz, wie ich Ubuntu 16.04.3 LTS auf einer mSATA SSD in meinem APU2C4 Board installiert habe.

USB Stick vorbereiten

Da ich massive Probleme bei der Installation mit einem USB3.0 Stick hatte empfehle ich einen USB2.0 Stick zu verwenden.

Zuerst muss der USB Stick mit dem PC Engines bootable USB Installer Tool – ich habe die [Version 1.8](http://PC Engines.ch/file/apu-bootable-usb-installer_v1.8.exe) verwendet – präperiert werden (ggf. den Haken bei formatieren setzen). Danach müssen die drei Dateien aus [folgendem Archiv](http://PC Engines.ch/tmp/ubuntu16.04_serial.tar.bz2) auf den Stick kopiert und überschrieben werden. Diese Dateien beinhalten den für die Verwendung der Seriellen-Schnittstelle angepassten Installer für Ubuntu 16.04.3 LTS.

Ubuntu installieren

Der Installer kann ganz normal durchlaufen werden. Lediglich sollte darauf geachtet werden, dass ein SSH-Server installiert wird. Auch sollte ein normaler Benutzeraccount angelegt werden, der sich per SSH mit dem Board verbinden kann (root kann das standardmäßig nicht mit einem Passwort).

Bei der Installation des Grub Bootloaders sollte manuell die richtige Festplatte ausgewählt werden.

Ist die Installation abgeschlossen und das Gerät neu gestartet, sollte ein Zugriff per SSH auf das OS möglich sein. Per Serieller-Schnittstelle zu diesem Zeitpunkt kein Zugriff möglich. Dieser wird im nächsten Schritt konfiguriert.

Ubuntu (Grub Bootloader) konfigurieren

Um den Bootloader anzupassen wir eine Verbindung per SSH zu dem APU Board aufgebaut und dann die Datei wie folgt angepasst.

root@JanAPU:~# cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'
 
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="console=ttyS0,115200n81"
 
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
 
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
 
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
 
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
 
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
 
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"

Danach wird der Befehl update-grub ausgeführt. Das Board sollte nun einen Loginscreen auf der Seriellen-Schnittstelle anzeigen.

root@JanAPU:~# update-grub
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.4.0-104-generic
Found initrd image: /boot/initrd.img-4.4.0-104-generic
done