Pandaboard

Pandaboard Quick-Start mit Ubuntu

 

Abbidlung 1: Anschlüsse des Pandaboards


 

Wahl des OS

Vorkompilierte Binaries

Auf der Plattfrom http://omappedia.org/ finden sich neben Referenzen, Sourcen und Errata bereits getestete vorkompilierte Kernel für das PandaBoard:

 

Android

Seit kurzem ist Android 4.0 für das Pandaboard verfügbar. Mittels des ’Android NDK’ können zwar Teile eines Programmes nativ mit C/C++ implementiert werden, doch die zeitkritischen Anforderungen an die Servosteuerung machen Android grundsätzlich ungeeignet.

 

Ubuntu

Unter Ubuntu hat man eine vollwertige Linux-Umgebung, es sind Treiber für alle Hardware-Komponenten des Pandaboard verfügbar und alle wichtigen Pakete sind für die OMAP4-Plattform kompiliert. Neben der von uns verwendeten Server-Version welche einen Konsolen-Zugang über den HDMI-Ausgang und über den seriellen Ausgang bietet, ist in der Desktop-Version eine Out-Of-The-Box-Lösung mit Gnome verfügbar.

 

Die für die OMAP4-Plattform vorkompilierten Binaries finden sich unter http://omappedia.org/wiki/Prebuilt_ubuntu_binaries. Mit der aktuellen Version (12.04) haben wir gute Erfahrungen gemacht.

 


12.04 Precise Pangolin server funktioniert (extra WLAN-Treiber; 3.2.0-1422-omap4)
11.10 Oneiric Ocelot server nicht getestet (übersprungen)
11.04 Natty Narwal Headless WLAN schlecht bis unbrauchbar
10.10 Maverick Meerkat funktioniert

 

Alternativ dazu kann ein SD-Karten-Image (8GB) einer vollständig konfigurierten Ubuntu Server 12.04 Instanz (3.2.0-1422 omap4) von hier heruntergeladen werden:

Ubuntu_OMAP4_12_04.rar (1,05 GB) (MD5: 553418D4585CD03532097C13A97F5D6C).

 

Wahl der SD-Karte

Es wird eine mindestens 8GB große SD-Karte benötigt. Eine Class 10 - Karte ist empfehlenswert, ist die Karte langsamer als Class 6 reagiert das System relativ zäh.

  • Unter Linux kann einfach mit dem ’DiskDestroyer’: sudo dd if=sdcard.img of=/dev/sdb das Image auf eine SD-Karte kopiert werden.
  • Unter Windows kann zum Aufspielen des Image das Tool win32diskimager (http://sourceforge.net/projects/win32diskimager/) verwendet werden.

 

Inbetriebnahme

Stromversorgung

Ein 5V-Netzteil mit mindestens 1A (5mm Hohlstecker, Polarität:(+)-).

Alternativ kann der mini USB-Eingang verwendet werden, wobei aber beachtet werden muss, dass Laptop-USB-Anschlüsse meist nur 500mA liefern und man deshalb gerade beim Aufsetzen darauf verzichten sollte, um Ausfällen vorzubeugen. Mit den Laborrechnern wurden keine Probleme festgestellt.

 

Voraussetzungen für einen Terminal-Zugang

Hierzu gibt es zwei Möglichkeiten:

Lokal

Hierbei ist ein eigener Bildschirm und Tastatur erforderlich, eine praktischere Möglichkeit bietet die Remote-Konsole (nächster Punkt).

Mit einem HDMI-Kabel kann der HDMI-Out-Port (siehe Abbildung 1!) mit einem HDMI oder DVI-D-Port eines Bildschirms verbunden werden. Die beiden USB-Anschlüsse können für Tastatur (und Maus bei Desktop-Version) verwendet werden. Bis WLAN konfiguriert ist sollte für das Setup ein Netzwerkkabel an der RJ45-Buchse angeschlossen sein (im Labor die Switches und nicht die Dosen an der Wand benutzen, da sich diese durch unregistrierte MAC-Adressen deaktivieren!)

 

Remote

 

Die Konsole wird jederzeit über die RS232-Schnittstelle zur Verfügung gestellt. Hierfür ist entweder eine serielle Schnittstelle und Kabel oder ein RS232 USB Converter nötig (beim Kauf (~10): am besten mit besonders kompatiblem FTDI-Chip!).

Ist das PandaBoard nach der Konfiguration im Netzwerk erreichbar, kann mittels SSH-Shell auf dem PandaBoard gearbeitet werden. Mehr dazu jedoch später.

In Windows kann hierfür (sowohl für serielle als auch für SSH-Verbindungen) das Programm PuTTY verwendet werden, wobei lediglich die folgenden Einstellungen gemacht werden müssen (der richtige COM-Port kann z.B. im Geräte-Manager ermittelt werden):

 
 

 

PICPIC

Abbildung 2: Einstellungen für PuTTY (serielle bzw. SSH-Verbindung)
 

 

 

Wird das vorkonfigurierte Image verwendet, kann bereits über SSH zugegriffen werden, der einzutragende Hostname lautet ’rs3gPb’ (Login: robsoft3g/robsoft3g). Neben der Stromversorgung muss ein Netzwerkkabel angeschlossen werden, da die WLAN-Konfiguration erst angepasst werden muss.

Unter Linux kann das programm minicom verwendet werden, bei dem die Einstellungen mittels Ctrl+Z A O falls nicht automatisch passend in einem übersichtlichen Menü geändert werden können (z.b. FTDI-Converter auf ttyUSBx):

 

 

PIC

Abbildung 3: Einstellungen für minicom
 
 
 

SSH unter Linux funktioniert einfach mittels:  ssh robsoft3g@rs3gPb  bei Benutzung des vorkonfigurierten Images.


 

Setup

Dieser Abschnitt kann übersprungen werden, falls das vorkonfigurierte Image verwendet wird.

 

Aufsetzen des OS

  1. Voraussetzungen für einen Terminalzugang schaffen (siehe Punkt 3.2)
  2. Terminalprogramm starten (bzw. den Bildschirm anschließen)
  3. Die vorbereitete SD-Karte (siehe Punkt 2.2) einschieben
  4. Netzwerkkabel anschließen
  5. Stromversorgung anschließen (siehe Punkt 3.1)

 

Nach dem Entpacken und Booten des Kernels sollte das Terminal so aussehen:

Abbildung 4: Installation von Ubuntu - navigiert wird mit Pfeiltasten und Return
 
 

Nachdem man seinen Standort, Zeichensatz (en_US.utf8) und Zeitzone gewählt hat, kann man seinen Namen eingeben (unwichtig, ist nicht der Login-Name).

Erst im nächsten Schritt wird nach einem Benutzernamen und anschließend einem Passwort für den Account gefragt, welchen man für den Login benutzen sollte.

 

 

Abbildung 5: Login: Am besten das PandaBoard mit Benutzername und Passwort beschriften...
 

Im nächsten Schritt wird nach dem primären Netzwerkzugang gefragt, welcher während der Installation zum Installieren von Paketen verwendet wird. Hierfür bei eingestecktem Netzwerkkabel eth0 verwenden, da Pakete, um verschlüsselten WLAN-Netzwerken beitreten zu können, erst heruntergeladen werden müssen. Mehr dazu später.

 

 

Abbildung 6: Die Einrichtung des WLAN-Netzwerkes erfolgt nach der Installation
 

Die Vergabe eines Hostnamens kann man sich sparen, da der Name nicht wie bei Windows NetBIOS gebroadcastet wird und somit das PandaBoard nur unter seiner IP-Adresse zu erreichen ist (mehr dazu in unter Punkt 5).

Im letzten Punkt müssen schließlich die gewünschten Server-Pakete ausgesucht werden, welche nachinstalliert werden sollen (Internetverbindung nötig). Für den komfortableren Fernzugriff auf das Pandaboard ist hier nur der ’OpenSSH server’ nötig.

 

 

Abbildung 7: Pakete: nur das absolut nötigste, um keine Performance zu verschenken...
 

Die Installation der Pakete dauert nun ein paar Minuten (je nach Internetverbindung und Speicherkarte)... danach sollte dann die Login-Aufforderung auf der Konsole erscheinen:

 

 

Abbildung 8: Nun kann man sich mit dem soeben angelegten Account anmelden.
 

 

 

WLAN auf dem PandaBoard

Folgende Pakete müssen zuallererst installiert werden:

sudo apt-get install wireless-tools
sudo apt-get install wpasupplicant
 

Bei den folgenden Schritten wird vorausgesetzt, dass das sich zu verbindende Netzwerk mit WPA2 gesichert ist (was mittlerweile überall der Fall sein sollte, andernfalls müssen die hier aufgeführten Schritte befolgt werden: http://wiki.ubuntuusers.de/WLAN/wpa_supplicant):

1. Mit diensen Kommandos wird WLAN aktiviert und die Netzwerk-SSIDs in Reichweite werden angezeigt.

   sudo ifconfig wlan0 up

   sudo iwlist scanning

 

2. Mit folgendem Kommando erhält man den Hash-Wert des Pre-Shared-Keys, welcher im Folgenden statt den Platzhaltern bei psk= eingesetzt werden muss.

   wpa_passphrase NETWORK_SSID WPA_PASSPHRASE

  

3. Die Datei /etc/wpa_supplicant/wpa.conf mit folgendem Text (oder einzelnen Netzwerkdefinitionen daraus) ersetzen (Einfügen in Putty mit rechter Maustaste, durch Markieren wird kopiert).

   sudo nano /etc/wpa_supplicant/wpa.conf
 
   ctrl_interface=/var/run/wpa_supplicant
   ctrl_interface_group=0
   eapol_version=1
   ap_scan=1
   fast_reauth=1
   #FH Hagenberg Network - NTLM hash #
   network= {
        ssid="fhhgb"
        scan_ssid=1
        key_mgmt=WPA-EAP
        group=CCMP
        pairwise=CCMP
        eap=PEAP
        phase2="auth=MSCHAPV2"
        identity="FHHAGENBERG\S10103060XX"
        password=hash:NTLM_HASH_HIER_EINFUEGEN
        priority=20
   }
   #Home WLAN#
   network= {
        ssid="ALLYOURBANDWIDTHAREBELONGTOUS"
        scan_ssid=1
        key_mgmt=WPA-PSK
        eap=TLS
        proto=WPA2
        psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        priority=20
   }
   #Handy Tethering
   network= {
        ssid="HexapodAP"
        scan_ssid=1
        key_mgmt=WPA-PSK
        eap=TLS
        group=CCMP
        pairwise=CCMP
        proto=WPA2
        psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        priority=30
   }

 

Den NTLM-Hash seines Benuteraccounts erhält man wie hier beschrieben: http://goo.gl/whEvN.

(Achtung: Die McAffee-Virenscanner der Laborrechner erkennen das Tool fgdump als Malware und entfernen es. Es muss also ein eigener Rechner im FH-Netzwerk verwendet werden.)


 

4. In der Datei /etc/network/interfaces die folgenden Zeilen abändern. Falls von nun an kein Netzwerkkabel mehr benötigt wird, kann die 3.Zeile wie angeführt auskommentiert werden.

   # The primary network interface

   auto eth0

   #iface eth0 inet dhcp

   # WLAN

   auto wlan0

   iface wlan0 inet dhcp

   wpa-conf /etc/wpa_supplicant/wpa.conf

 

5. Mit dem Befehl sudo /etc/init.d/networking restart  können nun die neuen Einstellungen auch ohne Neustart übernommen werden.

 

 

Benötigte/Empfohlene Pakete

Installiert werden die folgenden Pakete bei bestehender Netzwerkverbindung mittels:

    sudo apt-get install PAKETNAME
nano
Für schnelle Änderungen in Dateien ist dieser schlanke Editor Benutzern, die nicht mit VI vertraut sind, sehr zu raten.
gcc und g++
C/C++ Compiler sind unbedingt nötig.
make
Für das Kompilieren und Linken von Projekten unbedingt benötigt.
cmake
Open-Source cross-platform Build-System, welches benötigt wird, um eine Build-Umgebung für unser Projekt in Windows (VS2010) und Linux (g++/make) gleichermaßen dynamisch zu erzeugen.
subversion
Wird für den SVN-Zugang benötigt, um die Source auschecken zu können. Die folgenden Befehle (im jeweiligen Ordner auszuführen) sind hierbei am wichtigsten:
     svn checkout https://svn01.fh-hagenberg.at/projekte/RobSoft3G/Software/ --username S10103060xx --password xxxxx
     svn update
     svn commit --message hello arm”
htop
Zeigt die momentan laufenden Prozesse, sowie die gesamte Auslastung des Arbeitsspeichers sowie der einzelnen Cores sehr übersichtlich (für eine Konsolenausgabe) an.
libboost-dev
um das Projekt kompilieren zu können ist nicht die ganze Boost-Bibliothek nötig (diese benötigt viel Platz und kompiliert sehr lange). Folgende Bibliotheken sind jedoch unbedingt nötig: libboost-date-time-dev, libboost-iostream, libboost-serialization, libboost-system-dev, libboost-thread-dev

 

FAQ

 

WLAN geht nicht/schlecht/langsam!
Beim aktuellen Treiber kann das Pandaboard nicht ’angepingt’ werden, da es sich, wenn es nicht gerade sendet, im Stromsparmodus befindet. Um diesen zu deaktivieren, fügt man der Datei /etc/network/interfaces die folgende Zeilen hinzu:
 
# WLAN
auto wlan0
iface wlan0 inet dhcp
wireless-power off
wpa-conf /etc/wpa_supplicant/wpa.conf

 

Aktuelle Treiber findet man außerdem im Texas Instruments Personal Package Archive (PPA):

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:tiomap-dev/release

sudo apt-get update

sudo apt-get install ubuntu-omap4-extras

 

Die Befehle

sudo apt-get update

sudo apt-get dist-upgrade

 

sind generell keine schlechte Idee, da neue Treiberpakete u.U. bestehende Probleme beheben.

 

SSH via hostname funktioniert nicht (nur via IP)!
Erst durch Installieren eines Samba-Servers (Windows-Share) verwendet der Ubuntu-Host NetBIOS Namen und broadcastet diese im Netz.
 
sudo apt-get install samba
sudo nano /etc/samba/smb.conf
netbios name = <hostname>
name resolve order = bcast host

Dem Pandaboard kann statt < hostname > ein im lokalen Netzwerk eindeutiger max. 15 Zeichen langer Namen gegeben werden, unter dem es von nun an von Windows und Linux-Clients aus erreichbar ist. Das Auskommentieren von security = user, damit nur lokale Benutzer auf den Samba-Dienst zugreifen können, ist ratsam, auch wenn nach der Installation des Servers noch keine Freigaben konfiguriert sind.

Die einzige Alternative ist eine Zuordnung der IP-Adresse des PandaBoards in einem DNS-Server...

nicht getestet: Einsatz des Pandaboards als WLAN-AP

 

SSH ist quälend langsam!
In der Datei /etc/ssh/sshd_config folgende Einträge abändern, um sowohl die Authentifizierung als auch das Arbeiten allgemein zu beschleunigen: GDDAPI auth no ; UseDNS no
(stk) :line disc installation timed out; fmdrv: Unable to prepare FM CORE
Der Bluetooth-Treiber funktioniert erst nach der Installation der TI-omap4-extras (siehe 5.1)
 
SVN-Passwort wird unverschlüsselt gespeichert?
Meldet man sich am SVN-Server an werden die eingegebenen Passwörter im Klartext unter ~/.subversion/auth/svn.simple gespeichert. In den neueren Version wird man darauf hingewiesen und kann dies temporär ablehnen. Damit Passwörter generell nicht mehr gespeichert werden, muss in der Datei ~/.subversion/config die Zeile ’store-passwords = no’ einkommentiert werden.

 

Weiterführende Links

PandaBoard Resources

http://omappedia.org/wiki/PandaBoard

http://pandaboard.org/content/resources/troubleshooting
 
PandaBoard Vorkompilierte Binaries und FAQs
http://omappedia.org/wiki/OMAP_Ubuntu_Main
 
Hilfsbereites Ubuntu-Forum/Wiki
http://wiki.ubuntuusers.de