BeagleBoard-xM - Klonen der mitgelieferten Angstrom-SDHC-Karte

warning: fread(): Length parameter must be greater than 0 in /var/www/elchs-kramkiste.de/lapurd/includes/common.inc(1695) : eval()'d code on line 19.

Wie ich in meinem ersten Beitrag zum BeagleBoard-xM (BBxM) schrieb, ist es besser, von dem lauffähigen Angstrom-System, welches dem BBxM auf einer bootfähigen micro-SDHC-Karte beiliegt, eine Kopie anzufertigen. Anschließend kann man mit dieser Kopie seine weiteren "Gehversuche" machen und hat das Original immer noch als Reserve bzw. Backup, wenn mal gar nichts mehr geht.

Die original micro-SDHC-Karte des Angstrom-Linux für das BBxM hat folgende Eigenschaften => micro-SD mit 4 GB, Class 4

Mittels


# tail -f /var/log/messages


in einer Konsole meines Kubuntu-PCs habe ich die Gerätebezeichnung der SDHC-Karte ermittelt. Beim Einschieben der Karte wurde mir dann gemeldet bzw. angezeigt:

... sd 6:0:0:0: Attached scsi generic sg2 type 0
... sd 6:0:0:0: [sdb] 7626752 512-byte logical blocks: (3.90 GB/3.63 GiB)
... sd 6:0:0:0: [sdb] Write Protect is off
... sdb: sdb1 sdb2

Die Karte (... "[sdb]" ...) ist also das Device /dev/sdb. Diese Angabe braucht man für weitere Infos.

Mittels


#fdisk /dev/sdb


kam folgendes zu Tage:

     boot Anfang Ende     Blöcke   Id  System
sdb1   *     1    15       120456   c  W95 FAT32 (LBA)
sdb2        16   444      3445942+ 83  Linux

Man kann zum Auslesen dieser Informationen auch das Tool "GParted" verwenden.

Die SDHC-Karte hat also 2 Partitionen, sdb1 und sdb2. Bei diesen Bezeichnungen handelt es sich auch gleichzeitig um die (weiteren) Gerätekennungen (die ich weiter unten dann auch brauchte).

Die 1. Partition ist ein bootfähiger FAT32-Datenträger, sdb2 ist ein Linux-Datenträger (laut GParted vom Typ "ext3").

Nun ging es an das Klonen / Imagen / Kopieren der SDHC-Karte. Evtl. sollte man dies gleich mit einer größeren sowie schnelleren (also z.B. Class 10 statt 4) Karte machen. Das Klonen habe ich mit Standard-Tools ("dd"), die jedem Linux-System beiliegen (sollten), durchgeführt. "dd" liest einen Datenträger auf Sektorebene aus und kann Datenträger auch ebenso beschreiben, so dass eine 1:1-Kopie möglich wird.

Seien Sie bei der Verwendung von "dd" aber sehr aufmerksam, was die Eingabe-Syntax bzw. die verwendeten Befehls-Optionen angeht, denn man kann sich dadurch auch (ohne Sicherheitsabfragen, ob man das wirklich will) sein eigene System-Festplatte oder andere Datenträger überschreiben und damit unbrauchbar machen!

Mein erster Versuch, diese SD-Karte in einem Rutsch (also als Ganzes) zu Klonen ("if" = input file [das meiste in Linux ist ein File bzw. eine Datei] = von was soll gelesen werden) per


# dd if=/dev/sdb | gzip > image_sdb.gz


und das Kopieren des 1:1-Kartenimages nach Einlegen der neuen (ebenfalls 4 GB großen) SDHC-Karte in den PC mittels ("of" = output file = auf was soll geschrieben werden)


# gunzip -c image_sdb.gz | dd of=/dev/sdb


brachte kein lauffähiges System zustande. Das BBxM bootete zwar damit, aber in den Bootmeldungen waren viele Hinweise auf ungültige Dateieinträge zu sehen ("... smaller as minimal ...").

Erst Images der einzelnen Partitionen der original SD-Karte per:


# dd if=/dev/sdb1 | gzip > image_sdb1.gz
# dd if=/dev/sdb2 | gzip > image_sdb2.gz


mit anschließendem (nach Einlegen der neuen SD-Karte):


# gunzip -c image_sdb1.gz | dd of=/dev/sdb1
# gunzip -c image_sdb2.gz | dd of=/dev/sdb2


brachte einen sehr gut lauffähigen Klon der Angstrom-Test-Karte hervor (BBxM angeschlossen per HDMI-Kabel an einem 19"-HD-Ready-TFT).

Hinweis: Das BBxM hat einen DVI-D-Ausgang. Dieser ist aber als HDMI-Buchse auf dem Board aufgelötet. HDMI wird nicht in Gänze unterstützt, aber es ist möglich, einen HDMI-Monitor per HDMI-Kabel an das BBxM anzuschließen. Für den Anschluss eines DVI(-D)-Monitor braucht man einen HDMI-auf-DVI-Adapter.

Vorsicht: Das HDMI-Kabel darf nicht angeschlossen werden, wenn das BBxM unter Spannung steht. Es fehlt eine Schutzbeschaltung. Das kann im Fall der Nichtbeachtung zu Schäden am BBxM führen! Vorher also immer Netzteil- bzw. bei Stromversorgung per USB-OTG dieses Kabel abziehen!

Dem geklonten Angstrom-Linux habe ich erst Mal ein System-Upgrade verpasst. In Angstrom geschieht dies (aktuell) nicht per "dpkg", "ipkg" oder "yum", sondern per "opkg", also


# opkg update
# opkg upgrade


Das ergab ein System mit dem Kernel 2.6.32 (nicht der Allerneueste, aber immerhin).

Damit war mein BBxM zunächst eine Weile beschäftigt ... Beim ersten Mal gab es wohl einen "Hänger" (im Terminal passierte 10 Minuten nichts mehr). Ich führte einen Hard-Reset des BBxM durch und startete "opkg upgrade" nochmals. Diesmal lief es durch bis zum Erscheinen des Systemprompts.