Arch Linux

Aus Zenega Wiki

Wechseln zu: Navigation, Suche

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)