zurück

Cubietruck als Heimserver


Zur Vorbereitung sollte man sich die die Tutorials von www.cubian.org durchlesen und das aktuelle cubian Image für das Cubieboard 2 auf eine Micro-SD-Karte schreiben.
Diese Anleitung enthält viele Schnipsel aus den Anleitungen im Internet. Diese Anleitungen sind alle auf einer eigenen Seite aufgeführt.
Sollte es beim lesen dieser Anleitung schon eine fertiges Cubian Image  für denCubietruck geben,  erübrigt sich  der  ganze  Aufwand mit  Kernel  selbst bauen.
Im Netzwerk sollte ein DHCP-Server (Router des Heimnetzwerks) laufen und der Zugriff aufs Internet ohne Proxy-Anmeldung möglich sein.
Damit genügen Speicherplatz vorhanden ist, würde ich eine 2,5" SSD mit mindesten 120 GB verwenden.
Der Umgang mit verschiedenen GNU/Linux Befehlen muss vorausgesetzt werden.
Vorbereitungen:

Cubietruck zusammenbauen:

Den Cubietruck auspacken und mit der SSD zusammenbauen.

Installation der Tools:

apt-get install build-essential libncurses5-dev u-boot-tools qemu-user-static debootstrap git binfmt-support libusb-1.0-0-dev pkg-config
apt-get install gcc-arm-linux-gnueabihf

Download der sunxi-Tools als Quelltext:

mkdir ~/cubie
cd ~/cubie
git clone git://github.com/linux-sunxi/u-boot-sunxi.git
git clone git://github.com/linux-sunxi/sunxi-tools.git
git clone git://github.com/linux-sunxi/sunxi-boards.git
git clone http://github.com/cubieboard/linux-sunxi.git
git clone https://github.com/cubieboard/cubie_configs



Schritt 1: Cubian Image für Cubieboard 2 besorgen unter  http://cubian.org/downloads/ und entpacken.
Schritt 2: Das Cubian-Image auf die Micro-SSD schreiben und das Root-File-System auf die ganze Karte ausdehnen, die Karte sollte 2 GB oder größer sein. sdx ist durch die Gerätedatei der Micro-SD-Karte zu ersetzen.
dd if=[IMAGE-DATEI] of=/dev/sdx bs=4096; sync

Falls notwendige die Karte aushängen.

umount /media/cubieboard

Das Root-Datei-System auf die maximale Größe ausdehnen.

Mit fdisk die Partition /dev/sdx1 löschen und neu anlegen mit der maximalen Größe.
Nun die Größe des Dateisystems anpassen.

resize2fs /dev/sdx1
Die Karte auswerfen und wieder einlegen.

Schritt 3: Wenn man keinen geeigneten Monitor mit HDMI Eingang hat, dann muss man die Konfigurationsdatei script.bin anpassen, damit der VGA Ausgang aktiviert wird.

Zum bearbeiten der Konfigurationsdatei sribt.bin benötigt man die Tools von SUNXI.

cd ~/cubie/sunxi-tools
make
cd ~/cubie
sudo cp /media/cubieboard/boot/script.bin ./
sudo cp /media/cubieboard/boot/script.bin  /media/cubieboard/boot/script-bin.org
./sunxi-tools/bin2fex script.bin > script.fex
nano script.fex

Jetzt ist der erste Teil der Sektion [disp_init] anzupassen.
[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 4
screen0_output_mode = 4
screen1_output_type = 2
screen1_output_mode = 14

Umwandeln in die Binär-Datei
./sunxi-tools/fex2bin script.fex > script.vga

Auf die SD-Karte kopieren:
sudo cp script.vga /media/cubieboard/boot/script.bin

Schritt 4: Kernel kompilieren und installieren.

Den Kernel bauen wie im Tutorial auf cubieboard.org beschrieben http://docs.cubieboard.org/tutorials/ct1/development/compiling_latest_kernel_for_cubietruck_cubieboard3

Ein Sicherungskopie des Kernels auf SD-Karte anlegen.
sudo cp /media/cubieboard/boot/uImage /media/cubieboard/boot/uImage.org

Den Kernel aus linux-sunxi/arch/arm/boot nach /media/cubieboard/boot/uImage kopiern.
Die Kernel-Module auf die Karte installieren.

cd /media/cubieboard
make -C ~/cubie/linux-sunxi INSTALL_MOD_PATH=`pwd` ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install


Schritt 5: Von der SD-Karte starten und das System testen

Die Micro SD-Karte in den Cubietruck einlegen, bis auf den Strom die Kabel anschließen.
Jetzt den Strom anschließen.
Nach den Boot-Meldungen sollte sich das System irgendwann mit dem Login-Prompt melden.

Mit User cubie und Passwort cubie anmelden.
Zu Root werden.

sudo su

cat /proc/partitions

Es sollte so ähnlich ausshen:

major            minor        #blocks            name

  93        0    7520256 nand
  93        1       1024 nanda
  93        2        256 nandb
  93        3    7502592 nandc
   8        0  125034840 sda
 179        0    1902592 mmcblk0
 179        1    1901568 mmcblk0p1


ifconfig

Es sollt so oder so ähnlich aussehen:

eth0      Link encap:Ethernet  Hardware Adresse c8:60:00:4f:52:34 
          inet Adresse:10.210.0.101  Bcast:10.210.0.255  Maske:255.255.255.0
          inet6-Adresse: fe80::ca60:ff:fe4f:5234/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:31322 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24192 errors:0 dropped:0 overruns:0 carrier:1
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX-Bytes:33582591 (33.5 MB)  TX-Bytes:3039844 (3.0 MB)
          Interrupt:53

lo        Link encap:Lokale Schleife 
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:2477 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2477 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX-Bytes:442846 (442.8 KB)  TX-Bytes:442846 (442.8 KB)

Schritt 6: Die SSD partitonieren und formatieren.

fdisk /dev/sda

Eine primäre Partition sda1 vom Typ 82 Linux anlegen mit einer Größe von HD-Kapazität minus 2 GB.
Den Rest der Platte als primäre Partition Typ 83 Swap, sda2 einrichten

fdisk.ext4 /dev/sda1
mkswap /dev/sda2

System stoppen:

halt


Schritt 7: Das Root-File-System von der SD-Karte auf die SSD übertragen.
Die SSD mit einem Adapter an einen Linux-PC anschließen und die SSD-Karte mit einem Kartenleser anschließen.
Die SD-Karte nach /mnt/alt mounten.
Die Root-Partition auf der SSD als /mnt/neu mounten.

Jetzt die Daten per rsync kopieren.

sudo su
rsync --stats --progress --numeric-ids -aAhHSP  /mnt/alt/ /mnt/neu/
rsync --stats --progress --numeric-ids -aAhHSPc  /mnt/alt/ /mnt/neu/

Mit dem Editor der Wahl /mnt/neu/etc/fstab anpassen

/dev/sda1     /      ext4    errors=remount-ro 0       1
/dev/sda2    none    swap    sw                0       0

Jetzt muss noch das boot.scr angepasst werden, damit der Kernel /dev/sda als rootfs nimmt.

cd /mnt/alt/boot
cp boot.scr boot_scr.org
nano boot.cmd

Den Eintrag root=/dev/mmcblk0p1 auf root=/dev/sda1 ändern, speichern + beenden und aus der boot.cmd die boot.scr erzeugen.
image -C none -A arm -T script -d boot.cmd boot.scr

Die Partitionen aushängen und die SSD und die SD-Karte in den Cubietruck einbauen.
Jetzt den Cubietruck starten.
Der Cubietruck sollte jetzt den Kernel von der SD-Karte booten und das Root Filesystem von der SSD starten.

Bei mir sieht ein df etwa so aus (128 GB SSD):

Dateisystem    1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
rootfs         121790564 1355860 114248108    2% /
/dev/root      121790564 1355860 114248108    2% /
devtmpfs          415344       0    415344    0% /dev
tmpfs              83092     176     82916    1% /run
tmpfs               5120       0      5120    0% /run/lock
tmpfs             426540       0    426540    0% /run/shm
tmpfs             415452       4    415448    1% /tmp
tmpfs             415452       0    415452    0% /var/tmp


fest IP einrichten

apt-cacher-ng
Es muss unbedingt das aktuelle Paket von Projekt-Hompage genommen werden.
http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/?C=M;O=D

WSUSS-Offline
Die aktuelle Version gibt es unter: http://download.wsusoffline.net/
das ZIP-File runterladen, auspacken nach /srv/ctupdate und die sh-Datei 1 x die Woche per Cron mit den richtigen Optionen starten.

Dnsmasq

Liste der Offenen Punkte:




 Wolfgang Kutscherauer  kutschi@dingolfing.org