Kategorien
CL-35B2 Linux

CL-35B2: Linux vom USB-Stick

Um die CL-35B2 von einem USB-Stick zu Booten benötige ich die TTL Konsole und auf dem NAS ein funktionsfähiges UBoot. Beim Testen dieses Tutorials hatte ich aus die nach dem letzten Punkt auf den NAND-Speicher geschrieben und dadurch das UBoot überschrieben. !Also! nach dem Booten den NAND Speicher in ruhe lassen. (Ich teste Später noch wie ich die CL-35B2 anderweitig booten kann)

zuerst die beiden neuen mount-Ziele anlegen.
mkdir /mnt/{source,system}

Zum Mounten des root-Systems die Datei /etc/fstab durch die Folgende Zeile ergänzen:
ubi0 /mnt/source ubifs ro,noatime,nodev,noexec 0 0
Das Gerät ubi0, die Systempartition von dem NAS, soll zusätzlich noch unter /mnt/source eingebunden werden. Auf dieses mount-Ziel soll nur lesend zugegriffen werden(ro), es sollen keine Zugriffszeiten gespeichert (noatime) werden devices sollen nicht interpretiert werden (nodev) und ausführbare Dateien nicht ausgeführt werden(noexec).

Anschließend den USB-Stick Partitionieren und Formatieren, mounten und mit rsync das gesamte System kopieren.
cfdisk /dev/sdc
mkfs.ext2 -m 1 /dev/sdc1 -L fc12arm5tel

mount /dev/sdc1 /mnt/system && mount /mnt/source
rsync -aAXv /mnt/source/ /mnt/system/

Jetzt die Festplatten UUID auslesen und die /mnt/system/etc/fstab korrigieren.
blkid /dev/sdc1
vi /mnt/system/etc/fstab

Bei meinem Dateisystem ist die Ausgabe von blkid die folgende:
/dev/sdc1: UUID="06cf0015-40d5-412f-ba18-a464689a154b" TYPE="ext2" LABEL="fc12arm5tel"

somit wird die erste Zeile in der fstab:
UUID=06cf0015-40d5-412f-ba18-a464689a154b / ext2 defaults 1 1

nach dem abbrechen des Startvorgangs über die Serielle Konsole, es muss nur eine Taste beim U-Boot gedrückt werden, gebe ich folgendes an um vom USB Stick zu booten.:
setenv bootargs 'root=/dev/sda1 console=ttyS0,115200 elevator=cfq mac_adr=0x00,0x30,0xe0,0x00,0x00,0x01 mem=128M poweroutage=yes ip=dhcp devfs=only raid=noautodetect'

Anschließend wird der Bootvorgang über die folgende Zeile in vom USB Stick gebootet.
run load_nand boot

Der Linux Kernel wird weiterhin via nboot vom NAND geladen und gestartet, Leider noch ein Linux 2.6.31.
(Der Linux Kernel enthält den Netzwerkkarten Treiber gmac_copro_firmware.sdk300 der scheinbar eine separat erthältliche Firmware benötigt. Dem muss ich noch nachgehen!)

!VORSICHT! BRICK!!!
Beim Schreiben auf das ubi nach dem holen der Partition mit ubiattach /dev/ubi_ctrl -m 0 und mounten der Partition, überschreibt Ihr den UBoot und Brickt die CL-35B2 solltet ihr eine Datei auf den NAND schreiben!
Lasst das Dateisystem auf dem NAND so wie es ist! Beschreibt es nicht!