Asus eee: Welch schnucklig, widerspenstig Teil!

Asus eeeSchon länger bin ich nun in Besitz eines Asus eee (4g). Ein wahrlich schnuckliges Teil, das mir viel Freude bereitet. Es hat die korrekte Grösse – die gerade noch an den meisten Sitzungstischen toleriert wird -, ist genügend schnell und ist gerade noch bedienbar. Als Erstes habe ich mehr RAM spendiert, mich mit SD-Karten rumgeschlagen und das Internet auf einem Stick besorgt. Nun kann ich unterwegs entwickeln, surfen, Filmchen kucken und auch live bloggen.

Das Betriebssystem

Das modifizierte Xandros auf dem eee ist erste Sahne, wirklich! Die reduzierte Komplexität hat den Nachteil, dass die Komplexität reduziert ist 🙂 , darum wollte ich ein „richtiges“ Linux.

Ubuntu sollte es sein! Nun hat man die Wahl zwischen eeeXubuntu, Ubuntu-eee oder dem standard Ubuntu. Ich habe mich für eeeXubuntu entschieden und das lief auch gut bis zum Update auf Ubuntu 8.04. Aber mit etwas Suchen habe ich dann eine gute Reparaturanleitung gefunden. Um das Ethernet wieder zum Laufen zu bringen, musste ich den Akku entfernen und wieder reinschieben (ohne Witz).

Grundsätzlich scheint es immer gleich zu laufen: Betriebssystem installieren und dann tweaken, um die Spezialfunktionen des eee zum Laufen zu kriegen. Glücklicherweise gibt es fertige Tweak-Skripts:

Diese Scripts müssen immer mal wieder gestartet werden… Beim Update und auch mal so, zur Erinnerung wahrscheinlich.

Sammlung von Kleinigkeiten

Hier werde ich die kleinen Dinge hinschreiben, die eventuell von Interesse und/oder wiederverwendbar sind.

Die Widerherstellungs-DVD

Die Widerherstellungs-DVD ist mehr als wählerisch was das Betriebssystem angeht. Will man einen recovery-USB-Strick herstellen, geht das nicht unter Linux und nicht unter Vista (auch wenn man die XP-Kompatibilität einschaltet). Unter XP hats dann wunderbar gefunzt und die Widerherstellung lief wie durch warme Butter.

Ändern des Standard-Bootmenüs

Die lügt die Kleine, und das gerade aus! Will man das Standardbootmenü verändern, so kann man die Vorhandene /boot/grub/menu.lst anpassen bis zum letzten Tage und grub-updateen oder grub-installen bis der Gothe noch schwärzer wird. Diese Datei dient nur als Lockvogel für Frickler, die richtig-richtige Datei ist wo ganz anders! Ausführlich beschrieben ist es bei eeeuser.com und WikiHow. Aber natürlich habe ich auch erst gesucht, nachdem ich ernsthaft (noch mehr) an meiner geistigen Gesundheit zu zweifeln begonnen habe… Kurz zusammengefasst:

  1. EEE rebooten und esc und/oder F9 widerholt und bestimmt drücken. Sporadisches Fluchen scheint auch zu helfen. Es sollte ein Bootmenü aufgehen, das ungefähr so aussieht:
    eee Boot Menü
  2. Beim ersten Eintrag e drücken und den Kerneleintrag um XANDROSBOOTDEBUG=y ergänzen.
  3. Mit b booten.
  4. sda1 und sda2 mounten:
    mount /dev/sda1 /mnt-system
    mount /dev/sda2 /mnt-user
    
  5. Nun kann /mnt-system/boot/grub/menu.lst (die Richtige!) editiert oder mit einer vorbereiteten auf dem Userdateisystem überschrieben werden.

Zum Glück haben die Kriedewagens die original menu.lst gepostet…

802.1X auf dem Original Xandros

Muss man sich authentifizieren, so hat eeeuser eine gute Anleitung wie man 802.1X zum Laufen kriegt.

PEAP – 802.1X unter Linux

Lock802.1X ist ein Standard zur Authentifizierung von Netzteilnehmern, ursprünglich für Mobilnetze entwickelt, aber immer mehr auch bei Festnetzen im Einsatz.

Benötigt wird xsupplicant bzw. wpa_supplicant als Open Source implementierung des IEEE 802.1X Standards.

Die meisten Distributionen bringen xsupplicant in ihrer Packetverwaltung mit. Die Installation/Konfiguration kann sich unterscheiden.

Debian

Installation

Zuerst muss xsupplicant installiert werden. Als root folgende Zeile eingeben:

apt-get install xsupplicant

Damit wäre xsupplicant installiert.

Konfiguration

Damit xsupplicant beim Booten startet, muss die Datei /etc/default/xsupplicant editiert werden. Sie nimmt die Startparameter auf:

# /etc/default/xsupplicant

# WARNING! Before enabling xsupplicant, make sure you have a valid
# configuration file, (/etc/xsupplicant/xsupplicant.conf), and that
# you have set a list of arguments below.
ENABLED=1

# At a minimum you need to set an interface with the -i argument. See
# the man page xsupplicant(8) for more options and information.
ARGS="-c /etc/xsupplicant/xsupplicant.conf -i eth0"

eth0 ist dabei das Interface, auf dem xsupplicant arbeiten soll.

Die eigentliche Konfigurationsdatei /etc/xsupplicant/xsupplicant.conf muss nun mit den Daten des BBB Netzes gefüllt werden. Die folgende gilt für Version 1.2.4.dfsg.1-1:

network_list = all
default_netname = default
logfile = syslog
log_facility = daemon
default_interface = eth0
default
{
  type = wired
  allow_types = all
  identity = skaldrom.sarg@oncode.info

  eap-peap {
      root_cert = NONE
      random_file = /dev/urandom
      session_resume = yes
      proper_peap_v1_keying = yes        
      allow_types = all # where all = MSCHAPv2, MD5, OTP, GTC, SIM
      #allow_types = eap_mschapv2

      eap-mschapv2 {
        username = Skaldrom.Y.Sarg
        #ntpwdhash = E653E6452753C97E46792567DFF599B6
        password = "PaSsWoRT"
      }
  }
}

skaldrom.sarg@oncode.info respektive PaSsWoRT müssen natürlich mit den eigenen, höchselbstigen Angaben ersetzt werden.

Start

Bei eingeschaltetem Netzwerkinterface (ifconfig eth0 up) kann nun xsupplicant gestartet werden und sollte sich authentifizieren. Die DHCP Anfrage, etc, sollte danach nach Standard funktionieren (ifup eth0).

Debugging

Um dem xsupplicant bei der Arbeit zuzusehen kann er im Vordergrund gestartet werden:

xsupplicant -f -dA -c /etc/xsupplicant/xsupplicant.conf -i eth0

Ubuntu Dapper

Gebraucht wird wpasupplicant und nicht xsupplicant.

Schnell eine wpa_supplicant.conf erstellt:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=0
network={
   key_mgmt=IEEE8021X
   eap=PEAP
   identity="Vorname.Nachname"
   password="passwort"
   eapol_flags=0
}

Danach kann man wpa_supplicant gestartet werden:

wpa_supplicant -Dwired -c ~/wpa.conf -i eth0

Weitere Probleme

Es ist ein Fall bekannt, in welchem dhcp3-client (der neue Standard-DHCP-Client in Debian?) nicht mitgespielt hat und erst mit dhcp-client eine IP vergeben wurde (ganz unabhängig von *supplicant).

Ebenfalls haben schon automatische Netzwerkkabeleinsteckdetektoren Probleme verursacht.

Ein No network configuration found for the current AP kann darauf hindeuten, dass die Netzwerkkarte nicht unterstützt ist oder dass der Treiber kein WPA hat.

Reconnect-Scripts

Dieses kleine Script authentifiziert (unter Debian) und wartet bis der Vorgang abgeschlossen ist. Per Polling wird /etc/syslog geprüft. Das Script wäre ausbaubar (Abbruch bein Nichtauthentifizierung, Timeout, …), ich würde sehr gerne Überarbeitungen entgegen nehmen.

#! /bin/bash
ifdown eth0
/etc/init.d/xsupplicant stop
ifconfig eth0 down
ifconfig eth0 up
/etc/init.d/xsupplicant start
while ! tail /var/log/syslog | grep "Successfully authenticated eth0"
do
  echo -n "*"
  sleep 5
done
echo "\n"
ifup eth0

Bitte

Ich wäre froh für jede Info, wenn es jemand geschafft hat über das Zertifikat eines Windows Zertifikatsserver zu authentifizieren… Als Belohnung gäbs einen virtuellen Blumenstrauss 🙂 …