Orange PI Setup


  1. Einleitung
  2. Linux Image auf SD Karte bringen
  3. Serielle Verbindung für die ersten Einstellungen
  4. Datenpartition vergrößern
  5. WLAN und LAN einrichten
  6. Updates installieren

Einleitung

OrangePI Module sind System-on-Chip Kleincomputer die je nach Modell als Desktop-Ersatz oder IOT Steuergerät benutzt werden können.

Die meisten Geräte nutzen eine AllWinner ARM CPU und haben unterschiedlich von 256 MB bis mehrere Gigabyte Arbeitsspeicher verbaut.

Sie bieten wegen höherer Taktraten teilweise mehr Rechenkraft als viele Raspberry PI Modelle, brauchen dafür aber auch um einiges mehr Strom, den sie über einen USB Port oder eine alternative Buchse mit 5 Volt aufnehmen. Ein Netzteil mit mindestens 2 Ampere ist hier Voraussetzung.

Einige Modelle beihalten Grafikchips und HDMI Ausgänge, während andere nur headless per Netzwerk oder serieller Verbindung bedient werden können. Auch sind neben WLAN und Bluetooth teilweise auch 2G und neuere Breitbandtechnologien vom Chip aus unterstützt.

Diese Zusammenfassung bezieht sich primär auf Headless-System, die nicht per Monitor, Tastatur und Maus konfiguriert werden können.

Als Referenz nutze ich meinen OrangePi Zero.


Linux Image auf SD Karte bringen

Das richtige Linux Image für einen Orange PI findet man am besten auf der Homepage unter Resources - Downloads. Es werden neben Android meist Images für Ubuntu, Debian und Armbian angeboten.

Ich wähle meist Ubuntu, da es hierfür einen großen Community Support gibt. Für meinen Orange PI ist es ubuntu-server.

Die Image werden leider nicht auf der Homepage selbst gehostet, sondern liegen auf Diensten wie Google Drive oder der Baidu Cloud. Ich würde also empfehlen solche Images bei sich zu sichern, falls diese Dienste ihre Pforten schließen.

Die Linux Versionen sind leider auch nicht immer die neuesten (z.B. Ubuntu Xenial von 2016), doch zum Glück existieren meist Upgrade-Szenarios, womit man sein System auf den neuesten Stand heben kann.

MicroSD Karte mit binärem Image beschreiben

8 GB ist genug, mehr ist aber besser. Die Images benötigen in der Regel zwischen 500 MB und bis maximal 2 GB. Damit passen sie quasi auf jede Karte. Doch um weitere Software darauf zu installieren, sollten ein paar Gigabyte mehr zur Verfügung stehen und außerdem lebt die SD-Karte auch länger, wenn sie ihre Schreibvorgänge auf viele Zellen verteilen kann und nicht immer die gleichen verbrauchen muss.

Unter Linux kann das entpackte Image mit dd direkt auf die SD Karte geschrieben werden und unter Windows kann der Win32 Disk Imager genützt werden.

Sobald das Image geschrieben ist, ist es startklar und kann in den Slot des OrangePI eingeschoben werden.


Serielle Verbindung für die ersten Einstellungen

Die drei Pins für die serielle TTL Verbindung liegen direkt neben dem LAN Port und sind von außen nach innen so belegt:

  1. GROUND
  2. TX Senden
  3. RX Empfangen

Diese drei Pins verbindet man mit einem TTL-Serial-to-USB Adapter und schließt ihn an den PC an.

OrangePI Zero

Unter Windows helfen uns Tools wie PuTTY um die serielle Verbindung zu nutzen und gleichzeitig die VT-100 Kommandos von Linux richtig anzuzeigen.
Man wählt die Option Serial im Konfigurationsdialog und trägt bei Serial line den COM-Port des USB-Adapters ein, z.B.: COM4. Als Geschwindigkeit nutzt der OrangePI die vollen 115200 Baud, also wird dieser Wert unter Speed in PuTTY eingetragen.

PuTTY Serial

Nun kann die Verbindung seitens PuTTY aufgebaut werden.

Im Idealfall schließt man jetzt noch ein LAN Kabel an, welches IP Adressen per DHCP bereitstellt.

Nun wird der OrangePI mit Strom versorgt.
Schon sieht man in der seriellen Konsole wie der Linux Kernel gestartet wird und die ersten Systemdienste hochfahren.

Kurze Zeit später erwartet Linux bereits den Login, den man in der Regel mit dem Benutzer root und dem Passwort orangepi durchführt.
(Manche Images können davon abweichen, was in entsprechenden Readme-Dateien oder auf der Downloadseite erwähnt sein sollte.)

OrangePI Ubuntu Boot

Mit dem guten alten ifconfig lässt sich der Zustand des LAN-Adapters überprüfen, ob er eine IP erhalten hat.

Bevor wir nun Updates herunterladen können, sollte die Datenpartition vergrößert werden, da diese fast voll ist und sich nicht bis zum Ende der SD-Karte erstreckt.


Datenpartition vergrößern

Hinweis: Manche Images führen beim ersten hochfahren bereits einen Prozess aus, der die Datenpartition bis ans Ende der SD-Karte erweitert.

Das erkannt man durch den wiederholten Aufruf von df, welches die Speicherplatzbelegung anzeigt und die Datenpartition immer größer wird, bis sie die maximal Kapazität erreicht hat.

In diesem Fall kann der nachfolgende Abschnitt übersprungen werden!

Dieser Teil ist etwas kniffliger und erfordert die Eingabe der genauen Adressen und Größen für die Datenpartition.

  1. Wir benutzen das Tool fdisk um die genaue Größe der SD-Karte herauszufinden.
  2. Dann löschen wir die Datenpartition und legen an der gleichen Beginnposition eine neue größere an. Die Daten innerhalb der alten Partition bleiben dabei unberührt und sind dann automatisch Teil der neuen Partition.
  3. Nach einem Neustart nutzen wir das Tool resize2fs um das Dateisystem der Partition ebenfalls auf die neue Größe zu heben.

Der genaue Ablauf sieht wie folgt aus:

  • fdisk /dev/mmcblk0 startet fdisk für die SD-Karte mit Gerätenamen “mmcblk0”.
    1 root@orangepi:~# fdisk /dev/mmcblk0
    2 Welcome to fdisk (util-linux 2.25.2).
    3 Changes will remain in memory only, until you decide to write them.
    4 Be careful before using the write command.
    5  
    6 Command (m for help):
    
  • p zeigt die aktuellen Partitionsinformationen an. Besonders wichtig ist dabei der Start-Sektor der Partition Nr. 2 namens “mmcblk0p2”. Diesen Wert müssen wir nachfolgend erneut eintragen. Hier im Beispiel ist er “135168”
     1 Command (m for help): p
     2 Disk /dev/mmcblk0: 7.5 GiB, 8053063680 bytes, 15728640 sectors
     3 Units: sectors of 1 * 512 = 512 bytes
     4 Sector size (logical/physical): 512 bytes / 512 bytes
     5 I/O size (minimum/optimal): 512 bytes / 512 bytes
     6 Disklabel type: dos
     7 Disk identifier: 0x1c3cb8c1
     8  
     9 Device         Boot  Start     End Sectors Size Id Type
    10 /dev/mmcblk0p1        4096  135167  131072  64M 83 Linux
    11 /dev/mmcblk0p2      135168 4329471 4194304   2G 83 Linux
    
  • Mit d stoßen wir die Löschung an und tippen darauf 2 um die zweite Partition zu löschen
    1 Command (m for help): d
    2 Partition number (1,2, default 2): 2
    3  
    4 Partition 2 has been deleted.
    
  • Anschließend nutzen wir die Zeichen n, p und 2 um eine neue primäre Partition mit Nummer 2 zu erstellen. Nun müssen wir den Start-Sektor Wert von vorhin eintragen. Hier im Beispiel lautet er auf 135168. Nachfolgend können wir den End-Sektor angeben. Drücken wir einfach ENTER wird der letzte Sektor der SD-Karte benutzt und die Partition erhält die maximale Größe.
    Man kann aber auch Größen angeben wie z.B.: +7G und würde damit genau 7 Gigabyte für die Partition reservieren.
     1 Command (m for help): n
     2 Partition type
     3    p   primary (1 primary, 0 extended, 3 free)
     4    e   extended (container for logical partitions)
     5 Select (default p): p
     6 Partition number (2-4, default 2): 2
     7 First sector (2048-15728639, default 2048): 135168
     8 Last sector, +sectors or +size{K,M,G,T,P} (135168-15728639, default 15728639):
     9  
    10 Created a new partition 2 of type 'Linux' and of size 7.4 GiB.
    
  • Mit w wird die Änderung auf die Karte geschrieben und das Programm beendet. Man jedoch mit q abbrechen ohne eine Änderung durchgeführt zu haben.
    1 Command (m for help): w
    2 The partition table has been altered.
    
  • reboot lässt den OrangePI neu starten, damit die neue größere Partition vom System genutzt werden kann.
  • Nach dem Neustart wird noch final das Kommando
    resize2fs /dev/mmcblk0p2
    gestartet um das Dateisystem auszudehnen.
  • Das System sollte nun genügen Platz für Updates und Software haben, was mit dem Aufruf df prüfen kann.

WLAN und LAN einrichten

WLAN

Das WLAN-Modul ist als Gerät “wlan0” bereits vorhanden aber noch nicht konfiguriert. Ubuntu nutzt NetworkManager um seine Netzadapter zu verwalten. Mit dem Textuserinterface des Tools nmtui kann die Verbindung mit einem WLAN Accesspoint hergestellt werden.

Dazu wählt man im Menü Activate a connection wo bereits die gefundenen WLANs aufgelistet sind. Selektiert man eines mit den Pfeiltasten und drückt ENTER wird zur Eingabe des Passwortes aufgefordert.
Nach dessen Eingabe wird die Verbindung hergestellt und man kann das Netzwerk nutzen, nachdem man mit ESC das Programm beendet hat.

LAN und WLAN konfigurieren

Mit nmtui lassen sich im ersten Menüpunkt Edit a connection die aktuellen LAN (Ethernet) und WLAN (WI-FI) Einstellungen abändern.
Man selektiert ebenfalls die gewünscht Verbindung per Pfeiltasten und öffnet den Konfigurationsdialog mit ENTER.

Hier kann man jede Einstellung mit den Pfeiltasten ansteuern mit ENTER öffnen oder mit ESC zum vorhergehenden Bildschirm zurückkehren.

Also alles ganz einfach.

Nachdem der SSH Dienst ebenfalls bereits laufen sollte, kann die weitere Administration nach Wunsch bereits über das Netzwerk erfolgen.


Updates herunterladen

Updates für die installierte Distribution installieren.

Wie auf allen Debian Systemen nutzt man hier einfach:
apt-get update
um eine Liste aller verfügbaren Updates herunterzuladen und danach:
apt-get upgrade
um alle Sicherheitsaktualisierungen herunterzuladen.

Neue Softwarepaket können mit
apt-get install PACKNAME
heruntergeladen und installiert werden, womit man hilfreiche Konsolen Tools wie mc oder nano integrieren kann.

Da bei den fertigen Images häufig ein chinesischer Mirror-Server konfiguriert ist, kann es unter Umständen sehr lange dauern Pakete von dort zu beziehen.

Man kann daher zu anderen näheren Server wechseln oder zum originalen Ubuntu-Ports Repository umsteigen, in dem man die Daten /etc/apt/sources.list editiert und die eingetragenen URL-Token durch andere Mirrors oder http://ports.ubuntu.com/ubuntu-ports ersetzen.

Nach einem erneuten apt-get update lädt man weitere Updates vom neu konfigurieren Server.

Neue Distribution installieren

Für eine Aktualisierung müssen alle URLs für die Update-Downloads auf die Pfade der neuen Distribution umgestellt werden.
Die installierte Ubuntu 16.04 Version trägt den Namen xenial, und die nächste Version ist 18.04 mit dem Namen bionic. Zur Zeit der Verfassung des Artikels ist 20.4 namens focal aktuell.

Man editiert also die Datei /etc/apt/sources.list und ersetzt jeden Token, der auf xenial lautet durch bionic oder focal (ja nach gewünschter Zielversion) und speichert die Änderung.

Danach wird
apt-get update
ausgeführt um die neuen Softwarelisten herunterzuladen. Ist dieser Vorgang abgeschlossen, wird apt-get dist-upgrade
aufgerufen. Nun lädt apt alle neuen Softwarepakete herunter und installiert sie über das lokale System.

Jetzt heißt es warten und parallel sicherstellen, dass die Netzwerkverbindung nicht abreißt, denn dieser Vorgang kann einige Zeit in Anspruch nehmen. Sollte das Netzwerk dennoch ausfallen, lässt sich apt-get dist-upgrade in der Regel problemlos neu starten und setzt dort fort, wo es zuvor unterbrochen wurde.

Ist die Aktion erfolgreich abgeschlossen, so hat man nach dem Neustart eine neuere Ubuntu Distribution auf seinem OrangePI System laufen.

Ich konnte im Test durchaus Versionen überspringen, also direkt von xenial zu focal upgraden. Wer aber auf Nummer sicher gehen will, kann auch mehrere Upgrades hintereinander durchführen.