Wer einen Acer Aspire One – nennen wir ihn AAO – mit vorinstalliertem Linpus Linux sein Eigen nennt, findet ein vorkonfiguriertes Gerät, dass den meisten der Anforderungen eines „normalen“ Anwenders entspricht. Meine Herausforderung ergab sich, als ich den AAO in meine Backup-Prozeduren einbinden wollte und feststellen musste, es wird nur NFS4 unterstützt. Bei mir läuft jedoch noch alles mit NFS3.
Es musste also ein neuer angepasster Kernel her. Da jedoch der AAO jede Menge Module verwendet, die nicht Bestandteil des Standardkernels sind, gestaltete sich dies als nicht ganz so einfach. Anleitungen und Tipps im Web habe ich nur sehr begrenzt ausfindig machen können. Eine gute Page gibt es unter http://the.taoofmac.com/media/Acer/Aspire%20One/AA1notes.html.
Sicherheitshalber weise ich darauf hin, dass ich keine wie auch immer geartete Haftung für Probleme und / oder Schäden, die bei der Nachahmung der beschriebenen Vorgehensweise auftreten übernehme und die Anwendung der nachfolgenden Hinweise auf eigenes Risiko erfolgt. Weiterhin kann ich Tippfehler oder technisch bedingte fehlerhaft angezeigte Informationen auf meinen Seiten (speziell dieser) nicht ausschließen.Um eine Shell mit Rootrechten zu erhalten, startet man mit Alt+F2 die Shell „terminal“ und wird mittels „sudo su -“ dauerhaft root.
Zunächst habe ich die entsprechenden Compiler und Bibliotheken installiert.
yum install make gcc glibc-devel glibc-headers kernel-headers ncurses-devel
- make-1.3.81-10.fc8
- gcc-4.12-33
- glibc-devel-2.7.2
- glibc-headers-2.7.2
- kernel-headers 2.6.23.1-42.gc8
Dann die kernel-sourcen aus der Datei linux-2.6.23.9lw.zip von Acer geholt und im Verzeichnis /usr/src mittels unzip linux-2.6.23.9lw.zip ausgepackt. Anschließend wird die Kernelkonfiguration aus dem Verzeichnis /boot in das Kernelverzeichnis kopiert.
cp /boot/config_080627 /usr/src/linux-2.6.23.9/.config
Damit sind die Vorbereitungen abgeschlossen und jetzt wird es ernst.
- Wechsel in das Kernelverzeichnis; cd /usr/src/linux-2.6.23.9
- Anpassen der Kernelkonfiguration; make menuconfig
- Da ich nur NFS3 aktivieren wollte, habe ich lediglich die Option „File systems –>, Network File Systems –> Provide NFSv3 client support“ aktiviert und beim Verlassen über Exit die neue Konfiguration gespeichert.
- Kompilieren des neuen Kernels; make bzImage
- Kompilieren der neuen Module; make modules
Da die initrd bei meinem AAO quasi leer ist, braucht man sich darum keine Gedanken zu machen.
Es ist unbedingt erforderlich die Original-Kernelmodule zu sichern, bevor es weiter geht.
- Wechsel in das Modulverzeichnis; cd /lib/modules
- Sichern des Originalverzeichnisses; cp -r 2.6.23.9lw 2.6.23.9lw.orig
Anschließend werden die neuen Kernelmodule und der Kernel installiert.
- cd /usr/src/linux-2.6.23.9
- make modules_install
- cp arch/i386/boot/bzImage /boot/bzImage.neu
Da bei diesem Schritt eine ganze Reihe von Originalmodulen verschwinden (gelöscht werden, weil sie nicht Bestandteil des Kernels sind), werden diese im nächsten Schritt wiederhergestellt.
- Wechsel ins Modulverzeichnis; cd /lib/modules
- Feststellen welche Module fehlen; diff 2.6.23.9lw 2.6.23.9lw.orig|less
- Kopieren der fehlenden Module aus dem gesicherten Originalverzeichnis; cp 2.6.23.9lw.orig/pfad/modul.ko 2.6.23.9lw/pfad/modul.ko
- Abschließend wird geprüft, ob alle Abhöngigkeiten erfüllt sind; depmod -ae
Damit der neue Kernel auch beim nächsten Bootvorgang gefunden wird, bedarf es einer Anpassung an der /boot/grub/grub.conf.
Zum Test habe ich den Parameter hiddenmenu auskommentiert (# vor die Zeile) und den timeout auf 10 Sekunden gesetzt (aus 0 mach‘ 10), sowie folgenden Abschnitt unten angefügt
title Linux NFS rootnoverify (hd0,0) kernel /boot/bzImage.neu ro root=LABEL=linpus vga=0x311 splash=silent loglevel=1 console=tty1 quiet nolapic_timer initrd /boot/initrd-splash.img
Um beim Bootvorgang des AAO in das Bootmenü zu gelangen, muss man direkt nach dem Einschalten ein paar mal die Taste F2 drücken.
Hat alles geklappt, kann man noch die Kernelsource durch Eingabe von make clean im Kernelverzeichnis bereinigen.
Interessant wäre herauszufinden welche Pakete nach installiert werden müssen, um die lästige Kopiererei der fehlenden Kernelmodule zu vermeiden. Ideen?
Hi mate, nice article but there is a problem with the kernel sources on the acer ftp server. The include/asm/asm-offsets.h header file is missing and when you try to compile bzImage you get the error. This file is available in the include/asm-i386 directory so, the problem is easy to fix, all you need is to make a symlink. I hope it helps. Regards