Getaggt mit Anleitungen

Aktuellen Autobuild von Xonotic über die Paketverwaltung installieren

Über den First-Person-Shooter Xonotic berichtete ich ja bereits. Seitdem hat sich vieles getan, es wurden mit 0.5 und 0.6 weitere Releases veröffentlicht. Viele neue Features kamen hinzu, so kann man jetzt Flug- und Fahrzeuge steuern, es gibt neue Waffen und Maps, neue Game-Modi, neue Bewegungssteuerung, Online-Statistiken für Spieler sowie Client-Side networked players, was die Latenzen bei Netzwerk-Spielen verringern soll.

Wer nun Ubuntu-User ist und das Spiel in der aktuellen Version installieren will, der wird natürlich erst mal zur Paketverwaltung greifen. Mit PlayDeb gibt es auch die passende Paketquelle für. Jedoch befindet sich Xonotic in aktiver Entwicklung, häufig gibt es neue Funktionen, die ausprobiert werden wollen, sodass auf den meisten Servern ein aktueller Snapshot aus dem Development-Repository läuft. Daher ist es ratsam, dieselbe Version einzusetzen, schon um Kompatibilitätsprobleme zu vermeiden. Doch das dauernde Kompilieren des Quellcodes kostet Zeit und nervt irgendwann.

Daher gibt es die Autobuilds, welche das Kompilieren überflüssig machen: Die Xonotic-Server selbst kompilieren den aktuellen Quellcode aus dem Development-Repository für verschiedene Architekturen und bieten das Ergebnis zum Download an. Der User divVerent hat dazu ein Skript geschrieben, welches diese Dateien über rsync herunterlädt. Somit spart man sich Zeit, die für das Kompilieren draufgeht, und hat trotzdem eine tagesaktuelle Version. Zudem lädt rsync nur die Dateien herunter, die sich zur Version auf der Festplatte geändert haben, sodass ein Update blitzschnell vonstatten geht.

Nun gibt es da noch einen Schönheitsfehler: Die Paketverwaltung kommt nicht zum Zug, man muss sich Startskript und Menüeinträge selbst erstellen und alle Dateien an den richtigen Ort kopieren. Also habe ich schnell ein Debian-Paket (.deb) gebaut, welches dies erledigt.

Das Paket installiert folgende Dateien:

  • /usr/games/xonotic: Skript zum Starten des Spiels
  • /usr/local/share/applications/xonotic.desktop: Dazugehöriger Menüeintrag
  • /usr/local/share/pixmaps/xonotic.svg: Icon von Xonotic
  • /usr/local/sbin/update-xonotic: Das eigentliche Update-Skript von divVerent, angepasst von mir, damit es die Dateien nach /opt/xonotic/ installiert.

Nach der Installation wird automatisch update-xonotic aufgerufen, hier wird das eigentliche Spiel das erste Mal heruntergeladen; dies kann, jede nach Internet-Verbindung, ziemlich lange dauern. Das Update erfolgt jedoch wesentlich schneller, einfach

$ sudo update-xonotic

aufrufen und rsync lädt die geänderten Dateien herunter. Wenn das Paket deinstalliert wird, dann wird das Verzeichnis /opt/xonotic und die anderen Dateien wieder entfernt. Im Grunde funktioniert das Paket nicht anders wie flashplugin-installer, ttf-mscorefonts-installer oder nautilus-dropbox, nur dass dort das eigentliche Programm aus lizenzrechtlichen Gründen nicht dem Paket beiliegt, sondern von der Hersteller-Website heruntergeladen wird.

Das Paket funktioniert mit x86 und x86_64, weil für diese Architekturen Autobuilds gebaut werden. Die verwendete Architektur wird vom Skript automatisch erkannt.

Viel Spaß damit.

[Download]

Getaggt mit , , , ,

Android 2.3.3 auf dem iPod touch 1G installieren mit Ubuntu

Ich mag es nicht, alte, aber funktionierende Geräte wegzuwerfen. Für meinen drei Jahre alten iPod touch hat Apple den Support schon seit einiger Zeit eingestellt, iOS 4 gab es nicht und iOS 5 wird es erst recht nicht geben. Für die 3er-Serie gibt es auch keine Sicherheitsupdates mehr, was auch den Browser Safari einschließt, der in dieser Version noch zahlreiche bekannte Sicherheitslücken hat.

Deswegen habe ich entschieden, die Lebenszeit des iPods mit Android ein wenig zu verlängern. Vielleicht werde ich mir ja in Zukunft mal ein “echtes” Android-Gerät kaufen, sodass ich Android hier auf dem iPod touch gleich mal testen kann. Jetzt werden einige vielleicht sagen: Android? Auf einem Apple-Gerät? Geht das? Klar geht das. Die Jailbreak-Szene hat mehr zu bieten als nur einen alternativen App Store und damit Apps, die Apple nicht in den Kram passen, es ist auch möglich, gleich ein anderes Betriebssystem zu installieren. Was bei konventionellen Computern geht, sollte auch bei mobilen Geräten machbar sein, denn selbstverständlich darf jeder auf seinem Gerät das Betriebssystem seiner Wahl installieren.

Da Apple natürlich keine Möglichkeit anbietet, ein alternatives Betriebssystem zu installieren, bedarf es einiger Tricks. Glücklicherweise haben einige Hacker OpeniBoot entwickelt, eine freier Bootmanager ähnlich wie GRUB oder LILO, nur eben für iOS-Geräte. Man kann dann ein beliebiges System parallel zu iOS installieren und beim Start zwischen diesen wählen, in meinen Fall ist das zweit-OS eben Android. Aber allein das reicht noch nicht aus. Ein Vanilla-Android bringt keine Treiber für meinen iPod touch mit, denn normalerweise erledigen das die Hersteller der Android-Geräte, aber Apple wird wohl kaum Treiber für Android programmieren ;-) . Auch hier gibt es jedoch mit iDroid einen Port von Android, der auf mobiler Apple-Hardware läuft, nämlich auf dem iPod touch der ersten Generation sowie dem iPhone der ersten und zweiten Generation.

Die Installation von OpeniBoot und iDroid ist mittlerweile recht einfach. OpeniBoot muss man über das Terminal per USB installieren, die iDroid-Installation selbst erfolgt über Bootlace unter iOS, welches man über Cydia installieren kann – ihr seht schon, das Gerät muss natürlich jailbroken sein, aber man benötigt einen Jailbreak auf Kernel-Ebene wie etwa redsn0w, andere Jailbreaks können funktionieren, müssen aber nicht (jailbreakme oder Spirit funktionieren etwa nicht). Bootlace überprüft vorher, ob der Jailbreak mit iDroid kompatibel ist. Theoretisch sollte die Installation fehlerfrei ablaufen, trotzdem sollte man ein Backup der gespeicherten Daten machen, denn es kann sein, dass etwas nicht funktioniert, dann bleibt nur noch das Wiederherstellen über iTunes. Ausprobieren also wie immer auf eigenen Gefahr.

OpeniBoot könnt ihr hier herunterladen (openiboot.img3), das nötige Installationstool bekommt ihr hier – achtet darauf, die richtige Architektur (x86 oder x86_64) runterzuladen. Anschließend entpackt das Archiv und schmeißt alles in den selben Ordner, sodass die Dateien openiboot.img3, loadibec und oibc nebeneinander liegen.

Danach müsst ihr euer Gerät in den Recovery-Modus versetzen. Dazu

  • das Gerät ausschalten
  • den Home-Button gedrückt halten
  • während der Home-Button gedrückt ist das Gerät per USB anschließen
  • warten, bis das iTunes-Symbol auf dem Display erscheint

Anschließend eine Rootshell (sudo -s) in dem Verzeichnis öffnen, in dem ihr die OpeniBoot-Dateien abgelegt habt. Nach der Installation von eventuell fehlenden Abhängigkeiten könnt ihr OpeniBoot in den Arbeitsspeicher des Geräts laden.

# apt-get install libusb-1.0-0 libusb-1.0-0-dev libreadline6-dev readline-common libreadline6 libreadline-dev
# ./loadibec openiboot.img3

Jetzt sollte OpeniBoot auf dem Gerät gestartet werden. Nun mit dem Power-Button “Console” auswählen und mit dem Home-Button bestätigen, was dazu führt, das auf dem Gerätebildschirm viel Text zu sehen ist. Nach Abschluss des Ladevorgangs seht ihr ein ASCII-Art:

 / _ \ _ __   ___ _ __ (_) __ )  ___   ___ | |_ 
| | | | '_ \ / _ \ '_ \| |  _ \ / _ \ / _ \| __|
| |_| | |_) |  __/ | | | | |_) | (_) | (_) | |_ 
 \___/| .__/ \___|_| |_|_|____/ \___/ \___/ \__|
      |_|

Die Console ist damit einsatzbereit. Sie wird aber nicht vom iPod touch aus bedient (gibt ja keine Bildschirmtastatur), sondern vom Terminal auf eurem Ubuntu-Rechner, indem ihr folgendes Kommando ausführt:
# ./oibc

Im Terminal wird jetzt dasselbe angezeigt wie auf dem Display des iPods, ähnlich einer SSH-Sitzung. Die eigentliche Installation wird über den Befehl
install

eingeleitet. wenn die Installation fertig ist, wird das Gerät neu gestartet durch den Befehl
reboot

OpeniBoot ist jetzt permanent installiert. Die Option “Android” existiert zwar schon, funktioniert aber noch nicht, schließlich ist Android noch gar nicht installiert. Dazu erst wieder iOS booten, Cydia öffnen und das Programm “Bootlace” installieren. Beim ersten Start von Bootlace wird das Gerät überprüft und ein Kernel Patch angewandt. Danach lässt sich im Tab “iDroid” Android in der Version 2.3.3 installieren (iDroid 11.04), updaten und auch wieder deinstallieren. Auch OpeniBoot kann über Bootlace konfiguriert werden, wie das Default-OS und die Wartezeit bis dieses gebootet wird. Die Installation/Deinstallation von OpeniBoot ist hier auch möglich, funktioniert bei mir aber nicht, weswegen ich den Weg über Terminal genommen habe. Außerdem wird auf diesem Weg automatisch eine Datei “norbackup.dump” erstellt, die beim Herstellen des Original-Bootloaders vielleicht nützlich sein könnte.

Endlich kann Android gebootet werden; der erste Start dauert etwas lang. Zu iOS zurück gelangt man, indem man Power- und Home-Button für etwa 2 Sekunden lang gemeinsam drückt und im darauf erscheinenden Fenster “Ausschalten” ausgewählt, danach kann man in OpeniBoot wieder iOS booten.

Was bringt da ganze? Nun, im gegenwärtigen Zustand ist iDroid eher als ein Proof-of-Concept zu verstehen, denn richtig Android nutzen geht damit nicht. So sind aus rechtlichen Gründen die Google Anwendungen nicht mit dabei, darunter der Market. Es bringt auch nichts, von anderen Geräten oder irgendwelchen Quellen im Internet den Market nachzuinstallieren, denn Google lässt nur autorisierte Geräte von Herstellern wie HTC, Motorola, Samsung etc in den Market. Einzelne *.apk Dateien lassen sich aber installieren. Die Geschwindigkeit ist auch etwas langsam, womöglich wegen der noch unreifen Unterstützung der Hardware. Außerdem fehlt es dem iPod touch an Knöpfen wie dem Menü- oder Zurück-Button, die aber durch On-Screen-Buttons in der Statusleiste ersetzt werden. Auch das Android-Plugin für Eclipse erkennt ein iDroid-Gerät sofern man das USB-Debugging aktiviert, eine simple Hello-World-Anwendung ließ sich aber nicht auf das Gerät übertragen und dort starten.

Positiv ist aber, das die neuste Android-Version 2.3.3 zum Einsatz kommt. Viele native Android-Geräte kommen mit 2.2, 2.1, oder gar noch älteren Versionen wie 1.6 daher, Updates vom Gerätehersteller gibt es nicht, also ein ähnliches Problem wie bei Apple.

Wie kriegt mans wieder runter? iDroid lässt sich wie bereits erwähnt über Bootlace deinstallieren. Für OpeniBoot muss man das Gerät wieder per USB an den Rechner anschließen und in OpeniBoot den Konsolen-Modus starten. Danach sind nur noch drei Befehle im Terminal auf dem Ubuntu-Rechner notwendig:

# ./oibc
uninstall
reboot

Fazit: Noch muss man ein bisschen warten, bis iDroid schneller und der Market nutzbar wird, aber auch jetzt kann man damit seinen Spaß haben. Für einen wirklich produktiven Einsatz muss natürlich früher oder später ein natives Android-Gerät her, zum testen taugt es aber, und bisher gefällt mir Android ganz gut, vor allem wegen der höheren Freiheit des Nutzers.

Getaggt mit , , , ,

Aktuelles Eclipse selber paketieren

Seit meine Erinnerung zurückreicht wurde Eclipse von den Debian- und Ubuntu-Maintainern immer recht stiefmütterlich behandelt. Die sowohl in Ubuntu Natty als auch in Debian Sid verfügbare Version ist 3.5, obwohl seit Juni 2010 3.6 verfügbar ist. Externe Paketquellen habe ich bisher nicht gefunden (außer die hier, Eclipse stürzt hier nach dem Start ab und sie ist auch nicht für Natty gedacht), offensichtlich scheinen wenig Leute Interesse daran zu haben, Eclipse zu paketieren.

Ein Grund für die zögerliche Paketierung könnte sein, dass Eclipse ja bereits eine interne Paketverwaltung mitbringt, über die Plugins mittels Paketquellen installiert werden können. Sogar auf dem App-Store-Zug sind die Entwickler aufgesprungen. Hier stellt sich die Frage, ob man Plugins auch mitpaketieren sollte, was von Debian und Ubuntu jedenfalls für beliebte Plugins gemacht wird. Da es nicht oder nur mit großem Aufwand möglich ist, APT und die Eclipse-Paketverwaltung zur Zusammenarbeit zu bewegen, existieren sie nebeneinander und das find ich unschön. Ich benutze nicht gerne zwei Werkzeuge parallel für den selben Zweck, ich möchte nicht einen Teil meiner Plugins über APT verwalten und den anderen Teil über Eclipse selbst.

Deswegen bin ich dazu übergegangen, mir nur ein “nacktes” Eclipse über APT zu installieren und die Plugins über Eclipse selber. In den Paketquellen gibt es ja das Paket eclipse-platform, welches ein solches nacktes Eclipse enthält, aber wie oben erwähnt veraltet ist. Das lässt sich aber dadurch kompensieren, indem man sich Eclipse selbst über die Projektseite herunterlädt und in ein eigenes Paket verbaut.

Auf der Download-Seite werden aber nur vorkonfigurierte Bundles angeboten, die bereits irgendwelche Plugins enthalten. Etwas versteckt lässt sich aber eine pluginlose Version besorgen, indem man auf diese Seite geht und bis zu “Platform Runtime Binary” scrollt. Hier muss die für die Rechnerarchitektur passende Version heruntergeladen werden.

In diesem Beispiel nutze ich amd64/x86_64. Wer eine andere Architektur hat, 
muss die Befehle oder Datei-Inhalte ggf. anpassen, also nicht einfach den Guttenberg machen.

Bevor losgelegt werden kann, müssen aber noch einige Tools installiert…

$ sudo apt-get install fakeroot dpkg-dev debhelper unp

…und ein Arbeitsverzeichnis angelegt werden:

$ mkdir eclipse-platform

Innerhalb dieses Arbeitsverzeichnisses müssen nun die Ordner so angelegt werden, wie sie später auf dem Dateisystem abgebildet werden sollen. Legt man also innerhalb des Ordners eclipse-platform den Ordner bin an und speichert dort Dateien, so werden diese Dateien später nach /bin installiert. Ich lasse den Inhalt des Archivs nach /opt/eclipse installieren:

$ unp eclipse-platform-3.6.2-linux-gtk-x86_64.tar.gz
$ mkdir -p eclipse-platform/opt
$ mv eclipse eclipse-platform/opt/eclipse

Anschließen erstellen wir ein Skript, mit dem wir Eclipse starten können:

$ mkdir -p eclipse-platform/usr/bin
$ nano eclipse-platform/usr/bin/eclipse
$ chmod +x eclipse-platform/usr/bin/eclipse

Das Skript versehen wir mit folgenden Inhalt:

#!/bin/sh
export UBUNTU_MENUPROXY=0
exec /opt/eclipse/eclipse "$@"

Das setzen der Variable UBUNTU_MENUPROXY sorgt dafür, dass Eclipse sein Menü im Fenster und nicht im Unity-Panel anzeigt, weil letzteres noch nicht gut genug mit SWT-Anwendungen funktioniert (Update: Ab Eclipse 3.7 ist die Zeile unnötig, Eclipse zeigt per Default sein Menü im Fenster an). Nicht-Unity-Benutzer können das ignorieren. “$@” bewirkt, dass dem Skript mitgegebene Parameter an Eclipse weitergereicht werden. Nun müssen wir nur noch einen Menüeintrag erstellen, damit wir Eclipse auch grafisch starten können…

$ mkdir -p eclipse-platform/usr/share/applications
$ nano eclipse-platform/usr/share/applications/eclipse.desktop

…und zwar mit diesem Inhalt:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Eclipse
Exec=eclipse
Terminal=false
Icon=/opt/eclipse/icon.xpm
Comment=Eclipse Integrated Development Environment
Categories=Development;IDE;

Nun haben wir also ein Startskript, einen Anwendungsstarter sowie einen Programmordner. Fehlen nur noch Informationen, die das Paket näher beschreiben, damit auch APT was damit anfangen kann.

mkdir eclipse-platform/DEBIAN
nano eclipse-platform/DEBIAN/control

In die control-Datei schmeißen wir das da rein:

Package: eclipse-platform
Version: 3.6.2-1
Architecture: amd64
Maintainer: DeinName
Depends: openjdk-6-jre | sun-java6-jre
Section: devel
Priority: optional
Description: Eclipse IDE, static-linked, minimal plugins.

Die Abhängigkeiten sehen natürlich etwas mager aus, nur Java ist drin, was Eclipse zum Laufen benötigt, aber nicht selbst mitbringt. Alles andere ist bei Eclipse eigentlich dabei und nach den Debian-Richtlinien müsste man eigentlich alles sauber in unabhängige Paketteile aufsplitten, um Redundanzen zu vermeiden, aber das würde das hier zu kompliziert machen. Auf diese Weise sind wir aber jetzt schon fertig und können mit dem verpacken beginnen und die Installation einleiten:

$ fakeroot dpkg -b eclipse-platform eclipse-platform_3.6.2-1_amd64.deb
$ sudo dpkg -i eclipse-platform_3.6.2-1_amd64.deb

Das fakeroot bitte nicht vergessen, sonst werden die Rechte nicht richtig gesetzt!

Eclipse sollte jetzt problemlos und ohne irgendwelche Plugins starten. Damit man jetzt anfangen kann, Eclipse zu benutzen, muss man natürlich erst über Help->Install New Software.. die benötigten Plugins installieren. Zuvor muss jedoch noch die Update-Site von Eclipse hinzugefügt werden, dazu Eclipse starten und zu Window->Preferences->Install/Update->Available Software Sites navigieren und diese URL hinzufügen:

http://download.eclipse.org/releases/helios

Frohes Entwickeln!

Getaggt mit , ,

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.

Getaggt mit , , ,

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.

Getaggt mit , ,

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.

Getaggt mit , , ,

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.

Getaggt mit , ,

iPhone OS 3.x unter Linux synchronisieren – diesmal über GVFS

Hinweis: Ab Ubuntu 10.04 läuft alles out-of-the box. Der folgende Artikel hat nur für ältere Ubuntu-Versionen Relevanz.

Die Situation “iPhone und Linux” scheint sich immer mehr zu besssern. Anfangs benötigte es noch ein in einer virtuellen Maschine laufendes iTunes, dann gab es mit iFuse die Möglichkeit des Filesystemaccess. Schließlich konnte man endlich mit gtkpod sogar die iTunesCDB beschreiben – und so die normale Musikplayer-Applikation nutzen.

Jetzt ist bereits das Einbinden des iPhones über GVFS möglich. GVFS – ehemals GnomeVFS – ist die Schnittstelle von GNOME, um virtuelle Dateisysteme einzuhängen. Als Quelle kann ein ISO-Image, eine Samba-Freigabe, ein SSH-Tunnel, eine Digitalkamera und jetzt eben auch ein iPhone/ein iPod touch verwendet werden.

Gut, was bringt uns das jetzt? Hauptvorteil ist, dass man jetzt kein extra Programm mehr braucht, um das Gerät mit Musik zu befüllen. Man kann also Rhythmbox, Banshee oder einen anderen Musik-Player verwenden, also das Programm, was man auch sonst zum Musikhören und dem Downloaden von Podcasts benutzt. Weiterhin ist die Einrichtung jetzt wesentlich einfacher – es muss nichts mehr kompiliert werden, auch ein manuelles Einhängen des Geräts ist überflüssig.

Wer bereits meine Anleitung vom November durchgearbeitet hat, der sollte sie vollständig rückgängig machen, also alle Pakete wieder deinstallieren, das PPA entfernen, nach Konfigurationsleichen in /etc und ~/.config Ausschau halten usw.

Lasst uns loslegen. Die Geschichte beginnt, wie so häufig, mit einem PPA:

$ sudo add-apt-repository ppa:pmcenery/ppa
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get install gvfs gvfs-backends gvfs-bin gvfs-fuse libgvfscommon0 ifuse libgpod-dev libgpod-common libiphone-utils libiphone0 python-iphone libplist++1 libplist-utils python-plist libusb-1.0-0 libusb-1.0-0-dev libusbmuxd1 usbmuxd

Nun fügen wir uns selbst zur Gruppe fuse hinzu:
$ sudo adduser $USER fuse

Jetzt muss noch eine Konfigurationsdatei bearbeitet werden:
$ sudo nano /etc/fuse.conf

Dort dann die Option user_allow_other auskommentieren (# entfernen). Nach einem Reboot ist die Sache schon gegessen. Ja, wirklich! Ihr braucht nur noch euer Gerät in die Hand zu nehmen, das Kabel zu packen und in den Dock-Connector zu stecken. Dann läuft auch schon die Synchronisation z.B über Rhythmbox an. Genial, oder? Sogar die Datei SysInfoExtended, die ihr vorher manuell anlegen musstest, wurde – zumindest bei mir – automatisch erstellt (ich hatte den Device-Order vorher mittels iFile gelöscht).

Leider werden bei mir, wenn ich über Rhythmbox synchronisiere, die Albumcover nicht mitsynchronisiert. Bei gtkpod ging es damals. Banshee hab ich schon probiert, doch wird dort der iPod leider nicht erkannt. Mal sehen ob ich das noch hinbekomme, ansonsten läuft alles prima.

[via Ubuntu-Geek]

Getaggt mit , , ,

iPhone OS 3.x-Geräte unter Linux mit gtkpod synchronisieren

Hinweis: Mittlerweile existiert eine einfachere Möglichkeit der Synchronisation, nämlich über GVFS.

Endlich endlich endlich. Wie lang haben wir, die Linux-Nutzer und iPhone/iPod touch Besitzer zugleich sind, darauf gewartet, unser Gerät mit dem nun gar nicht mehr so neuen iPhone OS 3.0/3.1 zu synchronisieren. Bisher musste man sich mit Lösungen wie PwnPlayer oder VirtualBox behelfen, doch dies hat nun ein Ende, denn jetzt lässt sich Musik mithilfe von gtkpod direkt in die iTunesCDB synchronisieren, was heißt, dass die Dateien mit den nativen Programmen “Musik” und “Videos” (“iPod” beim iPhone) abgespielt werden können, inklusive CoverFlow, Schüttelfunktionen usw, so, als würde man ganz normal mit iTunes syncen.

Der Hacker Marcan beschreibt in einem Blogeintrag, wie man mit den aktuellen iPhone-Linux-Bibliotheken das iPhone/den iPod touch mounten und Zugriff auf die iTunesCDB erlangen kann. Das ganze ist noch etwas frickelig, man muss einiges selbst kompilieren, und da hier die allerneuesten Alphaversionen eingesetzt werden, sind sicher noch etliche Bugs vorhanden.

Ich hab das ganze unter Ubuntu 9.10 “Karmic Koala” und einem iPod touch der 1.Generation mit OS 3.1.2 getestet und es funktioniert soweit super. Allerdings sollte man den Kram nur ausprobieren, wenn man bereits ein wenig Erfahrung mit Linux hat, da man hier leicht etwas kaputt machen kann. Es ist nicht unwahrscheinlich, das die hier aufgeführten Tools in der nächsten Ubuntu-Version (also Lucid Lynx) als Paket zur Verfügung stehen oder die Synchronisation out-of-box in Banshee, AmaroK oder Rhythmbox funktionieren wird. Einige Anmerkungen:

  • Installiert man die iPhone-Pakete über die Paketverwaltung, so sollte man nicht vergessen, auch die Development-Headers fürs kompilieren mitzuinstallieren, also die Dinge, die auf -dev enden.
  • Man sollte sein iPhone bereits einmal mit iTunes synchronisiert haben, damit eine iTunesCDB vorhanden ist.

Legen wir los. Als erstes braucht man natürlich die Standard-Tools, wie make, gcc und git, die man sich via apt-get besorgt:

$ sudo apt-get install build-essential cmake git-core checkinstall

Dann benötigen wir spezielle iPhone-Pakete. Für Ubuntu existiert eine Paketquelle. Unter System->Systemverwaltung->Software-Paketquellen fügt man folgenden Eintrag hinzu:
ppa:jonabeck/ppa

Nach einem
$ sudo apt-get update

kann man die iPhone-Tools installieren:
$ sudo apt-get install ifuse libiphone0 libiphone-dev libplist0 libplist-dev libusb-1.0-0 libusb-1.0-0-dev libusbmux0 libusbmux-dev

Und sicherstellen, dass der aktuelle User der Gruppe fuse zugehörig ist:
$ sudo adduser $USER fuse

Nun benötigen wir eine weitere Komponente: Die Bibliothek libgpod. Diese ist zwar in den Ubuntu-Quellen enthalten, allerdings nur in der Version 0.7.2. Deshalb müssen wir die Version 0.7.3 ohne unsere Kuschel-Paketverwaltung selbst kompilieren. Nach Entferunung der alten libgpod-Version…
$ sudo apt-get remove --purge libgpod4 libgpod-common

…kann die neue Version installiert werden:
$ git clone git://gitorious.org/~teuf/libgpod/teuf-sandbox.git
$ cd teuf-sandbox
$ CFLAGS="-g -O0" sh autogen.sh --prefix=/usr
$ make
$ sudo checkinstall

Hier gilt es, die Bildschirmausgaben genau zu lesen und fehlende Pakete über die Paketverwaltung nachzuinstallieren (nicht die Development-Headers vergessen!). Beim checkinstall-Assistent muss als Name “libgpod4″ und als Version “0.7.3GIT” angegeben werden.

Hat alles geklappt, sollte man jetzt sein Gerät anschließen und es mounten:

$ sudo mkdir /media/iPod
$ sudo ifuse /media/iPod
$ sudo mkdir /media/iPod/iTunes_Control/Device

Damit das iPhone bzw. der iPod mit gtkpod verwendet werden kann, muss noch die UUID herausgefunden werden:
$ lsusb -v | grep -i iSerial

Im Konsolen-Output sollte jetzt eine 40-stellige Nummer zufinden sein. Diese brauchen wir für den nächsten Befehl:
$ tools/ipod-read-sysinfo-extended &lt;UUID&gt; &lt;mountpoint&gt;

Wenn im Verzeichnis /media/iPod/iTunes_Control/Device die XML-Datei SysInfoExtended auffindbar ist, kann man gtkpod öffnen. Ist gtkpod noch nicht installiert, reicht ein
$ sudo apt-get install gtkpod

um sich das Programm auf die Platte zu holen. Nach dem Start euer Modell auswählen, Songs hinzufügen und auf “Änderungen sichern” klicken. Auf dem Bildschirm des iPhones bzw. des iPods sollte jetzt eine “Synchronisieren” Meldung erscheinen, wie man sie von iTunes her kennt. Nach dem Start des Musik-Players ließt er die Datenbank neu ein, hier muss man ein wenig Geduld haben. Dies liegt daran, dass die iTunesCDB eigentlich nur von iTunes zur Synchronisation verwendet wird. Intern verwendet der iPod eine SQLite-Datenbank.

Und jetzt heißt es abtanzen!

Getaggt mit , , ,

Performance von ATI-Karten unter Ubuntu erhöhen

Linux, ATI und Treiber. Diese drei Worte reichen. um mich mit den Zähnen knirschen zu lassen. Wer ebenfalls Besitzer einer ATI-Grafikkarte und zugleich Linux-Benutzer ist weiß, warum.

Warum? Nun, der Grund liegt darin, dass ATI nunmal keine gescheiten Treiber für Linux anbietet. Es gibt zwar eine Linux-Version des Catalyst-Treibers (fglrx), doch die läuft nur mit neueren Karten, während sich Besitzer älterer Modelle mit den freien Treibern (radeon und RadeonHD) begnügen müssen. Die hinken den Original-Treiben natürlich deutlich hinterher. Wer auf die Idee kommt, damit Spiele spielen zu wollen: Vergisst es!

Glücklicherweise schreitet die Entwicklung relativ schnell voran und deshalb lohnt es sich, mal einen Blick auf den Unstable-Zweig der freien Treiber zu werfen und ihn auszuprobieren, denn die Treiber laufen deutlich besser, als die stabilen Versionen aus den Ubuntu-Paketquellen.

Um auf den Unstable-Zweig zu aktualisieren fügt man sich ein PPA in seine sources.list hinzu:

deb http://ppa.launchpad.net/xorg-edgers/ppa/ubuntu jaunty main

Dann wird noch der passende GnuPG-Key benötigt:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8844C542

Nach einem

$ sudo apt-get update &amp;&amp; sudo apt-get upgrade

werden die neuen Treiber installiert, u.a wird aber auch X.org ansich aktualisiert. Man sollte sich gut überlegen ob man dies möchte, da, abgesehen von irgendwelche Bugs der instabilen Treiber,  man sich so auch das Update auf Karmic verbauen kann.

Wie oben angesprochen, gibt es zwei freie Treiber für aktuelle ATI-Karten der Radeon-Serie: einmal radeon sowie RadeonHD welche sich in dem Paket xserver-xorg-radeon bzw xserver-xorg-radeonhd befinden. Der Unterschied besteht darin, dass sich RadeonHD auf Karten ab der X1550 konzentriert, während radeon auch Unterstützung für ältere Karten bietet. Am besten, man probiert beide Treiber aus und nimmt den, der besser funktioniert. RadeonHD schleudert mich kommentarlos auf die Konsole, radeon allerdings ermöglicht mir zumindest Compiz und mit der Unstable-Version endlich auch das Spielen (!) von Warsow, UrbanTerror und Sauerbraten auf mittleren Einstellungen. Unter Windows ist die Performance zwar wesentlich besser, aber immerhin sind die Unstable-Treiber schonmal ein Fortschritt.

Getaggt mit , , , ,
Follow

Bekomme jeden neuen Artikel in deinen Posteingang.