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:

# fdisk /dev/sdX
...
# mkfs.vfat /dev/sdX1
# mkfs.ext3 /dev/sdX2
# mkswap /dev/sdX3
# mkdir -p /mnt/{b,r}oot
# mount /dev/sdX2 /mnt/root
# 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:

# tar -pxf /mnt/boot/crux-arm-rootfs-2.8-hardfp-raspberrypi.tar.xz -C /mnt/root
# 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:

# vi /mnt/root/etc/fstab
...#/dev/#REISERFS_ROOT#  /         reiserfs  defaults               0      0
/dev/mmcblk0p2    /         ext3      defaults               0      1
/dev/mmcblk0p1          /boot   vfat    defaults        0       2
...
#/dev/#XFS_ROOT#       /         xfs       defaults               0      0
/dev/mmcblk0p3           swap      swap      defaults               0      0
...

ESC ZZ

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

# vi /mnt/boot/cmdline.txt
smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 console=tty0 root=/dev/mmcblk0p2 rootfstype=ext3 rootwait

ESC ZZ

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

# cd
# umount /mnt/{b,r}oot
# 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:

# vi /etc/rc.d/net
...
start)
        # loopback
        /sbin/ip addr add 127.0.0.1/8 dev lo broadcast + scope host
        /sbin/ip link set lo up
        # ethernet
        /sbin/ip link set eth0 up
        /sbin/dhcpcd eth0
        ;;
stop)
        /usr/bin/killall dhcpcd
        /sbin/ip route del default
        /sbin/ip link set eth0 down
        /sbin/ip link set lo down
        /sbin/ip addr del 127.0.0.1/8 dev lo
        ;;

ESC ZZ

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

# /etc/rc.d/net restart
# 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:

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

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:

# useradd ntp; groupadd ntp
# 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.:

# vi /boot/config.txt
disable_overscan=1
arm_freq=950
gpu_mem=16
core_freq=250
sdram_freq=450

ESC 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.

Schreibe einen Kommentar