MRW

Manipulationen am Asus Eee-PC 900 und 1000H

Dies ist mein persönlicher Spickzettel. Jede Manipulation kann das Gerät zerstören. Ich habe hier die Hacks gesammelt, die ich selbst am eigenen Gerät durchführe. Nicht-Linux-Spezialisten sollten das Gerät nicht manipulieren und sind daher nicht Zielpublikum.

KDE4

KDE4 ist resourcenfressend daher ganz klar ungeeignet. Ich bleibe vorerst bei KDE3, und damit bei (K)Ubuntu 8.04 Hardy Hedron. Den Umstieg auf (K)Ubuntu 8.10 Intrepid Ibex kann ich nicht empfehlen.

EeeBuntu

EeeBuntu ist ein spezielles Ubuntu, zugeschnitten für den Eee-PC, daher sehr zu empfehlen. Ich verwende die Variante Netbook. Nachteile: Kein KDE (basieert auf Ubuntu 8.10 mit KDE4), keine Harddiskverschlüsselung.

Pakete

Pakete Kommando zum Einrichten
skype sudo wget http://www.medibuntu.org/sources.list.d/intrepid.list --output-document=/etc/apt/sources.list.d/medibuntu.list
wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -1)

cryptsetup system-config-lvm maximus miro elisa peace-gdm-theme cheese gimp skype

Harddiskverschlüsselung

Die Harddiskverschlüsselung (der root-Partition) kriegt man wie folgt hin:

  1. Normale Installation von EeeBuntu, aber:
    • Partitionierung von Hand (in meinem Beispiel durchgehend /dev/sda):
      1. 200MB für /boot (ext3) (z.B. /dev/sda1)
      2. 1024MB für swap (z.B. /dev/sda2)
      3. Rest für / (xfs) (z.B. /dev/sda3)
  2. Danach booten von einem USB-Stick mit (K)Ubuntu-Desktop drauf.
    • in Shell (kterm) mit sudo -i:
      1. Verschlüsseln der bereits bestehenden root-Partition mittels Backup:
        1. Einbinden der installierten Root-Partition auf /mnt:
          mount /dev/sda3 /mnt
        2. Backup der Root-Partition von EeeBuntu von /mnt/ auf einen Stick (z.B. eingebunden unter /media/disk):
          rsync -avuxP /mnt/ /media/disk/
        3. Einbindung lösen:
          umount /mnt
        4. Partition verschlüsseln (Daten werden gelöscht, daher auch das Backup):
          cryptsetup luksFormat /dev/sda3
        5. Partition aktivieren:
          cryptsetup luksOpen /dev/sda3 root
        6. Partition neu formatieren:
          mkfs.xfs -L root /dev/mapper/root
        7. Neue, jetzt leere Partition wieder einbinden unter /mnt:
          mount /dev/mapper/root /mnt
        8. Backup von vorhin zurückspielen:
          rsync -avuxP /media/disk/ /mnt/
      2. Root-Partition von unverschlüsselt auf verschlüsselt umstellen und bootbar machen:
        1. Configurationsdateien anpassen (die root-Partition ist immer noch unter /mnt):
          1. Einen Editor starten, um die Dateien anzupassen, unter KUbuntu z.B. kate (unter Ubuntu: z.B. gedit):
            kate /mnt/boot/grub/menu.lst /mnt/etc/fstab /mnt/etc/crypttab
          2. Anpassungen in der Datei /mnt/boot/grub/menu.lst:
            Suche und ersetze alle Zeilen, wo root= steht. Nehmen wir an, es steht root=XXX (XXX steht für eine beliebige Partitionsbezeichnung), dann ersetzen wir überall root=XXX durch root=/dev/mapper/root, denn dorthin wird unsere verschlüsselte root-Partition neu abgebildet.
          3. Auch in der Datei /mnt/etc/fstab ändern wir den alten Eintrag für / auf /dev/mapper/root, dann steht dort u.a. (z.B., wichtig sind die ersten zwei Spalten, der Rest kann variieren):
            /dev/mapper/root / xfs noatime 0 1
          4. In der Datei /etc/crypttab zeigen wir dem System, welche Partition wie verschlüsselt wurde. In meinem Beispiel ist das immernoch /dev/sda3, also fügen wir die folgende Zeile zusätzlich hinten ein:
            root /dev/sda3 none luks
        2. Speziell für den abgespeckten Kernel und die minimale Installation von EeeBuntu müssen die fehlenden Teile nachinstalliert werden:
          1. /mnt ist bereits von vorhin eingebunden. Nun die boot-Partition dazubinden:
            mount /dev/sda1 /mnt/boot
          2. Jetzt muss das EeeBuntu eingerichtet werden, dass es selbst auch mit verschlüsselten Partitionen umgehen kann. Dazu müssen wir in die EeeBuntu-Distribution unter /mnt wechseln:
            chmod /mnt
          3. Um Fehler beim Zugriff auf /proc zu vermeiden, binden wir es ein:
            mount /proc
          4. Das Paket cryptsetup fehlt bei EeebBuntu. Ebenso fehlen die Kernelmodule für die Verschlüsselung. Dazu benötigen wir modconf. Sicherstellen, dass Internetzugang vorhanden ist, dann installieren:
            apt-get install cryptsetup modconf
          5. Nun die Kernelmodule installieren mit:
            modconf
            1. Unter kernel/crypto den Punkt aes-generic installieren.
            2. Unter kernel/drivers/md den Punkt dm-crypt installieren.
          6. Zuerst müssen wir herausfinden, welche Kernelversion installiert ist, um die neuen Verschlüsselungsmodule in den Boot-Kernel zu integrieren. Dies geht mit dem Kommando:
            dpkg -l 'linux-image-*-eeepc'


            Das sollte eine Zeile zeigen, die mit ii beginnt (für «installiert»). Bei mir ist das linux-image-2.6.24-21-eeepc. Der Befehl uname -r muss ebenfalls 2.6.24-21-eeepc anzeigen.

          7. Den Kernel bootbar machen:
            dpkg-reconfigure linux-image-2.6.24-21-eeepc
          8. Nun können wir die chroot-Umgebung verlassen:
            exit
      3. Nun noch aufräumen:
        umount /mnt/proc /mnt/boot /mnt
  3. Und das System (ohne USB-Sticks) neu starten.

Ubuntu

Da von Asus an Xandros zu viel herumgebastelt wurde, bin ich auf Ubuntu mit KDE umgestiegen. Xandros ist zu empfehlen für alle die, die nicht viel von Computer verstehen, nur ein einfaches Gerät für sich selbst wollen und mit den angebotenen Programmen bedient sind.

Ich benutze Ubuntu mit KDE: sudo apt-get install kubuntu-desktop.

sudo -i muss man jeweils nur einmal machen für alle Änderungen. Es startet eine bash als root. Statt sudo vor jedem Kommando, aus Bequemlichkeit und bei Pipes funktioniert normales sudo eh nicht so einfach. Ist aber heikler. Verlassen ganz am Ende mit exit.

Installation ab USB-Memory-Stick oder SD-Card

Notwendige Pakete:

sudo apt-get install syslinux mbr

Notwendige Ubuntu-Dateien:

  • Das Ubuntu-ISO-Image (z.B. kubuntu-8.10-alternate-i386.iso), welches normalerweise auf CD-gebrannt wird: Kubuntu oder Ubuntu

Stick/Card einstecken und einbinden. mount zeigt den Namen des Geräts (z.B. /dev/sdb1/dev/sdb). In den weiteren Beispielen verwende ich /dev/sdb, das muss natürlich entsprechend angepasst werden. Eine falsche Bezeichnung löscht die falsche Harddisk. Die bestehenden Daten auf dem Stick werden gelöscht.

Auf dem USB-Stick oder der SD-Card sollte mindestens die erste Partition (z.B. /dev/sdb1) mit dem DOS-Dateisystem formatiert sein. Der Partitionstyp (Id) sollte c sein, ausserdem sollte die Partition bootbar markiert sein (mit * bei boot.). Für /dev/sdb z.B. zeigt sudo fdisk -l /dev/sdb die Partitionierung an. Sie sollte so aussehen:

Platte /dev/sdb: 4007 MByte, 4007657472 Byte
5 Köpfe, 32 Sektoren/Spuren, 48921 Zylinder
Einheiten = Zylinder von 160 × 512 = 81920 Bytes
Disk identifier: 0xc18c69ad
 
   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1   *          51       48922     3909696    c  W95 FAT32 (LBA)

Falls notwendig ändern mit sudo fdisk /dev/sdb:

  • Alle Konfigurationen löschen: o
  • Neue 1. Partition anlegen: n, p, 1, Enter, Enter
  • Typ setzen: t, c
  • Bootfähigkeit setzen: a, 1
  • Prüfen: p
  • Schreiben und Beenden: w

Nun folgendes tun:

  • MBR installieren
  • Mit 32-Bit FAT formatieren, Label auf Ubuntu setzen
  • Mit syslinux zum booten vorbereiten
  • Stick ausziehen, wieder einstecken und das einbinden. Er sollte nun auf /media/Ubuntu eingebunden sein.
  • Das Ubuntu-ISO-Image z.B. unter /mnt einbinden (hier wird angenommen, es liegt unter ~/downloads/iso/kubuntu-8.10-desktop-i386.iso)
  • Kopieren die Dateien von dort (/mnt) auf den Stick (/media/Ubuntu) — Fehler von Rsync ignorieren (Grund der Fehler: Auf einem DOS-Dateisystem können keine Verweise angelegt werden)
  • Laufwerkeinbindung von /mnt wieder lösen.
  • Umbenennen von isolinux nach syslinux, und darin von isolinux.cfg nach syslinux.cfg auf dem Stick

Das sieht dann konkret z.B. so aus:

  sudo install-mbr /dev/sdb
  sudo mkfs.vfat -F 32 -n Ubuntu /dev/sdb1

(Stick raus und wieder rein)

  sudo mount -o loop ~/downloads/iso/kubuntu-8.10-desktop-i386.iso /mnt
  sudo rsync -rvP /mnt/ /media/Ubuntu/
  sudo umount /mnt
  sudo mv /media/Ubuntu/isolinux /media/Ubuntu/syslinux
  sudo mv /media/Ubuntu/syslinux/isolinux.cfg /media/Ubuntu/syslinux/syslinux.cfg
  sudo syslinux /dev/sdb1

Stick abmelden, ausziehen und im Asus beim Booten den Tabulator drücken für das Bootmenu, Stick auswählen, von dort starten und fertig.

Alternate-Installations-CD

Für die alternative Installations-CD, die ich empfehle, weil man damit die ganze Harddisk verschlüsseln kann, sieht es ein wenig anders aus. Dort kann man kein Live-System laufen lassen, sondern nur installieren. Dazu muss die ganze ISO-Datei auf den Stick kopiert werden. Beim Installieren muss man diese dann von Hand angeben.

Dafür muss man nicht die ganzen Dateien von der eingebundenen ISO-Datei kopieren. Stattdessen genügen die drei Dateien aus: http://archive.ubuntu.com/ubuntu/dists/intrepid/main/installer-i386/current/images/hd-media/, wobei hier intrepid durch die gewünschte Version und installer-i386 durch die gewünschte Hardware zu ersetzen ist. Diese Dateien kopiert man nach /media/Ubuntu, ausserdem braucht es noch eine Datei /media/Ubuntu/syslinux.cfg, die von Hand anzulegen ist, Inhalt:

default vmlinuz
append initrd=initrd.gz ramdisk_size=10000 root=/dev/rd/0 devfs=mount,dall rw

Bei alten Distributionen, vor Feisty:

default vmlinuz
append initrd=initrd.gz ramdisk_size=10000 root=/dev/rd/0 init=/linuxrc devfs=mount,dall rw

Ungelöste Probleme

  • keine…

Spezielle Treiber

Passender Kernel

Details: http://array.org/ubuntu/setup.html

cd /etc/apt/sources.list.d/
sudo wget http://www.array.org/ubuntu/array-hardy.list
cd /tmp
wget http://www.array.org/ubuntu/array-apt-key.asc
sudo apt-key add array-apt-key.asc
sudo apt-get update
sudo apt-get install linux-eeepc
sudo apt-get remove linux-generic linux-image-generic linux-restricted-modules-generic
sudo apt-get remove linux-.*-generic

Achtung: Keine Ahnung, was vom Folgenden noch notwenig ist, nach dem oben,,,

Sauber runterfahren

sudo -i
echo "rmmod snd-hda-intel" >> /etc/default/halt

ACPI (Spezialknöofe, Kamera)

sudo apt-get install module-assistant eeepc-acpi-source
sudo m-a a-i eeepc-acpi
sudo sh -c 'echo eeepc-acpi >> /etc/modules'
Knöpfe
sudo -i
cat > /etc/acpi/events/hotkey <<EOF
event=hotkey ATKD
action=/etc/acpi/eeepc-hotkeys.sh %e
EOF
cat > /etc/acpi/eeepc-hotkeys.sh <<EOF
#!/bin/sh
 
code=\$3
 
case \$code in
  # Fn+F2 -- enable/disable wifi
  0000001[01])
    /etc/acpi/actions/wireless-toggle.sh
  ;;
  # Fn+F7 -- mute/unmute speakers
  00000013)
    acpi_fakekey 113
  ;;
  # Fn+F8 -- decrease volume
  00000014)
    acpi_fakekey 114
  ;;
  # Fn+F9 -- increase volume
  00000015)
    acpi_fakekey 115
  ;;
esac
EOF
chmod a+x /etc/acpi/eeepc-hotkeys.sh

Bildschirmanzeige von Sondertastendrücken

Abwarten:

However Adam is working on a similar package. The package is still in development, but eventually will be released on the http://array.org/ubuntu repository as eeepc-hotkeys.

WLan

wget 'http://snapshots.madwifi.org/madwifi-hal-0.10.5.6-current.tar.gz'
tar zxvf madwifi-hal-0.10.5.6-current.tar.gz
cd madwifi-hal-0.10.5.6-...
make clean
make
sudo make install
WLan-Knopf
sudo -i
echo "pciehp pciehp_debug=1 pciehp_force=1" >> /etc/modules
mkdir -p /etc/acpi/actions
cat > /etc/acpi/actions/wireless-toggle.sh <<EOF
#!/bin/sh
 
wlan_control=/proc/acpi/asus/wlan
 
WLANSTATE=\$(cat \$wlan_control)
 
case \$WLANSTATE in 
  1)
    ifconfig ath0 down
    modprobe -r ath_pci
    echo 0 > \$wlan_control
    modprobe -r pciehp
    ;;
  0)
    modprobe pciehp pciehp_force=1 pciehp_debug=1
    echo 1 > \$wlan_control
    modprobe ath_pci
    echo 0 > \$wlan_control
    echo 1 > \$wlan_control
    ;;
esac
EOF
chmod a+x /etc/acpi/actions/wireless-toggle.sh

Sound

Geht nicht nach einem Suspend. Lösung:

(Achtung: Beim EeePC-70x muss es lauten: options snd-hda-intel model=3stack-dig, statt wie beim 90x auto)

sudo -i
echo "options snd-hda-intel model=auto" >> /etc/modprobe.d/snd-hda-intel
cat > /usr/lib/pm-utils/sleep.d/45sound <<EOF
#!/bin/bash
 
if [ ! -x /sbin/alsa ]; then
        exit 0;
fi
 
case "\$1" in
        hibernate|suspend)
                /sbin/alsa suspend
                ;;
        thaw|resume)
                /sbin/alsa resume
                ;;
        *)
                ;;
esac
 
exit \$?
EOF
chmod +x /usr/lib/pm-utils/sleep.d/45sound

In Datei /etc/default/alsa:

force_unload_modules_before_suspend="snd_hda_intel"

CPU Skalieren

sudo -i
apt-get -y remove powernowd kde-guidance-powermanager
apt-get -y install cpufrequtils sysfsutils kpowersave
modprobe p4_clockmod
cat  >> /etc/modules <<EOF
p4_clockmod
cpufreq_ondemand
EOF

Weitere Einstellungen mit kpowersave.

Wozu? «Overclock»? Was ist das?

Habe ich nicht gemacht:

Modul eee.ko kompilieren nach einer Anleitung, die ich nicht gefunden habe.

  • In /etc/modprobe.d/blacklist, folgende Zeile auskommentieren (indem Ihr eine # am Anfang der Zeile setzt): blacklist i2c_i801
   echo "i2c_i801" >> /etc/modules
   echo "eee" >> /etc/modules

Webkamera und anderes

Bios-Einstellungen prüfen! Wenn die Kamera disabled ist, geht sie natürlich nicht. Ausserdem muss OS-Installation auf Finished gesetzt sein.

Videotreiber

Korrektur der Auflösung (für externen Monitor – Achtung: Vor dieser Installation nicht die Monitoreinstellungen manipuliueren, sonst get /etc/X11/xorg.conf kaputt und muss mit sudo cp /etc/X11/xorg.conf.1 /etc/X11/xorg.conf auf der Konsole wiederhergestellt werden):

sudo apt-get install 915resolution

Schneller Booten

In /boot/grub/menu.lst:

timeout		0
[...]
... defoptions=quiet splash clocksource=hpet

Dann:

sudo update-grub

Maximale Bildschirmhelligkeit

Macht den Bildschirm heller, heizt aber auf und braucht mehr Strom. Laut Asus ist das nicht zu empfehlen, also sparsam gebrauchen.

KDE-Menueintrag unter System:

Name
Hell
Beschreibung
Maximale Bildschirmhelligkeit
Kommentar
Bildschirm auf maximale Helligkeit einstellen
Befehl
kdesudo -c 'setpci -s 00:02.1 f4.b=ff'

Xandros

Allgemeine Informationen zur Manipulation eines Eee-PC P900:

Linux-Bash-Terminal: Ctrl-Alt-T

Befehl als root ausführen: sudo befehl.

Editor: kwrite

Beispiel: Datei /usr/bin/startx editieren:

  • Ctrl-Alt-T
  • sudo kwrite /usr/bin/startx

Mehrere Nutzer

  • Ersetze /usr/bin/startx durch /usr/bin/kdm
    • Oder schreibe die Zeilen /usr/bin/kdm und exit 0 als Zeilen 2 und 3 ganz oben in /usr/bin/startx.
  • Bearbeite /usr/bin/startsimple.sh:
    • Ganz oben (2. Zeile) füge ein: [ -z "$USER" ] && export USER=user
    • Danach ersetze darunter alle Vorkommen von Benutzer user durch $USER.
      Dies ist wichtig, damit Details funktionieren, wie die Einstellung das Öffnen von Speichergeräten.
  • Für jeden neuen Benutzer namens name mache folgendes:
    • sudo adduser name
    • Bearbeite /etc/sudoers und füge für name eine Zeile ein, analog zur letzten für user.
    • Bearbeite /etc/group und ersetze alle :user durch :user,name. Weitere Namen können mit Komma angehängt werden.
    • Verhindern, dass die Ersteinrichtung erfolgt (genügt, wenn das einmal für user gemacht wurde): sudo -u name touch /home/name/.firstrundone

Quellen

Warnung: Folgendes kann das System instabil werden lassen!

Tipp: Alles ausser den zwei Originalzeilen auskommentieren (#), wenn sie gerade nicht gebraucht werden.

Datei /etc/apt/sources.list:

deb http://update.eeepc.asus.com/p900/ p900 main 
deb http://update.eeepc.asus.com/p900/de/ p900 main 
 
deb http://update.eeepc.asus.com/p701/ p701 main 
deb http://update.eeepc.asus.com/p701/de/ p701 main 
 
#deb http://mcentral.de/empiatech/ p701 main 
 
deb http://xnv4.xandros.com/xs2.0/upkg-srv2 etch main contrib non-free
deb http://dccamirror.xandros.com/dccri/ dccri-3.0 main
deb http://www.geekconnection.org/ xandros4 main
#deb http://download.tuxfamily.org/eeepcrepos/ p900 main etch
deb http://download.tuxfamily.org/eeepcrepos/ p701 main etch
#deb http://www.archlug.org/apt/ xandros4 archlug xorid/andrew xorid/matty xorid/uploads
deb http://xnv4.xandros.com/xs2.0/pkg/ xs2.0-xn main non-free

Es genügt auch, folgende Zeilen hinzuzufügen:

deb http://xnv4.xandros.com/xs2.0/upkg-srv2 etch main contrib non-free
deb http://dccamirror.xandros.com/dccri/ dccri-3.0 main
deb http://www.geekconnection.org xandros4 main

Datei /etc/apt/preferences:

Package: *
Pin: origin update.eeepc.asus.com
Pin-Priority: 1500
 
Package: *
Pin: origin
Pin-Priority: 925
 
Package: *
Pin: origin xnv4.xandros.com
Pin-Priority: 900
 
Package: *
Pin: origin dccamirror.xandros.com
Pin-Priority: 850
 
Package: *
Pin: origin www.geekconnection.org
Pin-Priority: 750
 
Package: *
Pin: release a=stable
Pin-Priority: 700
 
Package: *
Pin: release a=testing
Pin-Priority: 650
 
Package: *
Pin: release a=unstable
Pin-Priority: 600
wget http://download.tuxfamily.org/eeepcrepos/key.asc
sudo apt-key add key.asc
rm key.asc
sudo apt-get update
sudo apt-get install xandros-archive-keyring

Software

Aus den Original P900-Quellen von Asus installiere ich zusätzlich:

  • Alle Updates
  • Alle Spiele, Lernprogramme, u.ä.

Aus den Asus P701-Quellen:

  • Full KDE-Desktop (Voller Desktop): kicker ksmserver
    • → funktioniert nicht! Fehler: «Sie müssen alle laufenden Anwendungen schliessen…», obwohl gar nichts läuft.

Aus Community P701-Quellen:

Aus den Xandros-Quellen:

  • Mein Lieblingseditor: xemacs
  • Zeitsynchronisation mit dem Internet: ntp-simple (ntp)

Für eine saubere Deinstallation: Auch mitinstallierte Abhängigkeiten merken (ich speichere die geplanten Änderungen in synaptic in eine Datei). Aufpassen, dass keine wichtigen Bibliotheken aus Xandros-Quellen überschrieben werden, sonst könnte das Instabilitäten zur Folge haben.

Geplante Anpassungen

  • Mehrere Nutzer2) (kdm)
  • /home/xxx auf externem Stick
  • Externer Stick verschlüsselt
  • Abgleich mit richtigem Laptop
    • Idee: svn
    • Idee: unison
  • Mehr Software:
    • korganizer (Newsreader/Mail)
    • kwalletmanager
    • Spiele
  • TV-USB-Stick

Quellen