CRUX-ARM 2.8 auf dem Raspberry Pi

Für den Raspberry Pi gibt es mittlerweile eine große Auswahl an Betriebssystemen - darunter auch eine ARM-Variante der quellbasierten Linux-Distribution CRUX.

Wer also gerne bastelt oder Raspbian "zu Mainstream" findet, kann mit einer SD-Speicherkarte mit mindestens 1 GB Speicher und einer Kanne Kaffee jede Menge Spaß haben. 😉

Partitionierung und Einhängen

Die folgenden Partitionen müssen auf der SD-Karte angelegt werden:

  • 1.Partition, später /dev/mmcblk0p1 - /boot, VFAT, mindestens 100 MB
  • 2.Partition, später /dev/mmcblk0p2 - /, ext3, mindestens 512 MB
  • 3.Partition, später /dev/mmcblk0p3 - swap, idealerweise 100-512 MB

Idealerweise macht man das unter Linux, da im Anschluss noch Archive im neuen Dateisystem entpackt werden müssen:

1# fdisk /dev/sdX
2...
3# mkfs.vfat /dev/sdX1
4# mkfs.ext3 /dev/sdX2
5# mkswap /dev/sdX3
6# mkdir -p /mnt/{b,r}oot
7# mount /dev/sdX2 /mnt/root
8# mount /dev/sdX1 /mnt/boot

Kopieren und Konfigurieren

Auf die FAT-Partition werden nun die folgenden Dateien kopiert:

Nachdem alle Dateien kopiert wurden, werden das Root-Dateisystem und die Kernel-Module entpackt:

1# tar -pxf /mnt/boot/crux-arm-rootfs-2.8-hardfp-raspberrypi.tar.xz -C /mnt/root
2# tar -pxf /mnt/boot/modules-3.6.1-raspberrypi_20130305.tar.xz -C /mnt/root

Anschließend werden noch einige Zeilen der /etc/fstab angepasst:

 1# vi /mnt/root/etc/fstab
 2...#/dev/#REISERFS_ROOT#  /         reiserfs  defaults               0      0
 3/dev/mmcblk0p2    /         ext3      defaults               0      1
 4/dev/mmcblk0p1          /boot   vfat    defaults        0       2
 5...
 6#/dev/#XFS_ROOT#       /         xfs       defaults               0      0
 7/dev/mmcblk0p3           swap      swap      defaults               0      0
 8...
 9
10ESC ZZ

Die Datei cmdline.txt muss noch wie folgt angepasst werden:

1# vi /mnt/boot/cmdline.txt
2smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 console=tty0 root=/dev/mmcblk0p2 rootfstype=ext3 rootwait
3
4ESC ZZ

Nach sicherem Aushängen der SD-Karte sollte CRUX-ARM 2.8 bootfähig sein:

1# cd
2# umount /mnt/{b,r}oot
3# eject /dev/sdX

😉

Netzwerkkonfiguration

Die Netzwerkkonfiguration muss noch angepasst werden. Standardmäßig wird eine statische IP (192.168.1.100/24) vergeben, was wohl in einigen Fällen nicht passen dürfte - z. B., wenn man DHCP verwendet:

 1# vi /etc/rc.d/net
 2...
 3start)
 4        # loopback
 5        /sbin/ip addr add 127.0.0.1/8 dev lo broadcast + scope host
 6        /sbin/ip link set lo up
 7        # ethernet
 8        /sbin/ip link set eth0 up
 9        /sbin/dhcpcd eth0
10        ;;
11stop)
12        /usr/bin/killall dhcpcd
13        /sbin/ip route del default
14        /sbin/ip link set eth0 down
15        /sbin/ip link set lo down
16        /sbin/ip addr del 127.0.0.1/8 dev lo
17        ;;
18
19ESC ZZ

Nach einem Neustart des Netzwerk-Dienstes sollte das Netzwerk funktionieren:

1# /etc/rc.d/net restart
2# ping google.de

Wenn nicht, einfach mal einen Blick auf die Fehlermeldung werfen.

Updates

Seit der Erstellung des CRUX-ARM 2.8 Raspberry Pi-Images wurden einige Updates veröffentlicht - diese kann (und sollte!) man installieren. Wichtig ist dabei, erstmal das richtige Datum/die richtige Uhrzeit zu setzen, da ansonsten die Übersetzung mit einem Fehler abbricht:

1# date --set="3 Apr 2013 19:50:00"     # bitte ersetzen!
2# ports -u
3# echo "Updates: $(ports -d|tail -n+2|wc -l)"
4# prt-get sysup
5...

Hier unbedingt Zeit und/oder Zeit mitbringen. Der Raspberry Pi darf jetzt sämtliche verfügbare Aktualisierungen übersetzen - und das dauert (im Anbetracht der verbauten CPU) natürlich etwas.. 😉

Tools

Im Minimal-Image von CRUX-ARM 2.8 fehlen noch einige rudimentäre Tools, wie beispielsweise GNU screen, elinks und ntp:

1# useradd ntp; groupadd ntp
2# prt-get depinst screen ntp elinks python

Bitte auch hier etwas Geduld mitbringen - der Winzling ist natürlich nicht der schnellste und braucht für das Übersetzen der einzelnen Quellcodes ein wenig Zeit.

Tweaks

Wer möchte, kann den Raspberry Pi noch ein wenig "tunen" und ihn übertakten, Overscaling deaktivieren, etc.:

1# vi /boot/config.txt
2disable_overscan=1
3arm_freq=950
4gpu_mem=16
5core_freq=250
6sdram_freq=450
7
8ESC ZZ

Diese Einstellungen entsprechen weitestgehend der Raspbian "High"-Einstellung und übertakten die CPU auf 950 Mhz, Core auf 250 Mhz und den RAM auf 450 Mhz. Overscan wird deaktiviert und für die GPU werden 16 MB Speicher reserviert - ideal, wenn man den Raspberry Pi als Server einsetzen möchte.

Übersetzungen: