Ubuntu User Sever @ Home (Vorschau)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Wissen<br />
Wayland<br />
Glossar<br />
Bibliothek: Eine Sammlung von<br />
Programmfunktionen, die Anwendungsentwickler<br />
im Programmablauf<br />
mehrfach nutzen können. Auf<br />
diese Weise sparen sie bei der Programmierung<br />
Arbeit und Zeit.<br />
EGL: Steht für „Embedded System<br />
Graphics Library“ und vermittelt<br />
zwischen der OpenGL-ES-API und<br />
dem Fenstersystem des darunterliegenden<br />
Betriebssystems. Die EGL-<br />
Implementierung von Wayland heißt<br />
Eagle.<br />
GLES2: Kürzel für OpenGL ES 2.0;<br />
das ist zweite Version der OpenGLbasierten<br />
Spezifikation zum Erzeugen<br />
von 3-D-Grafik auf eingebetteten<br />
(und mobilen) Geräten (N900,<br />
iPhone usw.).<br />
Probefahrt<br />
sich die Frage: Müssen die Softwareentwickler nun<br />
plötzlich alle ihre grafischen Programme an Wayland<br />
anpassen? Glücklicherweise ist die Situation<br />
nicht ganz so dramatisch.<br />
Wandverkleidung<br />
Zunächst besteht die Möglichkeit, einen vollständigen<br />
X-Server als Wayland-Client laufen zu lassen<br />
(Abbildung 4) – ähnlich macht es auch Mac OS<br />
X. Die X-Clients<br />
kommunizieren<br />
in diesem Fall mit<br />
dem X-Server,<br />
der wiederum<br />
Wayland bittet,<br />
den Bildschirm<br />
neu zu zeichnen.<br />
Diese Kette<br />
macht Waylands<br />
Vorteile allerdings<br />
5 Programme nutzen meist wieder zunichte<br />
Bibliotheken wie GTK+ oder Qt, und ist daher<br />
die ihrerseits mit dem X-Server nur als Notbehelf<br />
kommunizieren.<br />
für eine Übergangszeit<br />
gedacht – auch wenn Hauptentwickler<br />
Kristian Høgsberg für diese Betriebsart nur äußerst<br />
geringe Geschwindigkeitseinbußen verspricht.<br />
In der Praxis reden die meisten X-Clients nicht<br />
direkt mit dem X-Server, sondern nutzen Zwischenschichten<br />
wie GTK+, Qt und Cairo (Abbildung<br />
5). Auf erstgenannter Bibliothek bauen alle<br />
Gnome-Programme auf, Qt trifft man vorwiegend<br />
im KDE-Lager. Entwickler müssen also nicht alle<br />
Programme auf Wayland einschwören, sondern<br />
nur die genannten Bibliotheken anpassen, was<br />
Høgsberg und Co. derzeit vorantreiben. Den Status<br />
der Portierung auf Qt verfolgen Sie unter [4],<br />
unter [5] finden Sie Details zu den Fortschritten<br />
bei der Portierung auf GTK+. Besonders schnell<br />
lassen sich Bibliotheken anpassen, die schon von<br />
Haus aus auf OpenGL oder Cairo basieren, wobei<br />
Wayland auf EGL und GLES2 setzt. Eine ziemlich<br />
bittere Pille wartet aber im Netzwerkbereich.<br />
Ins Netz gegangen<br />
Die Kommunikation von X-Clients mit dem X-Server<br />
wurde in den 80er Jahren so ausgelegt, dass<br />
sie über das Netzwerk funktioniert. Damit ist es<br />
Wer Wayland einmal ausprobieren<br />
möchte, muss derzeit Glück haben<br />
oder ziemlich leidensfähig sein. Und<br />
er sollte das nicht auf dem Produktivsystem<br />
tun. Mit etwas Glück funktioniert<br />
die Version aus dem PPA für<br />
<strong>Ubuntu</strong> 10.10 [9]. Sie binden das PPA<br />
über die folgenden Befehle ein:<br />
sudo apt‐add‐repository U<br />
ppa:xorg‐edgers/wayland<br />
sudo apt‐get update<br />
sudo apt‐get install waylandU<br />
libxkbcommon libgles2‐mesaU<br />
libdrm2<br />
Anschließend kopieren Sie die Udev-<br />
Regel von Wayland an den richtigen<br />
Ort:<br />
sudo cp /lib/udev/rules.d/U<br />
70‐wayland.rules /etc/udev/U<br />
rules.d/<br />
Starten Sie den Rechner neu und rufen<br />
Wayland über den Befehl wstart innerhalb<br />
der X.Org-Session auf. Alternativ<br />
beenden Sie die Gnome-Session über<br />
sudo /etc/init.d/gdm stop, wechseln<br />
über [Strg]+[Alt]+[F1] die Konsole,<br />
melden sich an und geben<br />
wayland‐compositor ‐b /usr/shaU<br />
re/backgrounds/space‐01.jpg &<br />
ein. Tippen Sie übrigens wayland‐ ein<br />
und drücken Sie [Tab], erscheint eine<br />
Liste von Demoprogrammen für den<br />
Displayserver.<br />
Funktioniert das alles nicht, gibt es<br />
noch einen komplizierten Weg. Auf<br />
diesem verlangt Wayland nach aktuellen<br />
beziehungsweise speziellen<br />
Versionen von mesa, libxkbcommon<br />
und cairo‐gl. Die Programme laden<br />
Sie – wie Wayland – von Hand herunter<br />
und kompilieren sie, wozu Sie<br />
wiederum ein Dutzend weiterer Pakete<br />
brauchen.<br />
Den Wayland-Compositor betreiben<br />
Sie als X11-Ersatz, als Wayland-<br />
Client oder als normalen X-Client.<br />
Im letzten Fall landen alle Ausgaben<br />
der Wayland-Programme in einem<br />
gewöhnlichen X11-Fenster – das allerdings<br />
flott über die OpenGL-ES-<br />
Schnittstelle. Um sich das eigene<br />
Linux-System nicht versehentlich zu<br />
zerstören, sollten Sie Wayland nur<br />
als X-Client betreiben. Dummerweise<br />
läuft Wayland derzeit nicht in einer<br />
virtuellen Umgebung, wie etwa VirtualBox.<br />
Auf unserem Testsystem mit<br />
<strong>Ubuntu</strong> 10.10 stürzte der Compositor<br />
zudem reproduzierbar ab.<br />
Wie Sie Wayland übersetzen, verrät<br />
eine kurze und recht allgemein gehaltene<br />
Anleitung auf der Projektseite<br />
[10] – hier der Weg für <strong>Ubuntu</strong> 10.10.<br />
Sie installieren zunächst die Pakete<br />
git, automake, autoconf, libtool, xutilsdev,<br />
libtalloc‐dev, xorg‐dev, libdrmdev,<br />
bison, gcc, g++, flex, libpng12‐<br />
dev, libgdk‐pixbuf2.0‐dev, libudevdev,<br />
libxcb‐dri2‐0‐dev, libxcb‐xfixes0‐<br />
dev, libpoppler‐glib‐dev, libffi‐dev,<br />
libgles2‐mesa‐dev und libgtk2.0‐dev.<br />
Dann laden Sie von [11] das Paket<br />
x11proto‐kb‐dev herunter und spielen<br />
es z. B. per Doppelklick ein. Damit<br />
erhöhen Sie die Version von x11protokb‐dev<br />
auf die von libxkbcommon geforderte<br />
Variante. Jetzt folgt im Terminal<br />
ein kleines Befehlsfeuerwerk,<br />
wobei Sie bei jedem Schritt besser<br />
beide Daumen drücken:<br />
git clone git://anongit.U<br />
freedesktop.org/mesa/mesa<br />
cd mesa<br />
./autogen.sh ‐‐enable‐egl U<br />
‐‐enable‐gles2<br />
make<br />
sudo make install<br />
cd ..<br />
git clone git://people.U<br />
freedesktop.org/~krh/U<br />
libxkbcommon.git<br />
cd libxkbcommon<br />
./autogen.sh<br />
make<br />
sudo make install<br />
cd ..<br />
git clone git://anongit.U<br />
freedesktop.org/cairo<br />
cd cairo<br />
./autogen.sh ‐‐enable‐gl<br />
make<br />
sudo make install<br />
cd ..<br />
git clone git://people.U<br />
freedesktop.org/~krh/wayland<br />
cd wayland<br />
./autogen.sh<br />
make<br />
sudo make install<br />
sudo cp<br />
compositor/70‐wayland.rules U<br />
/etc/udev/rules.d<br />
sudo udevadm trigger U<br />
‐‐subsystem‐match=drm U<br />
‐‐subsystem‐match=input<br />
Den Wayland-Compositor starten Sie<br />
im Unterverzeichnis compositor:<br />
cd compositor<br />
./compositor<br />
Die Compositor-Ausgaben landen<br />
nun in einem eigenen Fenster. In einem<br />
zweiten Terminalfenster wechseln<br />
Sie in den Ordner /wayland/<br />
clients in Ihrem <strong>Home</strong>-Verzeichnis.<br />
Dort finden Sie einige Demoprogramme,<br />
die nach dem Start jeweils<br />
im Compositor-Fenster erscheinen.<br />
Viel Glück!<br />
62 UBUNTU<br />
02/2011<br />
www.ubuntu-user.de<br />
user