eee PC – Xandros Linux als VirtualBox Guest

16 Dezember 2008 von J.N Kommentieren »

Dieser Beitrag beschäftigt sich mit der Installation des eee Betriebssystems in einer virtuellen Maschine. Ich verwende die Recovery-DVD eines eee PC 901go, die Anleitung sollte aber auf alle anderen eees übertragbar sein.

Das meiste wird dem geneigten eee Besitzer schon bekannt sein, es dient nur der Illustration des Vorgehens. Der Grund für diese Installation war für mich, dass ich auf meinem “Kleinen” nicht alle Tools einrichten wollte, die für das Übersetzen von Software notwendig sind.

Achtung: Es scheint wohl nicht bei jeder Recovery-DVD so zu funktionieren. Meine ersten Versuche hatte ich mit dem ISO-Image eines eeePC 701 unternommen. Dort ist ein zusätzliches Problem, dass die Systempartition tatsächlich eine squashfs-Datei ist; Änderungen müssen erst in die Dateisystem-Datei geschrieben werden.

Installation und Vorbereitung: Ich gehe davon aus, dass VirtualBox bereits installiert und bekannt ist.

Nachdem eine neue Box eingerichtet ist (die vdi-Festplattendatei sollte mind. 6 GB groß werden können, um später Platzprobleme zu vermeiden)  von der Recovery-DVD (F12 + c) booten. Die Frage, ob der Fabrikzustand (“recovery irgendwas…”) wiederhergestellt werden soll mit “yes” beantwortet werden, wobei “z” und “y” auf der Tastatur vertauscht sind (en-Layout). Es handelt sich nicht um eine tatsächliche Installation, vielmehr ist auf der DVD ein Image enthalten, das schlicht auf die Platte übertragen wird – es geht dementsprechend relativ schnell.

Die Installation wird ohne weitere Eingriffe nicht vollständig booten und VirtualBox zu einer Fehlermeldung provozieren. Das Problem ist der x.org Server, der die graphische Oberfläche bereitstellt. Dessen Konfigurationsdatei enthält natürlich nur Angaben zu der Grafikkarte des Original eee PC, nicht zu der Virtualisierten.

Um die notwendigen Einstellungen zu ändern benötigt man eine Linux Live-CD. Während der Installation kann man sich überlegen, welches man verwenden will. Ich habe mich für grml entschieden, die Download Variante Small (ca. 70 MB) hat alles im Gepäck, was benötigt wird. Im Folgenden verwende ich grml:

Partitionen verbinden: Die Standardinstallation enthält eine Wiederherstellungsfunktion, die zwei Partitionen auf der Festplatte benötigt. Sie ist für eine virtuelle Box aber überdimensioniert, man kann stattdessen nach der Installation einfache eine Kopie der vdi Datei machen, um dieses Feature zu erreichen.

Außerdem behindert der Schreibschutz die Installation der VirtualBox Guest Additions, ich persönlich finde aber gerade die Mauszeigerintegration unverzichtbar. Wer auf die Guest Additions verzichten kann oder eine Methode kennt diese nachträglich in den schreibgeschützten Teil zu fummeln, kann auf diesen Punkt verzichten.

Hier wird erklärt, wie man diese Aufteilung aufhebt und eine Partition daraus macht.

Die X.org Oberfläche einrichten: Die Datei /mnt/system/etc/X11/xorg.conf muss so abgeändert werden, dass VirtualBox damit klar kommt, im Wesentlichen müssen Hardwarebeschleuniger abgeschaltet und VESA eingesetzt werden:

Anmerkung: Auch wenn später die Guest Additions installiert werden, hat sich auch danach der VESA Treiber bewährt. Jedenfalls die automatische Anpassung der Fenstergröße funktionierte in meinen Tests nie zufriedend stellend. Es lohnt sich folglich von der geänderten Datei gleich eine Sicherungskopie mit auf die Platte zu legen.

Nun die Live-Linux-CD in der VirtualBox starten. Die System-Partition heißt bei neueren Linux /dev/sda1. Wenn das System hochgefahren ist, muss diese Partition der Festplatte gemountet werden. Die letzte Zeile erstellt eine Sicherungskopie der Konfigurationsdatei.

mkdir /eee
mkdir /eee/system
mount /dev/sda1 /eee/system
cp /eee/system/etc/X11/xorg.conf /eee/system/etc/X11/xorg.conf.eee

Die Datei /eee/system/etc/X11/xorg.conf muss so abgeändert werden, dass VirtualBox damit klar kommt, im Wesentlichen müssen die Hardwarebeschleuniger abgeschaltet, VESA eingesetzt und das Touchpad von Synaptics entfernt werden. Die Datei besteht aus einzelnen Bereichen, die von dem Wort Section + Bezeichnung eingeleitet und mit dem Wort EndSection endet. Im Einzelnen:

  1. Section “ServerLayout”: Zeile InputDevice “synaptics” entfernen,
  2. Section “Module”: ganz entfernen,
  3. Section “ServerFlags” wie folgt ergänzen:
    Option      "GLX" "false"
    Option      "GLCore" "false"
  4. Section “InputDevice” mit dem Identifier “synaptics” ganz entfernen,
  5. Section “Monitor” mit dem Identifier “TV” ganz entfernen,
  6. Section “Device” mit dem Identifier “” wie folgt ändern
    Section "Device"
            Driver      "vesa"
            Identifier  "Device1"
    EndSection
  7. Section “DRI” ganz entfernen,
  8. Section “Extensions” ganz entfernen.

Konsolidiert sieht das folgendermaßen aus:

Section "ServerLayout"
    Identifier     "Xandros"
    Screen      0  "Screen1"
    InputDevice    "keyboard"
    InputDevice    "mouse"
EndSection

Section "Files"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/X11/misc"
    FontPath     "/usr/share/fonts/X11/Type1"
    FontPath     "/usr/share/fonts/X11/75dpi"
    FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
EndSection

Section "ServerFlags"
    Option        "AllowMouseOpenFail"
    Option        "BlankTime" "5"
    Option        "DontVTSwitch"    "true"
    Option        "AIGLX"   "false"
EndSection

Section "InputDevice"
    Identifier  "keyboard"
    Driver      "kbd"
    Option        "CoreKeyboard"
    Option        "XkbRules" "xorg"
    Option      "XkbModel" "pc105"
    Option      "XkbLayout" "de"
    Option      "XkbVariant" "eeepc"
    Option      "XkbOptions" "grp:alt_shift_toggle"
EndSection

Section "InputDevice"
    Identifier  "mouse"
    Driver      "mouse"
    Option        "Device" "/dev/input/mice"
    Option        "Protocol" "IMPS/2"
    Option        "Emulate3Buttons" "yes"
    Option        "ZAxisMapping" "4 5"
    Option        "CorePointer"
EndSection

Section "Monitor"
    Identifier   "Monitor1"
    VendorName   "ASUS"
    ModelName    "eeePC P701"
    Modeline     "800x480"  29.58  800 816 896 992  480 481 484 497  -HSync +Vsync # 60 Hz
    Modeline     "1024x600"  48.96  1024 1064 1168 1312  600 601 604 622  -HSync +Vsync
EndSection

Section "Device"
    Identifier  "Device1"
    Driver      "vesa"
EndSection

Section "Screen"
    Identifier "Screen1"
    Device     "Device1"
    DefaultDepth     16
    SubSection "Display"
        Depth     8
        Virtual  1024 768
    EndSubSection
    SubSection "Display"
        Depth     15
        Virtual  1024 768
    EndSubSection
    SubSection "Display"
        Depth     16
        Virtual  1024 768
    EndSubSection
    SubSection "Display"
        Depth     24
        Virtual  1024 768
    EndSubSection
EndSection

Datei speichern, danach die Partition noch aushängen und neustarten.

Und täglich grüßt der Lizenzvertrag

eee-lizenz

eee-lizenz

VirtualBox Guest Additions installieren: Voraussetzung ist, dass alle Tools zum Übersetzen von Software, sowie die Kernelquellen installiert sind. Im Netz geistert das Problem rund um das Paket “build-essential” herum. Dann einfach im Menü Geräte “Gasterweiterungen installieren…” auswählen. Eine Konsole öffnen (Strg+Alt+T) und folgendes eingeben:

sudo D\:/VBoxLinuxGuestAdditions-x86.run

Anmerkung 1: Ich persönlich bevorzuge danach in der Datei /etc/X11/xorg.conf (s. oben) an Stelle von vboxvideo den Driver “Vesa” wiederherzustellen. Sonst ufert die Fenstergröße aus.

Anmerkung 2: Es ist mir bislang nicht gelungen dem System beizubringen, dass es die Virtualbox Kernel Module vor dem Start des X.org Servers lädt. Die Mauszeigerintegration funktioniert damit erst nach einem Neustart des X-Servers. In einer virtuellen Box geht das ganz einfach mit der Tastenkombination rechte-Strg+Entf. Das muss nach jedem Neustart erfolgen, dauert aber nur 5 Sekunden. Ansonsten funktioniert es!

Netzwerk: VirtualBox benötigt das Kernelmodul pcnet32.ko. Dieses muss aus den Kernelquellen erstellt werden.

Viel Spaß beim Rumprobieren, ich werde sicher noch Ergänzungen einfügen.

Johannes

Werbung

Einen Kommentar hinterlassen

Du musst eingeloggt sein um einen Kommentar zu schreiben.