BeagleBoard
Das BeagleBoard ist ein kleiner Computer basierend auf dem OMAP3530-System-on-a-Chip von Texas-Instruments
Was ihn so spannend macht ist neben einer HDMI-Schnittstelle (im Gegensatz beispielsweise zum Sheevaplug) die Erweiterbarkeit über General I/O Pins, sowie Onboard Sound und vieles mehr.
Da auch beim Nutzen dieses Stückchens Hardware zu erwarten ist, dass nicht alles Reibungslos und gleich funktioniert sondern hier und da ein paar Probleme auftauchen, für die ich mich wieder im Internet kaputt suche, werde ich hier all das dokumentieren, was beim Suchen länger gedauert hat.
erste Installtion von Debian
Nach einigen Anläufen habe ich es nun endlich hinbekommen, Debian Squeeze auf ein paar BeagleBoards zu installieren. Die Stolpersteine, über die ich dabei fast fiel werde ich hier kurz beschreiben.
Ich besitze selbst ein BeagleBoard Rev. C4 und wollte da gern auf eine 8GB SD-Karte Debian installieren.
Da die Installation eine netinstall-Installation von Debian ist, benötigt man natürlich eine Netzwerkschnittstelle, die das BeagleBoard in Revision C4 noch nicht mitbringt. Es gibt diverse Ethernet-USB-Schnitstellen für günstiges Geld zu kaufen und auch ein WLAN-Adapter, der unter Linux (beispielsweise am Laptop) funktioniert, tun gute Dienste (auch wenn mein Adapter nur am zwischengeschalteten USB-Hub angesprochen werden wollte).
Außerdem ist unbedingt anzuraten, das Beagleboard zur Installation nicht über USB mit Strom zu versorgen, sondern ein externes Netzteil zu nutzen.
Nun gibt es dafür eine schöne Umgebung mit einem einfach nutzbaren Skript, welches per
git clone git://github.com/RobertCNelson/netinstall.git cd netinstall
herunterladen kann.
Da ich mein System höchst wahrscheinlich fast nie an einen Monitor anschließe, wollte ich diesen auch bei der Installation nicht angeschlossen haben müssen.
Das war schon der erste Stein: dazu muss man bei der Erstellung der SD-Karte nämlich aktivieren, dass man nur mit serieller Schnittstelle installieren möchte.
./mk_mmc.sh --mmc /dev/mmXXXX --uboot beagle_cx --distro squeeze --serial-mode
Wenn man nun die so vorbereitete Karte ins BeagleBoard steckt, die serielle Schnittstelle öffnet und es mit Strom versorgt, kann es (wie bei mir) noch dazu kommen, dass trotzdem nüscht funktioniert.
Wenn in der Ausgabe eine solche Zeile steht:
... ** Unable to read uImage from mmc 0:1 ** ...
kann das unter vielen möglichen Ursachen daran liegen, dass zunächst der X-loader und U-boot auf die neuste Version geupgradet werden müssen.
Auch dazu gibt es wieder eine feine Umgebung von Robert C. Nelson mit genauso leicht zu nutzendem Skript:
git clone git://github.com/RobertCNelson/flash-omap.git cd flash-omap
Nun wird die SD-Karte wie folgt vorbereitet:
./mk_mmc.sh --mmc /dev/mmXXXX --uboot beagle_cx
Was nun folgt ist etwas Magie mit Feenstaub und die Schritte müssen in genau der Reihenfolge ausgeführt werden...
- Das serielle Kabel anstecken und die serielle Konsole öffnen
- Die SD-Karte ins BeagleBoard stecken
- Den User-Button auf dem BeagleBoard gedrückt halten
- Die Stromversorgung ans BeagleBoard anschließen
- Warten bis der U-boot Countdown durch ist und den Knopf loslassen
- Warten bis der Flashprozess / das Flashskript durch ist (wenn man wieder auf der BeagleBoard-Konsole landet
- Stromversorgung lösen und die SD-Karte wie oben beschrieben mit dem Betriebssysteminstaller neu vorbereiten
Nun sollte das System (zumindest tat es das bei mir endlich :-) ) installierbar sein... Alle Fragen mit etwas wie "kein Kerrnel" kann man getrost mit "yes" beantworten - der Kernel ist nur nicht der Standardkernel von Debian Squeeze.
Bei der Partitionierung ist unbedingt zu beachten, dass man nicht "use entire disk" wählt, weil man denkt, dass dann alles Frisch auf eine Partition gepackt wird - die schon angelegte Partition ist die boot-Partition der finalen Installation!
Ist das System installiert und das erste mal hochgefahren erledigen ein
apt-get update && apt-get dist-upgrade
den Rest und man hat ein hübsches nutzbares BeagleBoard