Auf dem eee PC läuft ein Linux des Distributors Xandros, welches auf Debian basiert. Leider liefert Asus die erforderlichen Tools nicht gleich mit, um selbst neue Programme oder gar den Kernel selbst zu übersetzen. Auch die Kernel-Quellen sind nicht enthalten.
Diese lassen sich aber einfach nachrüsten. Damit wird auch das häufige Problem gelöst, dass die Pakete build-essential, linux-kernel-header, etc. fehlen.
Zwei Wege führen zum Ziel: Ich bevorzuge alles verfügbar zu haben (Weg 1), damit ich nicht immer erneut suchen muss. Wer große einmalige Downloads scheut, kann sich die Pakete einzeln bei Bedarf besorgen (Weg 2).
WEG 1:
Ich bevorzuge diesen Weg, weil die Quelle klar ist, es nur einer bedarf und es u.U. notwendig ist alles in einem lokalen Repository vorzuhalten. Z.B. wenn man das eee Betriebssystem in VirtualBox installiert, hat man anfangs noch keinen Netzzugang, da das dazu erforderliche Module erst aus den Kernelquellen übersetzt und installiert werden muss. Im Ergebnis ist es schlicht einfacher und damit meistens – trotz langer Download-Zeiten – schneller.
Vorbereitung: Download des eee PC SDK (1,2 GB)
Anmerkung: Auch kann beim Download-Server der Teil dlsvr01, durch dlsvr02, dlsvr03, dlsvr04 oder dlsvr05 ersetzt werden.
Anmerkung: Das SDK ist ein ISO im rar Archiv. Nach dem Entpacken kann man es entweder auf DVD brennen oder (interessant wenn der eee PC in einer VirtualBox läuft) gleich das ISO weiterverwenden.
Ich habe unter /home/user das Verzeichnis xandros angelegt und von dem ISO das Verzeichnis dist dort rein kopiert. Danach einfach in die Datei /etc/apt/sources.list diese Zeile hinzugefügt (mit sudo nano):
deb file:///home/user/xandros contrib main non-free
Danach wie gewohnt:
apt-get update apt-get install build-essential linux-kernel-source
Jetzt kann der kernel eingerichtet werden:
cd /usr/src tar xvjf linux-source-2.6.21.4-eeepc.tar.bz2 ln -s linux-source-2.6.21.4-eeepc linux ln -s /usr/src/linux-source-2.6.21.4-eeepc /lib/modules/2.6.21.4-eeepc/build cd /usr/src/linux-source-2.6.21.4-eeepc make oldconfig make prepare make modules_prepare
Beispiel: Mit diesen Vorbereitungen lässt sich auch ein einzelnes Modul kompilieren. Als Beispiel verwende ich das module pcnet32, welches für die von VirtualBox standanrdmäßig verwendete Netzwerkkarte notwendig ist.
cd /usr/src/linux-source-2.6.21.4-eeepc make menuconfig make driver/net/ install -m 644 driver/net/pcnet32.ko /lib/modules/`uname -r`/kernel/drivers/net depmod -a
Anmerkung: Für menuconfig ist das Paket libncurses5-dev erforderlich. Dieses kann in der passenden Version hier heruntergeladen und mit “dpkg -i libncurses5-dev_5.5-5_i386.deb” installiert werden.
Danach in die Datei /etc/modules die Zeile “pcnet32″ hinzufügen und neu starten.
WEG 2:
build-essential: Die Entwickler-Pakete lassen sich aber relativ einfach nachinstallieren. Zunächst muss man das meta package “build-essential” installieren. Dieses ist nicht (oder zumindest nicht vollständig) in den standardmäßig eingerichteten repositories enthalten. Lösung: Vorübergehend ein Xandros Repository hinzufügen, build-essential installieren und danach das Repository wieder löschen:
- Die Signaturen für das Xandros Repository besorgen:
wget http://xnv4.xandros.com/xs2.0/pkg/pool/main/xandros/xandros-archive-keyring_1.0-3_all.deb sudo dpkg -i xandros-archive-keyring_1.0-3_all.deb
- In die Datei /etc/apt/sources.list folgende Zeile einfügen:
deb http://xnv4.xandros.com/xs2.0/upkg-srv2 etch main contrib non-free
- Nun die erforderlichen Pakete installieren, wenn schon installiert, ignorieren. Konsole mit Atrg+Alt+T öffnen, root werden (su):
apt-get update apt-get install build-essential gcc make
-
Die Zeile aus 2. auskommentieren, indem eine Raute (#) vorangestellt wird und erneut “apt-get update” ausführen.
kernel: Jetzt kann der Kernel installiert werden. Es handelt sich um kernel-2.6.21-4-eeepc, dieser kann bei Asus heruntergeladen werden: http://dlsvr01.asus.com/pub/ASUS/EeePC/701/Linux_Kernel_071127.rar
Anmerkung: Der Kernel ist bei allen eee PCs der gleiche, es stört nicht weiter, dass in der URL das Modell 701 genannt ist. Auch kann beim Download-Server der Teil dlsvr01, durch dlsvr02, dlsvr03, dlsvr04 oder dlsvr05 ersetzt werden.
Unterschiedlich ist (vielleicht – ich hab es nicht geprüft) die Config-Datei. Dort muss beim Download das Modell in die URL eingegeben werden.
Dieser muss nun heruntergeladen und installiert werden (in der vorletzten Zeile p901 durch das passende Gerät ersetzen, z.B. p701):
wget http://dlsvr01.asus.com/pub/ASUS/EeePC/701/Linux_Kernel_071127.rar unrar x Linux_Kernel_071127.rar rm Linux_Kernel_071127.rar dpkg -i linux-source-2.6.21.4-eeepc.deb rm linux-source-2.6.21.4-eeepc.deb cd /usr/src tar xvjf linux-source-2.6.21.4-eeepc.tar.bz2 rm linux-source-2.6.21.4-eeepc.tar.bz2 ln -s linux-source-2.6.21.4-eeepc linux ln -s /usr/src/linux-source-2.6.21.4-eeepc /lib/modules/2.6.21.4-eeepc/build
Die Kernel-Quellen müssen nun eingerichtet werden:
Methode 1:
cd /usr/src/linux-source-2.6.21.4-eeepc make oldconfig
Methode 2 (in der URL muss das Modell angegeben werden – p901, p701 etc.):
cd /usr/src/ wget http://update.eeepc.asus.com/p901/misc/config-2.6.21.4-eeepc mv config-2.6.21.4-eeepc linux-source-2.6.21.4-eeepc/.config
Sodann:
cd /usr/src/linux-source-2.6.21.4-eeepc make prepare
Die Vorbereitungen lösen auch die Sache mit dem fehlenden linux-kernel-header Paket. Wer versucht bestimmte Hardware zu installieren braucht häufig Zugriff auf die Module.
make modules_prepare
Beispiel: Mit diesen Vorbereitungen lassen sich auch einzelne Module kompilieren. Als Beispiel verwende ich das module pcnet32, welches für die von VirtualBox standanrdmäßig verwendete Netzwerkkarte notwendig ist.