Ich bin zu CRUX noch ein paar Worte schuldig. Wie vor ein paar Monaten angesprochen ist CRUX keine Stangenware, sondern mehr Linux-Haute-Couture. Maßgeschneiderte Ware, die mit Sicherheit ihren Preis hat, aber eben auch genau das widerspiegelt, was so mancher Geek schön und reizvoll findet: Geschwindigkeit, Anpassungsfähigkeit und die Schönheit des Schlichten.
Ich versuche in allen weiteren Beiträgen das übliche Blabla zu vermeiden und nicht zu versuchen für eine andere Zielgruppe zu schreiben, die so nie existieren wird. Das Schöne an CRUX ist, dass es wirklich technisch sehr übersichtlich und einfach aufgebaut ist. Es lässt sich aber überhaupt nicht mit Distributionen wie Ubuntu vergleichen, wo der Benutzer bei der Installation geführt wird und Programme vorkompiliert und durch Tausende von Benutzer getestet worden sind.
Die Gemeinschaft von CRUX ist deutlich kleiner und auch in der Dokumentation beschränkt man sich auf Einfachheit. Englisch ist die vorherrschende Sprache. Die Anleitungen sind auf den Punkt gebracht. Man erwartet, dass man sich im Internet über so Dinge wie Kernelkompilierung oder Bedienung einzelner Software gezielt informiert. CRUX ist also eine Do-it-yourself-Distribution, die sich ausdrücklich an erfahrene Linuxanwender richtet.
Ich verfolge mit CRUX folgende Ziele.
- Ich möchte quellbasierte Distributionen besser kennenlernen. Ich erhoffe mir dadurch auch ein paar interessante Einblicke in Gentoo und Slackware zu bekommen, die ich bisher kaum getestet habe, die aber vergleichbare Konzepte wie CRUX kennen. Genau genommen hilft die Gentoo-Dokumentation oft bei CRUX-Problemen weiter.
- Ich möchte ein maßgeschneidertes CRUX für meinen ältesten Laptop, den Toshiba Satellite 220CS, konfigurieren. Es soll sowohl ein reines Konsolensetup geben als auch eine Version mit grafischer Oberfläche. Außerdem möchte ich irgendwann CRUX auch mal auf einem moderneren System dauerhaft installieren.
Installation
Die Installation wird kurz und knapp im Handbuch von CRUX beschrieben. Wer schon Erfahrungen mit Arch Linux oder Gentoo gesammelt hat, wird sich eher wohl fühlen als jemand, der bisher vom Debian-Installer und der Ubuntu-Installation verwöhnt worden ist. Tatsache ist aber auch, dass die Installation bis auf die Kernelkompilierung absolut nachvollziehbar und auf den Punkt gebracht ist. Da man alles von der Konsole aus erledigt, entsteht kein Overhead an Standardeinstellungen. Das System bleibt dadurch äußerst schlank.
- Ladet euch ein passendes Abbild herunter. Es gibt von CRUX 2.7.1 sowohl eine i686 als auch eine Version für x86_64. Mit CRUX 2.7 existiert auch ein Image für i586! USB-Abbilder sind ebenfalls verfügbar.
- TIPP: CRUX lässt sich auch problemlos in einer virtuellen Maschine testen. Bei Virtualbox empfehle ich z.B. als Adaptertyp unter Netzwerkeinstellungen "INTEL PRO/1000 MT Desktop". 2 GB Festplattenspeicher sind zum ersten Testen ausreichend. Der meiste Platz wird durch die Kernelkompilierung beansprucht.
- Einloggen als Benutzer root. Es gibt kein Passwort.
Partitionierung
fdisk /dev/sda Partition sda1 -> Swap Partition sda2 -> / Partition sda3 -> /home (optional)
mkfs.ext4 /dev/sda2
Partitionen einhängen
mount /dev/sda2 /mnt mount /dev/sda3 /mnt/home (optional) mkswap /dev/sda1 swapon /dev/sda1
- Gebt setup ein, um das Installationsskript zu starten. Die Core-Pakete reichen zum ersten Testen aus. Einzelne Pakete lassen sich auch abwählen.
In Chroot-Umgebung wechseln
setup-chroot
Im Einzelnen werden folgende Schritte durch das Skript ausgeführt.mount --bind /dev /mnt/dev mount --bind /tmp /mnt/tmp mount -t proc proc /mnt/proc mount -t sysfs none /mnt/sys chroot /mnt /bin/bash
- Das Passwort für root mit passwd ändern und ggf. neue Benutzer mit useradd anlegen.
Konfiguration von /etc/fstab
/dev/sda1 swap swap defaults 0 0 /dev/sda2 / ext4 defaults 0 1 devpts /dev/pts devpts defaults 0 0 none /sys sysfs defaults 0 0 none /proc proc defaults 0 0
Konfiguration von /etc/rc.conf
FONT=default
KEYMAP=de-latin1-nodeadkeys
TIMEZONE=Europe/Berlin
HOSTNAME=crux
SYSLOG=sysklogd
SERVICES=(net crond)- Netzwerkkonfiguration: Bei mir funktioniert DHCP einwandfrei.
Bootloader /etc/lilo.conf
lba32 compact install=text boot=dev/sda image=/boot/vmlinuz label=CRUX root=/dev/sda2 read-only append="quiet"
Danach lilo in der Konsole eingeben und Enter drücken.
- Kernelkompilierung. Das ist der wohl fehleranfälligste Punkt in der gesamten CRUX-Installation. Mir hat dieser Post enorm geholfen. Ebenso ist unter anderem dieser Beitrag von KMandla empfehlenswert. Zuvor hatte ich mehrfach versucht mit der Kernelkonfiguration von Slitaz den Kernel zu kompilieren. Das hat in der Vergangenheit bei der Erstellung eines Kernels für Debian zwar wunderbar funktioniert, scheiterte hier aber an der scheinbar legendären Fehlermeldung:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block
Entscheidend sind hierbei, dass man die Standardkonfiguration der i386-Architektur als Vorlage benutzt und die richtigen Einstellungen mit menuconfig wählt. Da wir einen Standardkernel ohne InitramFS benutzen, müssen die Treiber für das Dateisystem fest einkompiliert werden, ansonsten kommt es zu oben genannter Fehlermeldung.
cd /usr/src/linux* make mrproper make i386_defconfig make menuconfig make all && make modules_install cp arch/x86/boot/bzImage /boot/vmlinuz cp System.map /boot
Wenn ihr Naturtalente seid, erhaltet ihr im ersten Anlauf nach erfolgreicher Kernelübersetzung und dem Installieren des Bootloaders Lilo ein bootfähiges System und startet in eure erste CRUX-Installation durch. Wahrscheinlich wird es aber mehrere Anläufe brauchen und nach und nach sollte man dann immer mehr Treiber aus dem Kernel entfernen, die man für die eigene Hardware gar nicht benötigt. Schließlich erhält man dadurch einen maßgeschneiderten Linux-Kernel.
Danach beginnt der eigentliche Spaß und das Installieren von zusätzlicher Software mit prt-get und den anderen CRUX-Werkzeugen. Ein anderes Mal mehr dazu.
Links
Bisher lesenswert fand ich auch die älteren CRUX-Anleitungen im VDR-Wiki und den Erfahrungsbericht von CRUX auf dem Libretto 100CT.