Wenn das WLAN mal nicht läuft – das richtige Kernelmodul finden

Kürzlich erschien die zweite Betaversion von Ubuntu 11.04 “Natty Narwal”. Also USB-Stick gepackt, Image draufgespielt und ausprobiert. Es kam nur der Standard-Desktop, also kein Unity, weil kein 3D. Das war zu erwarten, denn der vorinstallierte freie Nvidia-Treiber kann für meine Karte kein 3D. Was mich aber verwunderte war, dass mein D-Link DWA 140 WLAN Stick (Ralink-Chipsatz) nicht ging, der Network Manager zeigte nur ein “firmware missing” an. Ich installierte den Natty-Kernel 2.6.38 vom Mainline-PPA unter Maverick und stellte fest, dass das Problem dort auch auftrat. Ein Kernel-Problem also. Ich googelte und stellte fest, dass ich nicht allein war. Da fiel mir ein Artikel aus dem Ubuntu-User-Magazin ein, indem verschiedene WLAN-Sticks auf Linux-Tauglichkeit geprüft wurden. Bei einem stand der Autor vor demselben Problem; es wurden falsche Kernelmodule geladen.

Normalerweise lädt Ubuntu beim Booten oder beim Anschluss des Geräts das dafür passende Kernelmodul. Danach kann man mit dem Gerät schon loslegen. In diesem Fall aber (und offenbar in vielen anderen Fällen auch) lud Ubuntu zusätzlich zum richtigen Modul noch einige falsche Module für ähnliche Chipsätze. Dies sorgt allerdings dafür, dass das System nun nicht weiß, welches Modul die Kontrolle über den WLAN-Stick haben soll und deswegen kam keine Verbindung zustande.

Um das Problem zu lösen, sollte man sich ersteinmal alle geladenen WLAN-Module anzeigen lassen. Da mein Stick einen Ralink-Chipsatz benutzt, lautet der Befehl

$ lsmod | grep rt

Der Hersteller des Sticks bzw. der WLAN-Karte ist unwichtig, wichtig ist nur der Chipsatz (z.B Atheros, Broadcom oder eben Ralink). Wer einen anderen Chipsatz als ich hat, muss in Erfahrung bringen, welches Präfix die entsprechenden Module haben (das ubuntuusers-Wiki ist eine gute Anlaufstelle). Die Ausgabe schaut bei mir folgendermaßen aus:

parport_pc 36959 0
parport 46458 3 parport_pc,ppdev,lp
rt2870sta 450556 0
rt2800usb 18235 0
rt2800lib 45181 1 rt2800usb
crc_ccitt 12667 2 rt2870sta,rt2800lib
rt2x00usb 20330 1 rt2800usb
rt2x00lib 49235 3 rt2800usb,rt2800lib,rt2x00usb
mac80211 294370 3 rt2800lib,rt2x00usb,rt2x00lib
cfg80211 178528 2 rt2x00lib,mac80211

Hier sind nur die Module interessant, die mit “rt” anfangen. Diese werden jetzt allesamt entladen:

$ sudo modprobe -rf rt2870sta rt2800usb rt2800lib rt2x00usb rt2x00lib

Jetzt kommt das Ausprobieren. Man muss jetzt probieren, welches Modul das richtige ist. Also mit

$ sudo modprobe <modulname>

das Modul laden, ausprobieren, ob das WLAN läuft und wenn nicht, das Modul mit

$ sudo modprobe -rf <modulname>

wieder entladen. Glücklicherweise wusste ich schon von meiner Maverick-Installation, dass das Modul rt2870sta das richtige ist. Nach dem Laden dieses Moduls funktionierte auch das WLAN wieder.

Eine Kleinigkeit wäre da noch: Damit man das Prozedere nicht bei jedem Neustart wiederholen muss, sollte man die falschen Module blacklisten. In meinen Fall reicht es, folgende Zeilen zur Datei /etc/modprobe.d/blacklist.conf hinzuzufügen:

blacklist rt2800usb
blacklist rt2800lib
blacklist rt2x00usb
blacklist rt2x00lib

Es freut mich zwar, dass das Problem so einfach zu lösen war, aber Anfänger werden dadurch abgeschreckt. Wegen der neuen Unity-Oberfläche wird Natty sowieso ein heikles Release werden. Hoffen wir, dass es nicht das Vista der Ubuntu-Versionen wird ;-)

Update 2.Juni 2011:

Wie aus den von mir gemeldeten Launchpad-Bug hervorgeht, hatte ich mit meiner Einschätzung nicht ganz recht. Alle Module, die beim Hochfahren/Einstecken des DWA 140 geladen werden, sind richtige Treiber, die für den Stick geeignet sind. rt2870sta ist ein alter Staging-Treiber, der nicht offiziell zum Kernel gehört, nicht wirklich gepflegt wird und der irgendwann mal verschwinden wird. Der neue Treiber der ihn ersetzen soll ist dieser rt2800usb, welcher auch von den Wifi-Schnittstellen des Kernels besser Gebrauch macht. Die in Natty enthaltene Version dieses Treibers funktioniert aber mit meinem Stick noch nicht, weil linux-firmware zu alt ist. rt2800usb wird also geladen, kann aber nicht arbeiten, daraufhin wird rt2870sta geladen, welcher aber auch nicht arbeiten kann, weil rt2800usb nicht entladen wurde.

Eine bessere Alternative zu dem oben vorgestellten Lösungsvorschlag ist die Benutzung von rt2800usb mit aktueller Firmware, weil dieser Treiber besser gepflegt wird. Zuerst muss rt2870sta geblacklistet werden:

 
$ echo 'blacklist rt2870sta' | sudo tee -a /etc/modprobe.d/blacklist.conf

Das Blacklisting der anderen rt-Module muss natürlich rückgängig gemacht werden. Anschließend lädt man sich die neueste Version von linux-firmware herunter und entpackt das Archiv. Einzig die Datei rt2870.bin ist interessant. Nun wird die alte Firmware umbenannt und die neue installiert:

$ cd <entpackter Ordner>
$ sudo mv /lib/firmware/rt2870.bin /lib/firmware/rt2870.bin.old
$ sudo cp rt2870.bin /lib/firmware/rt2870.bin

Nach einem Neustart sollte das drahtlose Netzwerk wieder funktionieren. Am besten, man testet beide Treiber und nutzt dann den, welcher besser läuft.

Xonotic 0.1 Preview Release

Anfang dieses Jahres entschied der Gründer des Nexuiz-Projekts, Lee Vermeulen, den Namen Nexuiz an die Firma IllFonic zu lizensieren, die ein proprietäres PS3-Spiel mit dem Namen Nexuiz herausbringen will. Dies veranlasste die Community rund um Nexuiz, den freien First-Person-Shooter zu forken und unter dem Namen Xonotic weiter zu entwickeln. Jetzt steht zu Weihnachten eine erste Preview-Version, welche auf Linux, Windows und Mac OS X läuft. Vorher musste man sich den Quelltext aus dem Versionsverwaltungssystem herunterladen und selber kompilieren; dieser Schritt entfällt somit.

Was ist neu in Xonotic 0.1 im Vergleich zu Nexuiz 2.5.2? Zum einem wäre da das neue HUD, also die ganzen Anzeigen, die während des Spiels angezeigt werden. Durch den neuen HUD-Editor lassen sie sich jetzt völlig frei anordnen, wie es dem Spieler gefällt. Man erreicht ihn mit Multiplayer->Player setup-> Enter HUD editor.

Zum anderen gibt es jetzt neue Bewegungsabläufe, wie etwa das Bunnyhopping, bei dem man wie ein Känguru vorwärts springt und somit immer mehr an Bewegung gewinnt (ähnlich dem Bunnyjumping in Warsow). Das und noch viel mehr wird in einem schönen Video erklärt, welches die Macher veröffentlicht haben:

Weiterhin gibt es neue Maps, neue Spielermodelle, neue Fadenkreuze, eine neue Waffe (der “Minenleger”) sowie die Möglichkeit, sich bei einem Multiplayer-Spiel am Server zu authentifizieren, um etwa Namenklau zu vermeiden oder um Ranglisten zu speichern.

Die Preview kommt in einem einzigen ZIP-File daher, welches über BitTorrent oder HTTP bezogen werden kann und in dem Binaries für Linux32, Linux64, Windows32, Windows64 und Mac OS X (Universal Binary) enthalten sind. Für Linux-Nutzer empfehle ich, Xonotic unter einem eigenen X-Server zu starten, um bessere Performance zu erzielen. Das Skript startet dabei die zur Architektur passende Binary:

$ startx ./xonotic-linux-sdl.sh -- :1

Xonotic und ein eventuell installiertes Nexuiz kommen sich nicht in die Quere. Wer Platz sparen will, kann die Windows- und Mac-Binaries sowie den mitgelieferten Quelltext löschen.

Abschließend kann man sagen, dass die Preview Lust auf mehr macht und zeigt, dass die Community um Nexuiz/Xonotic nicht tot ist. Forks wie dieser scheinen ja mittlerweile richtig in Mode gekommen zu sein, wenn man an OpenOffice/LibreOffice, Solaris/Illuminos oder MySQL/MariaDB denkt. Allerdings wurde Nexuiz/Xonotic schon immer durch die Community entwickelt, wodurch bei einem Fork nicht so viel Entwicklerressourcen flöten gehen. Hoffen wir, dass sich das Spiel gut entwickelt und weitere Releases bald folgen.

Tipp: Spiele in einem separaten X-Server starten

Spielen unter Linux ist ja bekanntlich kein Problem, sofern eine Linux-Version des Spieles vorliegt (oder die Windows-Version unter Wine läuft) und ein Treiber installiert ist, welcher die 3D-Fähigkeiten der Grafikkarte unterstützt.

Trotzdem läuft nicht immer alles rund. Manchmal bekommt man mitten im Spiel eine Benachrichtigung von einem Chat-Programm, dem BitTorrent-Client usw, welche sich dann lästig ins Bild schiebt und den Spielfluss stört. Vielleicht erfordert die Benachrichtigung auch eine Interaktion und man möchte kurz auf die Arbeitsfläche wechseln, was aber schwierig sein kann, wenn das Spiel im 3D-Modus läuft. Zwar geht dies manchmal über Tastenkombis, aber diese können bereits vom Spiel belegt sein und nicht funktionieren, schlimmstenfalls stürzt das Spiel sogar ab.

Die Wurzel des Problems liegt darin, dass das Spiel über der eigentlichen Arbeitsfläche gestartet und daher ein Wechsel erschwert wird. Die Lösung ist daher, Spiel und Arbeitsfläche parallel und unabhängig von einander zu starten – unter Linux ist das ganze auch problemlos möglich.

Auf einem Linux-System wird die Grafikanzeige bekanntermaßen nicht direkt vom Kernel erledigt, sondern von einem eigenen Programm, dem X-Server (der aber auch mit dem Kernel kommuniziert). Ubuntu startet standardmäßig nur eine Instanz von X, welche dann über die Tastenkombi Strg+Alt+F7 erreichbar ist. Über Strg+Alt+F1 bis Strg+Alt+F6 sind virtuelle Terminals erreichbar. Mit einem dieser Terminals kann man eine zweite X-Instanz starten, zu welcher dann über Strg+Alt+F8 gewechselt werden kann.

Dazu wechselt man zuerst in so ein virtuelles Terminal, nehmen wir mal tty1 (Strg+Alt+F1). Dort müssen wir uns erneut mit unserem Nutzernamen und Passwort anmelden. Anschließend können wird mit dem Befehl xinit ein beliebiges Programm unter unserem zweiten X-Server starten, hier exemplarisch für Nexuiz:

$ xinit nexuiz -- :1

:1 steht hier für das zweite X-Display, :0 wäre des erste. Nexuiz sollte jetzt starten, mit Strg+Alt+F7 kann man nun wieder zur graphischen Oberfläche zurückkehren und mit Strg+Alt+F8 wieder zu Nexuiz. Der zweite X-Server wird automatisch beendet, wenn Nexuiz nicht mehr läuft. Sollte sich Nexuiz aufhängen, kann man einfach wieder auf das Terminal zurückwechseln, auf welchen man den zweiten X gestartet hat, und das Programm mit Strg+C beenden. Die graphische Oberfläche bleibt in jedem Fall unbeschadet.

Dasselbe funktioniert natürlich auch mit jedem anderen graphischen Programm, z.B dem Texteditor gedit:

$ xinit gedit -- :1

Hier kann man schön den Aufbau von X sehen: Das gedit-Fenster hat keine Titelleiste, diese wird also nicht von X selbst, sondern vom Fenstermanager gezeichnet, welcher auf :0 läuft. Auch Theme-Engine, Hintergrundbild oder gar Desktopeffekte werden von eigenen Programmen dargestellt. Dies ist von den Entwicklern so gewollt, um eine bessere Vielfalt zu gewährleisten, wie das unter Linux immer so ist.

Wenn ich mich früher mit X beschäftigt habe, dann nur, weil die Auflösung nicht richtig gesetzt wurde, oder weil die Anzeige zu langsam war, was zum herum-editieren in der xorg,conf führte. Mittlerweile funktioniert sowas aber automatisch und man kann endlich vom lange gepriesenen Potenzial von X profitieren. Versucht das mal unter Windows ;-)

Getestet habe ich das ganze unter Ubuntu 10.10 64-Bit mit X-Server 1.9 und dem proprietärem NVIDIA-Treiber in der Version 260.19.06.

Edit:
Man kann das ganze natürlich noch weiter treiben und einen dritten X-Server starten, auf dem dann z.B Sauerbraten läuft:

$ xinit sauerbraten -- :2

Der dritte X-Server ist dann über Strg+Alt+F9 erreichbar. Solange der Rechner leistungsfähig genug ist, geht das ohne Probleme und beide Spiele laufen flüssig. Grundsätzlich scheint es mir so, dass Spiele auf einem separatem X einen Tick flüssiger laufen.

Flattr und Open Source: Passt das zusammen?

In letzter Zeit erfolgte eine kontroverse Diskussion über den ubuntuusers-Planeten im Bezug auf die Frage, ob in jedem Beitrag Links zum Spendendienst flattr enthalten sein dürfen.

flattr will das Spenden stark vereinfachen. Wer sich bei flattr anmeldet, zahlt eine monatliche Gebühr. Anschließend kann diese Gebühr bei Blogs und anderen Websites gespendet werden, indem man auf den flattr-Button unter dem Blogpost klickt. Am Ende des Monats wird die Summe in soviele Stücke aufgeteilt, wie man den flattr-Button geklickt hat und auf die Blogger verteilt. am Besten erklärt es folgendes Video:

Man mag von flattr halten was man will, und es gibt im Netz viele Diskussionen darüber, ob flattr sinnvoll ist oder nicht, aber das soll gar nicht Thema dieses Beitrags sein. Fakt ist, dass es im Planeten einige Blogger gibt, die flattr benutzten und den flattr-Button auch im RSS-Feed eingebunden haben, sodass er dann auch im Planeten zu sehen ist. Dies kollidiert aber nach Meinung des ubuntuusers-Teams mit den Regeln (siehe Ikhaya-Eintrag):

„Werbung für Unternehmen, kommerzielle Produkte und Waren, Dienstleistungen, politische Parteien und extremistische Gruppierungen sowie Jobgesuche und -angebote sind nicht gestattet.“

Chris, der hinter dem Blog Linux und Ich steht (und dort hervorragende Artikel schreibt), gab daraufhin bekannt, dass seine Artikel zukünftig nicht mehr im Planeten erscheinen werden. In den Kommentaren entstand eine heftige Diskussion und auch Martin (der auch hervorragende Artikel schreibt) äußerte sich in seinem Blog darüber.

Einige Leute vergleichen Blogger, die flattr einsetzen, mit kostenpflichtigen Supportern, die sich auf Kosten der Community die Taschen vollstopfen und den Grundgedanken von Open Source untergraben würden, während andere es völlig in Ordnung finden, dass sich Menschen, die freiwillig Zeit investieren, um Content für die Community zu generieren, auch dafür entlohnt werden.

Im Grunde ist es eine ähnliche Diskussion wie damals vorm Release von Ubuntu 10.04. Dort hat Canonical das Design seiner Distribution radikal überarbeitet, dieser Umstand zusammen mit der Tatsache, dass mit Ubuntu auch weitere kostenpflichtige Dienste wie Ubuntu One angeboten werden, führten zu einer ähnlichen Diskussion mit ähnlichen Argumenten. Die Kernfrage lautet eigentlich: Kann man Freiheit und Kommerz vereinen?

Damals hatte ich auch schon einen Artikel darüber geschrieben und ich bleibe bei meiner Aussage: Ja, kann man! Viel zu oft wird von Befürwortern von Open Source betont, dass freie Software nicht mit Freibier gleichzusetzen sei, sondern mit Freiheit und man damit auch Geld verdienen könne (Red Hat sei hier als Beispiel genannt).

Wegen der GPL und anderen Lizenzen kann man freie Software nicht genauso wie proprietäre Software verkaufen, weswegen meist Geld mit Zusatzleistungen verdient wird, z.B Support, oder, im Falle von Canonical, mit zusätzlichen Diensten, bei dem man gegen Geld zusätzlichen Online-Speicher oder Musik erhält.

Bei den Blogbeiträgen ist es ähnlich: Jeder darf sie lesen, und oftmals stehen sie auch unter ein freien Lizenz wie Creative Commons, dass dem Nutzer das weiterverbreiten oder verändern der Inhalte erlaubt. Mit flattr, Paypal und anderen Spendendiensten besteht zusätzlich die Möglichkeit, dem Blogger für seine Arbeit zu danken und Geld zu verteilen. Die Einnahmen durch Spenden fallen nicht immer groß aus, wenn man Glück hat, reicht es, um die Serverkosten zu decken, aber von Geld verdienen im Stile eines kommerziellen Unternehmens kann keine Rede sein.

Anders wäre es, wenn Blogger ihre Beiträge hinter einer Paywall verstecken würden, d.h dass man sie nur gegen Geld lesen kann. Dies würde denn Open Source Gedanken widersprechen, weil die Arbeit nicht an die Community, sondern nur an einen Kreis von zahlenden Kunden weitergegeben wird. In diesem Falle muss man zahlen, im Falle von flattr kann man zahlen, wenn man will. Die Artikel an sich ist immer noch frei.

Ein anderer Punkt ist die Werbung. Hier könnte man wirklich eine Kollision mit der oben zitierten Regel sehen, denn flattr ist ein kommerzieller Dienst (behält schließlich 10% der Einnahmen), und ein flattr-Link ist indirekte Werbung für flattr – die Regeln verbieten jegliche Werbung. Wenn man diese Argumentationkette zuende denkt, müsste man viel mehr verbieten als nur flattr-Links. Wenn ein Blogger z.B seine Meinung über Ubuntu One schreibt, dann lesen viele Leute den Namen Ubuntu One, den Namen eines kommerziellen Dienstes, und der Name prägt sich unbewusst im Gedächtnis ein. Und wenn man irgendwann einen Cloud-Speicherdienst sucht wird man sich vielleicht an Ubuntu One erinnern und deswegen diesen Dienst nutzen – indirekt war das also Werbung. Blogger sind nunmal Multiplikatoren, weswegen viele Firmen auch Blogger auf ihre Angebote aufmerksam machen, weil sie genau wissen, dass ein Blog eine größere Reichweite haben kann als irgendeine Werbekampagne.

Man muss sich also überlegen, wo man die Grenze zieht. Würde man den Planet-Bloggern verbieten, den Namen von kommerziellen Projekten zu nennen, dann könnte man nur noch sehr eingeschränkt bloggen. Niemand könnte mehr bloggen, wie man seine Onboard-Grafik von Intel unter Ubuntu zum laufen kriegt, ohne (Negativ-)Werbung für Intel zu machen. Und über Aktionen wie das Humble Indie Bundle darf auch niemand mehr schreiben.

Die Regel zum Verbot von Werbung ist richtig und wichtig, niemand möchte, das Forum oder Planet mit Werbung vollgespamt werden, denn das wäre eine ziemliche Zweckentfremdung. Der Zweck von ubuntuusers.de ist es, anderen Menschen zu helfen – und darum ist die Intention eines Forenpostes oder eines Blogartikels wichtig. Wenn ein Artikel dazu dient, andere Ubuntu-Nutzer bei ihren Problemen zu helfen und nütztliche Informationen weiterzuverbreiten, dann ist der Artikel gut, auch wenn darin der Markenname irgendeines Produkt vorkommt. Dient der Artikel aber dazu, Werbung für ein bestimmtes Produkt zu machen und damit Geld zu verdienen, wie etwa ein Trigami-Review, dann hat der Artikel nichts im Planeten verloren.

Viele von Freiwilligen erzeugte Inhalte im Wiki, im Forum und im Planeten haben mir und vielen weiteren Usern schon weitergeholfen. Ich halte es nicht für verkehrt, wenn die Schreiber eine einfache Möglichkeit bereitstellen, ihnen für diese Inhalte zu danken. Niemand möchte sich an der Community bereichern, sondern es soll sichergestellt werden, dass die großartige Arbeit von Freiwilligen auch in der Zukunft bestehen kann. Wenn im Gegenzug dafür am Ende des Beitrags ein Link steht, der den Namen eines kommerziellen Dienstes trägt, dann ist das akzeptabel.

Ubuntu Stack Exchange – Private Beta

Gerade habe ich eine Mail bekommen, in der ich zur Private Beta von Ubuntu Stackexchange eingeladen wurde, weil ich mich vor ein paar Wochen dort mal registriert habe. Aber vielleicht sollte ich erst erklären, was Ubuntu Stack Exchange eigentlich ist.

Vielleicht haben einige von euch bereits von StackOverflow.com gehört. StackOverflow.com ist eine Frage/Antwort-Plattform für Programmierer. Der Unterschied zu einem Forum besteht darin, dass die Fragen und die Antworten möglichst allgemein gehalten werden sollen, sodass sie leicht von anderen weiterverwendet werden. Ein Beispiel wäre (einfach mal so herausgegriffen): Is LinkedList thread-safe when I’m accessing it with offer and poll exclusively? (Java). Statt das in Foren ständig die gleichen Fragen gestellt werden, kann so eine Frage einmal beantwortet werden und derjenige, der die Antwort sucht, braucht nur noch nachzuschlagen.

Ähnlich ist es bei Ubuntu Stack Exchange. Stack Exchange ist eine Plattform, auf der jeder eine Seite ähnlich Stack Overflow erstellen kann, und nun hat das eben jemand für Ubuntu gemacht. Auch bei Ubuntu und Linux im Allgemeinen tauchen in Foren immer wieder dieselben Fragen auf, ob man denn auch auf Windows-Partitionen zugreifen kann, ob Spiele funktionieren, ob Linux wirklich kostenlos ist (ja, ich weiß, Freiheit, nicht Freibier), ob man unter GNOME auch KDE-Programme verwenden kann und so weiter. Oftmals wird auf eine FAQ verwiesen, woraus man sich die Antwort erschließen könne. Ubuntu Stack Exchange ist im Prinzip genau das: Eine ständig sich selbst erweiternde FAQ. Beispiele für Fragen wären etwa How can I install a package without root access? oder How do I move the window buttons back to the right for all users?

Fragen können verschlagwortet, bewertet und natürlich beantwortet werden. Aktive User bekommen auch sogenannte Badges, die man in seinem Nutzerprofil sammeln kann, je nach der Aktivität auf der Seite. Es gibt auch noch eine Meta-Seite, auf der über Ubuntu Stack Exchange selbst Fragen gestellt werden können.

Um bei Ubuntu Stack Exchange mitzumachen, braucht man nur eine OpenID. Wer ein WordPress.com-Blog betreibt, der kann einfach seine Blog-URL nehmen. Auch Launchpad-Accounts besitzen eine OpenID. Ansonsten kann man sich bei einem beliebigen OpenID-Provider eine erstellen. Momentan befindet sich Ubuntu Stack Exchange noch in einer geschlossenen Beta, die offene Beta wird am 4. August beginnen.

Insgesamt gibt es schon rund 100 Fragen zu Ubuntu. Die Zahl wird sich sicherlich erhöhen, wenn die Public Beta startet, denn zur Zeit sind neben mir nur 593 weitere User registriert.

Alles in allem halte ich Ubuntu Stack Exchange für eine sinnvolle Ergänzung zu den bisherigen Hilfe-Ressourcen, wenn man auch langsam den Überblick verlieren kann. Vielleicht machen wir einfach eine Q&A-Seite, auf der erklärt wird, wofür die einzelnen Hilfeservices gut sind ;-). Jedenfalls sollten wir mal abwarten, wie sich das ganze entwickelt.

Tutorial: Linux leicht gemacht – Paketverwaltung, unfreie Software und die Verzeichnisstruktur

Dies ist der zweite Teil der Serie Linux leicht gemacht. Der erste Teil ist bei JUICEDBlog verfügbar.

Die Paketverwaltung
Nachdem man Ubuntu installiert hat, will man bestimmt weitere Software installieren. Dies funktioniert unter Linux ein wenig anders. Unter Windows ist es üblich, ein Programm von einer Webseite herunterzuladen. Man erhält dann meist eine .exe-Datei, die ein Installationsprogramm enthält, welches das eigentliche Programm dann an die richtigen Stellen im System verteilt.

Unter Linux geht so etwas auch, allerdings wird das selten gemacht. Für gewöhnlich startet man einfach ein Programm, das Paketverwaltung heißt, gibt den Programmnamen ein und klickt auf Installieren. Das Entfernen geht genauso, nur, dass man eben auf Entfernen klickt.

Dabei bezieht die Paketverwaltung die Software aus einer Paketquelle. Eine Paketquelle ist eine Softwaresammlung auf einem Server oder einer CD. Die Paketquelle stellt eine Liste von Programmen bereit, außerdem bietet sie diese Programme zum Download an. Die Paketverwaltung schaut also nach, ob ein Programm mit diesem Namen existiert, und lädt es von der Paketquelle automatisch herunter.

Unter Ubuntu ist normalerweise nur eine Standard-Paketquelle aktiviert, die von Canonical und der Ubuntu-Community betrieben wird. Dort findet sich alle mögliche Software, wie Firefox, Thunderbird, OpenOffice oder GIMP. Der Vorteil ist, dass man nicht erst nach einem Programm suchen muss, sondern es durch Eingabe des Namens direkt von einer vertrauenswürdigen, sicheren Quelle herunterladen kann. Kennt man den Namen nicht, so kann man in den Kategorien stöbern. Updates werden so auch erleichtert: Die Paketverwaltung informiert einen darüber, ob eine neue Version einer Software verfügbar ist und bietet ein Update an (System->Systemverwaltung->Aktualisierungsverwaltung). Das klappt für Betriebssystem und Programme. Das Konzept ist mit dem des App Stores des iPhones vergleichbar.

Möchte man Software installieren, die nicht in den offiziellen Quellen vorhanden ist, so kann man eine weitere Quelle einbinden. Allerdings sollte man das nur machen, wenn es absolut notwendig ist. Die Fremdquelle kann die Sicherheit und die Stabilität des Systems beeinträchtigen. Einige Quellen werden von normalen Nutzern betrieben, meist ohne böse Absicht. Es ist jedoch kein Problem, auch Schadsoftware darüber zu verteilen. Ist ersichtlich, dass die Paketquelle von vertrauenswürdigen Leuten betrieben wird, z.B von einer Firma wie Oracle im Beispiel unten, so ist das OK. Die Stabilität ist in Gefahr, wenn die Quelle Updates für Systemkomponenten enthält wie den Kernel oder den X-Server (die Software, die unter Linux für die Grafik zuständig ist. Ist sie kaputt -> kein Bild). Dann kann es sein, dass das System nicht mehr startet, weswegen man auf solche Basteleien lieber verzichten sollte. Ein nette Geschichte zu dem Thema ist in diesem Ikhaya-Artikel zu finden.

Möchte man nun so eine Quelle hinzufügen, so benötigt man die APT-Zeile, die es auf der Webseite der Quelle gibt. Beispiel für die Virtualisierungslösung VirtualBox:

deb http://download.virtualbox.org/virtualbox/debian lucid non-free

Das “lucid” am Ende gibt an, dass die Quelle für die aktuelle Ubuntu-Version, 10.4 Lucid Lynx gedacht ist. “non-free” gibt den Bereich an, in diesem Fall ist es der unfreie Bereich, da diese Quelle die unfreie Version von VirtualBox anbietet.

Zusätzlich sollte man auch den GnuPG-Schlüssel der Quelle hinzufügen. Dieser stellt die Identität der Quelle und dessen Software sicher. Wie man das macht, steht meist auf der Webseite der Paketquelle. Bei Paketquellen von der Entwickler-Plattform Launchpad wird der Schlüssel automatisch importiert.

Proprietäre Software: Multimedia-Codecs und Treiber

Viele Linux-Software ist freie Software, aber es gibt natürlich auch proprietäre Programme. Nicht jeder Entwickler ist gezwungen, sein Programm unter eine Open Source Lizenz zu stellen, nur weil er für Linux entwickelt. Manche Software ist unter Umständen von Patenten betroffen, so dass ihr Einsatz in einigen Ländern möglicherweise nicht ganz legal ist. Dies ist beispielsweise der MP3-Codec. Natürlich können auch MP3s unter Linux angehört werden. Da man für Linux normalerweise kein Geld zahlt, zahlt man logischerweise auch nicht irgendwelche Patentgebühren mit, wie das bei kostenpflichtiger Software der Fall sein kann.

Unter Ubuntu gibt es zwei Paketquellen, die proprietäre oder von Patenten belastete Software enthält. Das wäre einmal die Multiverse und einmal die Partner-Quelle. Unter System->Systemverwaltung->Software-Paketquellen muss man unter dem Tab Software von Ubuntu die Option Urheberrechtlich eingeschränkte Software (multiverse) aktivieren. Die Partner-Quelle befindet sich unter Andere Software. Nach einem Neueinlesen der Quellen kann mit der Installation begonnen werden.

Die Faulen können sich jetzt einfach das Meta-Paket

  • ubuntu-restricted-extras

installieren. Dann werden die ganzen Codecs, Flash usw. auf einmal installiert. Wer jedoch genau festlegen will, was er braucht, der kann sich die Pakete auch einzelnen installieren:

  • adobe-flashplugin oder flashplugin-installer: Der Flash-Player, wie man ihn von Windows her kennt.
  • sun-java6-jre: Die offizielle Java-Runtime von Sun/Oracle.
  • openjdk-jre: Auch eine Java-Runtime, allerdings Open Source. Funktioniert genauso wie obige, manche Applets und Programme machen aber Probleme.
  • acroread: Der Adobe Reader. Ubuntu bringt mit Evince bereits einen PDF-Reader mit, für komplexe PDFs kann man den Adobe-Reader verwenden.
  • gstreamer0.10-fluendo-plugins-mp3-partner: Codec, um sich MP3s anhören zu können. Legal, weil von Canonical lizenziert.
  • skype: Die bekannte VoIP-Software.
  • unrar: RAR-Dateien entpacken.

Falls man irgendeinen Codec vergessen hat, ist dies auch nicht weiter schlimm: Falls der Video-Player Totem eine Datei abspielen soll, für die er keinen Codec hat, so bietet er die Installation automatisch an.

Nun zu den Treibern. Die meisten Treiber sind Open Source. Diese sind oft Bestandteil des Kernels und werden bei Ubuntu mitgeliefert. Die Hardware läuft „out-of-the-box“, also gleich nach der Installation. Für manche Hardware, besonders Grafikkarten, müssen proprietäre Treiber installiert werden.

Benutzer von ATI-Karten haben drei Treiber zur Verfügung: radeon (frei), radeonhd (frei) und fglrx (unfrei). Für Nvidia-Benutzer gibt es ebenfalls drei Treiber: nv (frei), nouveau (frei) und nvidia (unfrei). Normalerweise wird ein freier Treiber vorinstalliert. Leider sind diese Treiber oft langsamer als die unfreien, hersteller-eigenen Treiber, oder man kann Funktionen wie 3D ohne den unfreien Treiber gar nicht nutzen.

Um auf einen unfreien Treiber umzustellen, gibt es unter Ubuntu ein extra Programm. Dies öffnet man mit System->Systemverwaltung>Hardware-Treiber. Dort wird dann angezeigt, welche proprietären Treiber für den Computer verfügbar sind, außerdem kann man sich die gleich installieren. Dabei wird die Paketverwaltung genutzt.

Was bedeutet /media oder /usr? – die Verzeichnisstruktur

Unter Windows ist man die Laufwerksbuchstaben gewohnt. Die Systempartition befindet sich unter C:\, das Diskettenlaufwerk unter A:\ und das CD-ROM-Laufwerk unter D:\. Auch externe Festplatten und USB-Sticks kriegen einen Buchstaben zugewiesen.

Unter Linux funktioniert das anders. Dort gibt es nur einen einzigen Verzeichnisbaum mit der Wurzel “/”. “/” ist die Systempartition. Weitere Partitionen können als Ordner in den Verzeichnisbaum eingehängt werden. Legt man eine CD ein, findet sich der Inhalt unter /media/cdrom0 wieder (manchmal wird cdrom0 auch durch den Namen der CD ersetzt). Es ist auch möglich, Datenträger von entfernten Rechnern (FTP z.B) als Ordner einzuhängen. All das mag einen Windows-User erst verwirren, so waren früher Ordner doch immer Bestandteil eines Laufwerks, und es fing auch nie irgendwo ein neues Laufwerk an.

Vorteil ist, dass man sich seine Partitionierung komplett selbst gestalten kann. Viele Leute legen ihre eigenen Daten auf einer extra Partition ab, damit sie nach einer Neuinstallation noch vorhanden sind. Unter Windows gibt es die “Eigenen Dateien”. Diese liegen für gewöhnlich irgendwo unter C:\. Erstellt man nun eine neue Partition, z.B unter E:\ für seine Dateien, dann speichern Programme die Dateien immer noch in den “Eigenen Dateien”.

Linux-User haben das Problem nicht. Der persönliche Ordner liegt unter /home/Benutzername. Möchte man sein Home-Verzeichnis nun auf einer anderen Partition haben, so erstellt man bei der Installation eine zusätzliche Partition und gibt als “Einhängepunkt” /home an. Dadurch landet alles, was in den Ordnen unter /home gespeichert wird, automatisch auf der neuen Partition. Es ist sogar möglich, dies nach der Installation zu machen. Das geht deshalb, weil sich aus Sicht der Programme nichts ändert. Sie greifen einfach auf /home zu und bekommen ihre Daten. Auf welcher Partition diese liegen, darum müssen sie sich nicht kümmern.

Ich habe mit /media und /home schon zwei Standard-Verzeichnisse aufgeführt. Es gibt aber noch weitere, diese sind mit dem File Hierarchy Standard für alle Distributionen definiert:

  • /boot: enthält zum booten benötigte Dateien
  • /bin und /sbin: enthalten Programme, die wichtige Aufgaben übernehmen, wie cp für das Kopieren einer Datei oder shutdown für das Herunterfahren
  • /dev: enthält Gerätedateien, über die Geräte angesprochen werden können
  • /etc: enthält Einstellungen und Konfigurationsdateien
  • /lib: enthält essentielle Bibliotheken
  • /lost+found: ist bei jeder Linux-Partition vorhanden, enthält Dateifragmente, die bei einer Überprüfung/Reparatur des Dateisystems gefunden wurden
  • /mnt: temporär eingehängte Geräte
  • /tmp: Temporäre Dateien
  • /opt: optionale Software, die nicht mit der Paketverwaltung installiert wurde
  • /proc und /sys enthalten Dateien, die laufende Prozesse repräsentieren und Schnittstellen zu Kernelfunktionen
  • /root: Home-Verzeichnis für den Benutzer root, dem Superuser unter Linux
  • /usr: enthält durch die Paketverwaltung installierte Programme und Bibliotheken
  • /var: enthält Protokolle und Daten von Diensten

Der letzte Teil der Serie ist wieder bei JUICEDBlog zu lesen.

MonoDevelop 2.4 und Mono 2.6 unter Ubuntu 10.04 LTS installieren

Die Mono-Entwickler haben MonoDevelop in der Version 2.4 freigegeben. Mono ist die Open-Source-Variante von .NET mit dem Ziel, die Programmiersprache C# sowie die .NET-Klassenbibliotheken auch unter Linux zugänglich zu machen. MonoDevelop ist damit das Gegenstück zu Visual Studio.

Die neue Version 2.4 bringt viele Verbesserungen mit sich und schließt einige Bugs (mal sehen, ob Stetic endlich mit Gettext zusammenarbeitet). Deshalb wollte ich auf die neue Version updaten, leider gibt es keine Pakete für Ubuntu, sondern nur für SLED/SLES, OpenSuse sowie Windows und OS X. Das wäre ja kein Problem gewesen, schließlich könnte man sich auch das Programm aus den Quellen bauen und installieren. MonoDevelop 2.4 benötigt aber Mono 2.6, in Ubuntu ist aber nur Mono 2.4 enthalten. Man müsste sich also alle Mono-Bibliotheken einzeln aus den Sources bauen, worauf ich nicht wirklich Lust hatte.

Glücklicherweise bin ich auf das Projekt badgerports gestoßen. Dieses Projekt hat sich zum Ziel gemacht, aktuelle Mono-Pakete für die jeweilige LTS-Version von Ubuntu zugänglich zu machen. badgerports wird vom Debian- und Ubuntu-Maintainer Jo Shields betrieben, hier findet man seine Launchpad-Seite.

Der Eintrag für die sources.list lautet:

deb http://badgerports.org lucid main #Badgerports

Nun muss noch der Schlüssel für die Quelle eingespielt werden:

$ wget http://badgerports.org/directhex.ppa.asc
$ sudo apt-key add directhex.ppa.asc
$ rm directhex.ppa.asc

Anschließend müssen die Paketquellen neu eingelesen werden:

$ sudo apt-get update

Danach muss man die Aktualisierungsverwaltung starten, welche uns gleich mit folgender Warnung begrüßt:

Das ist deshalb so, weil Mono eine grundlegende Bibliothek von Ubuntu ist und viele Ubuntu-Programme darauf aufbauen. Soweit ich weiß wird kein normales apt-get upgrade ausgeführt. sondern ein apt-get dist-upgrade, es werden also auch komplett neue Pakete installiert, sowie auch vorhandene entfernt. Darum sollte man sich genau überlegen, ob man wirklich Mono 2.6 installieren will. Beim Erscheinen und Update auf Ubuntu 10.10 sollte man auch im Hintergrund behalten, das man unoffizielle Pakete benutzt, und ggf. wieder auf die offiziellen Pakete downgraden.

Entschließt man sich zur Installation, werden die Pakete heruntergeladen und installiert.

Danach hat man MonoDevelop 2.4 und Mono 2.6 auf dem Rechner.

Über die Balance von Stabilität und Aktualität in Ubuntu

Die Frage, ob stabile, aber ältere oder neuere, aber instabilere Pakete ausgeliefert werden sollen, beantwortet jede Distribution unterschiedlich. Bei Debian Stable kommt die Distribution raus, wenn sie fertig ist, und dann werden nur noch Bugfixes eingespielt, und das jahrelang. Bei Arch Linux hingegen wird auf einen Rolling-Release-Zyklus gesetzt, die Pakete werden ständig auf die jeweils aktuellste Version gehoben.

Ubuntu hingegen hat bisher einen Mittelweg praktiziert: Alle sechs Monate kommt eine neue Version raus, die zugehörigen Paketquellen werden eingefroren und wie bei Debian nur noch mit Bugfixes und Sicherheitsupdates versorgt, neuere Major-Releases der Programme gibt es erst in der nächsten Version. Bisher hat dies meiner Meinung nach recht gut funktioniert, wer tortzdem aktuellere Pakete wollte, der konnte Fremquellen benutzen.

Aber mittlerweile läuft da einiges schief. Beim aktuellen Release (das auch noch eine LTS ist) wurde etwa das Videoschnittprogramm PiTiVi integriert, dass sich immernoch in Entwicklung befindet und einige notwendige Features nicht beherrscht, teilweise noch viele Bugs hat. Hier gäbe es mit OpenShot eine ausgereiftere und stabilere Alternative. Dann wird KMS sowie Nouveau verwendet, ersteres führt bei mir zu einer langsamen Performace bei 3D, nach der Deaktivierung funzt die Performance wieder, dafür funktioniert GDM nicht mehr richtig (Blackscreen). Korrekterweise kommt Kernel 2.6.32 zum Einsatz, dafür werden Treiber und Features aus 2.6.33 zurückportiert. GIMP, ein erprobtes und zuverlässiges Programm, wird einfach entfernt (aus der Standardinstallation). Seit Lucid befindet sich auch Chromium in den Quellen, ein durchaus guter und vernünftiger Browser, leider im Beta-Status, die Version in den Paketquellen wird auch nicht geupdatet.

Jetzt lese ich hier bei OMG! Ubuntu!, dass F-Spot in 10.10 entfernt und stattdessen Shotwell eingesetzt werden soll. Über Shotwell habe ich schon einmal geschrieben, mir persönlich hat die Software gefallen. Allerdings ist die Software in einem noch frühen Stadium, so werden z.B keine PNGs unterstützt und es nicht möglich, Tags in die Metadaten zu schreiben, wodurch ein Wechsel zu einem anderen Programm mehr als schwierig wird. Gegen F-Spot spricht eigentlich nur die langsame Performance, was aber in Lucid bei mir besser geworden ist – könnte eine Nebenwirkung des Grafikkarten-Problems sein.

Ich bin der Meinung, dass man diese Strategie überdenken sollte: Ein Rolling-Release-Zyklus wäre wohl nicht so ideal, da Ubuntu ja halbwegs stabil und für den Endanwender geeignet sein will, und eine Debian-ähnliche Strategie würde die Distribution nicht interessant genug machen. Grundsätzlich finde ich die 6-Monate-Strategie gut, aber dann sollte man auch wirklich stabile Versionen in die Paketquellen legen und innerhalb der Support-Zeitraums aktualisieren, Aber Beta-Versionen in eine LTS zu integrieren und dann 3 Jahre lang diese Beta zu benutzen, ist quatsch. Die Entwickler des Programms werden wohl kaum diese Beta mit Sicherheitsupdates versorgen, wenn es schon eine neue Beta, RC oder vielleicht schon eine Final gibt.

Warum nicht die Backports besser ausnutzen? In die normalen Quellen kommt die jeweils aktuelle finale Version, während in den Backports die neuesten Versionen von beliebten Programmen bereitgehalten werden (so wollen viele Nutzer eine neue Firefox-Version benutzen, aber nicht aufs nächste Release warten). So könnte der Nutzer das Stabilitäts-Aktualitäts-Mischungsverhältnis ein wenig selbst justieren.

Videos umwandeln mit Transmageddon

Ich bin ja ein Fan von den kleinen Programmen, die genau eine Aufgabe erfüllen und diese dann sehr gut. Eines von diesen war Sound Converter, von dem ich ja schon geschrieben habe. Ein weiteres ist Transmageddon. Es setzt auf GStreamer auf und kann daher alle Container-, Video- und Audio-Formate, die GStreamer auch kann. Transmageddon kann man sich entweder über das Software Center…

…oder einfach über die Kommandozeile installieren:

$ sudo apt-get install transmageddon

Anschließend kann das Programm über Anwendungen->Unterhaltungsmedien->Transmageddon Video-Umwandler gestartet werden.

Transmageddon verügt bereits über Voreinstellungen, man muss nur das Zielgerät auswählen, die Einstellungen werden automatisch gesetzt. Manuell gehts natürlich auch, hier hilft Transmageddon indem es nur Formate auswählbar macht, die auch zum gewählten Container passen. Wer will, kann das Video noch drehen oder spiegeln, ansonsten landen nach einem Klick auf Umwandeln die fertige Datei im selben Verzeichnis wie die Quelldatei.

Performance der ATI X1650 unter Lucid auf Karmic-Niveau bringen

Im letzten Artikel schrieb ich ja schon, dass ich aktuell – wieder – Probleme mit meiner ATI Grafikkarte, einer Radeon X1650, unter Lucid habe. Grund dafür, so habe ich herausgefunden, ist offenbar KMS, also Kernel Mode Setting. Dadurch kann die Grafikkarte schon beim Booten eingestellt werden, was auch diesen schönen Plymouth-Screen in hoher Auflösung ermöglicht. Leider sorgt dies für eine niedrigere Performance bei meiner Grafik.

Wer wie ich mit Problemen zu kämpfen hat, der sollte KMS vielleicht auch mal probeweise abschalten. Wenn ihr den radeon-Treiber benutzt, dann müsst ihr einfach die Datei /etc/modprobe.d/radeon-kms.conf bearbeiten.

$ gksudo gedit /etc/modprobe.d/radeon-kms.conf

Dort die Zeile

options radeon modeset=1

durch

options radeon modeset=0

ersetzen. Dann muss noch das Initial Ram Filesystem neu erstellt werden:

$ sudo update-initramfs -u

Jetzt einfach mal rebooten und dann am besten gleich ein 3D-Spiel, z.B einen Shooter, starten, um die Performance zu testen. Bei mir läuft nun alles auf Karmic-Niveau. Leider gibt es einen Haken bei der Sache: GDM startet mit einem Blackscreen, man muss den Bildschirm ein- und wieder ausschalten, um ein Bild zu kriegen. Weiterhin läuft nun Plymouth in niedriger Auflösung, was natürlich weniger schön aussieht. So hat man die Wahl zwischem schicken Bootscreen und schneller 3D-Grafik…

Edit: Der Trick mit dem Bildschirm funktioniert nur sporadisch, daher hab ich KMS wieder aktiviert. Dann halt kein 3D, lieber stabiles einloggen.