Arch Linux
Aus Zenega Wiki
Inhaltsverzeichnis |
Arch Linux am Beispiel S100
Arch ist eine minimalistische, stark an die eigenen Bedürfnisse anpassbare Distribution ähnlich Gentoo oder Rock, die sich aufgrund ihres Minimalismus sehr gut für den Einsatz auf der S100 eignet. Dabei entfällt der (bei der begrenzten Rechenleistung der S100) sehr zeitaufwändige Prozess des Kompilierens für jedes Paket.
Installation
Die Installation läuft auf der S100 exakt wie auf einem „normalen“ PC ab, es sei daher auf den offiziellen Leitfaden verwiesen. Einziger Tip: es empfiehlt sich, ext2 als Dateisystem für die Installation auf USB-Medien zu verwenden, siehe "Optimierungen".
Konfiguration
Im Arch Standardkernel sind alle für den Betrieb der Hardware nötigen Treiber bereits als Module verfügbar und werden vom Installer korrekt erkannt. Dieser trägt sie in die modules-Sektion der /etc/rc.conf ein, damit sie beim Start automatisch geladen werden. Nach der Konfiguration der Hardware lässt sich jedoch noch Einiges an RAM durch das Blacklisten nicht benötigter Module einsparen, Näheres dazu unter "Optimierungen". Manuell nachbessern muss man lediglich beim WLAN und der Grafik:
WLAN
Besitzer einer XG-603 Karte müssen das „prism54“-Modul des Kernels blacklisten (/etc/rc.conf), da dieses den p54-Treiber blockiert:
MODULES=( ... !prism54)
Danach muss die passende Firmware für die Karte besorgt und in /lib/firmware unter dem Namen isl3886 abgelegt werden:
mkdir -p /lib/firmware && cd /lib/firmware wget http://daemonizer.de/prism54/prism54-fw/fw-softmac/lmac_2.7.0.0.arm mv lmac_2.7.0.0.arm isl3886
Spätestens nach einem Reboot sollte die Karte dann vom richtigen Treiber versorgt und die Firmware geladen werden, was sich per /var/log/messages.log überprüfen lässt:
Oct 6 12:25:18 s100 firmware: requesting isl3886 Oct 6 12:25:18 s100 p54: LM86 firmware Oct 6 12:25:18 s100 p54: FW rev 2.7.0.0 - Softmac protocol 4.1 Oct 6 12:25:18 s100 p54: unknown eeprom code : 0x1 Oct 6 12:25:18 s100 p54: unknown eeprom code : 0x3 Oct 6 12:25:18 s100 p54: unknown eeprom code : 0x1905 Oct 6 12:25:18 s100 p54: unknown eeprom code : 0x1007 Oct 6 12:25:18 s100 p54: unknown eeprom code : 0x1008 Oct 6 12:25:18 s100 p54: unknown eeprom code : 0x1100 Oct 6 12:25:18 s100 phy0: hwaddr xx:xx:xx:xx:xx:xx, isl3886
Wer beim Booten automatisch ein vorhandenes WLAN connecten will, kann sich dieses Kapitels im Arch Wiki bedienen.
Grafik (Intel)
Wer auf der Box einen X-Server betreiben will (was mit einem „leichtgewichtigen“ Windowmanager wie fluxbox oder XFCE durchaus möglich ist), der sollte folgende Pakete installieren:
xorg-xsm xorg-utils xorg-font-utils xf86-video-intel mesa
Als Treiber wird hier der neuere Intel-Treiber verwendet, welcher nach praktischer Erfahrung meinerseits bessere Performance bietet als der ältere „i810“. Die xorg.conf sieht dann z.B. so aus:
Section "Module"
Load "dbe" # Double buffer extension
Load "freetype"
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
EndSection
Section "Files"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/75dpi:unscaled"
EndSection
Section "ServerFlags"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "de"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "Auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "My Monitor"
HorizSync 31.5 - 64.3
VertRefresh 50-70
EndSection
Section "Device"
Identifier "My Video Card"
Driver "intel"
Option "AccelMethod" "xaa" # increase performance on some intel cards
EndSection
Section "Screen"
Identifier "Screen 1"
Device "My Video Card"
Monitor "My Monitor"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1024x768" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Section "ServerLayout"
Identifier "Simple Layout"
Screen "Screen 1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
LEDs
Um das nervige Blinken der LEDs zu beseitigen und selbigen das korrekte Verhalten nach dem Herunterfahren wieder beizubringen, ist ebenfalls ein kleiner Eingriff in Form eines Init-Scripts nötig. Dieses wird von Michael Schwingen adaptiert und muss für Arch leicht modifiziert und unter /etc/rc.d/leds abgelegt werden:
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
if [ ! `whoami` == 'root' ]; then
echo "must be run as root."
exit 1
fi
case "$1" in
start)
stat_busy "Stopping LED blinking"
stty 38400 cs8 -parenb -cstopb -F /dev/ttyS1
echo -e '\xa2\xb2\xa2\xb2\xa2\xb2' > /dev/ttyS1
stat_done
;;
stop)
stat_busy "Simulating LED shutdown"
/bin/stty 38400 cs8 -parenb -cstopb -F /dev/ttyS1
echo -e "\xa2\xb1\xa2\xb1\xa2\xb1" > /dev/ttyS1
cat /proc/acpi/event >/dev/null &
stat_done
;;
*)
echo "usage: $0 {start|stop}"
esac
exit 0
Um nun das Blinken abzustellen, muss das script in der DAEMON-Sektion der /etc/rc.conf eingetragen werden:
DAEMONS=( ... leds)
Für den korrekten Shutdown bedarf es eines etwas tieferen Eingriff in das System, nämlich in der /etc/rc.shutdown. Dort ist die Zeile, die den halt-Befehl beinhaltet, abzuändern, aus
# Power off or reboot
if [ "$RUNLEVEL" = "0" ]; then
printsep
printhl "${C_H2}POWER OFF"
/sbin/poweroff -d -f -h -i
else
wird
# Power off or reboot
if [ "$RUNLEVEL" = "0" ]; then
printsep
printhl "${C_H2}POWER OFF"
/etc/rc.d/leds stop
else
Der else-Zweig für den reboot-Fall muss nicht verändert werden, da hier die LEDs ja an bleiben können. Nötig wird das Ganze durch den Umstand, dass das LED-Verhalten hardwareseitig leider nicht direkt mit dem Powerstatus des Mainboards gekoppelt ist.
Optimierungen
Kernelmodule
Hier lässt sich natürlich nach Belieben ausmisten. Ein mögliches Beispiel für eine Reduktion auf das Nötigste, ohne die Funktionalität einer Komponente einzubüßen sei hier gegeben (/etc/rc.conf):
MODULES=(8139cp 8139too mii slhc p54common p54pci !prism54 ac97_bus snd-page-alloc snd-pcm snd-timer snd snd-ac97-codec snd-intel8x0 soundcore i830 !pcspkr !thermal !fan !battery !ppp_generic !psmouse !processor !ac)
Dienste
Auch hier lässt sich noch einiges drehen. Wer zum Beispiel keine Cronjobs benötigt, kann den standardmäßig aktiven Cron-Dienst getrost deaktivieren. Wer die Systemzeit immer aktuell halten und trotzdem Speicher sparen möchte, lässt den NTP-Daemon beim Start nicht laden und trägt stattdessen „ntpdate de.pool.ntp.org“ in die /etc/rc.local ein. So läuft kein NTPd und die Systemzeit wird trotzdem (bei jedem Bootup) synchronisiert.
Dateisystem
Wer das Betriebssystem auf einem USB-Stick oder einer SSD betreibt, kann als Dateisystem ext2 statt ext3 verwenden, da dieses mit weniger Lese- und Schreibzugriffen auskommt und das Medium so nicht unnötig belastet. Allerdings entfallen dadurch die Vorteile vom Journal, weshalb hier jeder selbst abwägen muss.
--Lynix 16:53, 6. Okt. 2008 (UTC)