Tag Archives: ubuntu 10.04

How To: 1080p Videos mit dem Raspberry Pi abspielen

In diesem Artikel wird erklärt, wie mit dem Raspberry Pi h264-codierte Videos mit einer Auflösung von 1920×1080 Pixeln (aka. FullHD / 1080p) abgespielt werden können.

“Installation” von Archlinux

Da ich inzwischen auf dem Laptop Archlinux einsetze und dort relativ zufrieden bin, habe ich mich gegen Debian entschieden und verwende stattdessen lieber die Archlinux Distribution für den Pi. Das Image kann man auf der offiziellen Downloadseite per Torrent oder http herunterladen. Anschließend kopiert man das Image einfach auf eine SD-Karte. Hierfür habe ich eine einfache 2GB SD-Karte verwendet. Kopiert wird mittels dd:

# dd if=archlinuxarm-29-04-2012.img of=/dev/sdX bs=4M oflag=sync

Wobei X der dem Buchstaben des Blockdevices unter dem die SD-Karte erreichbar ist entspricht. Falls man sich bezüglich des Buchstabens unsicher ist, kann nachdem die SD-Karte an den Computer angeschlosse wurde mit $ dmesg der Nachrichtenbuffer des Kernels ausgegeben werden. Hier sollte am Ende der Ausgabe etwas wie:
[ 2700.131623] sd 10:0:0:0: [sdf] 3862528 512-byte logical blocks: (1.97 GB/1.84 GiB)
[ 2700.132608] sd 10:0:0:0: [sdf] Assuming drive cache: write through
[ 2700.134458] sd 10:0:0:0: [sdf] Assuming drive cache: write through
[ 2700.134462] sdf: sdf1 sdf2
[ 2700.406247] EXT4-fs (sdf2): mounted filesystem with ordered data mode

zu finden sein. In diesem Falle wäre X also f. Zur weiteren Kontrolle kann mit $ mount noch kontrolliert werden, ob /dev/sdf1 wirklich der ersten Partition der SD-Karte entspricht. Bevor man mit dd das Image auf die Karte schiebt müssen alle gemounteten Partition der SD-Karte geunmounted werden (z.B. # umount /dev/sdf1), da sonst dd ansonsten mit einer Fehlermeldung beendet.
Auf die Option oflag=sync möchte ich hier noch mit einem Satz eingehen, da ich sie erst vor kurzem in einem von Gambarus tollen Beiträgen entdeckt habe: Sie bewirkt, dass jeder Block mit Nullen aufgefüllt wird, wenn er nicht komplett mit Daten beschrieben werden kann.
Nachdem das Image auf der SD-Karte ist, kann man die SD-Karte und alle notwendigen Kabel (HDMI, LAN, evtl. Maus und Tastatur und am Schluss Strom) in den Pi stecken, der daraufhin startet.
Anschließend kann entweder per SSH oder direkt am Pi gearbeitet werden.

Installation des omxplayers

Anstatt des mplayers oder vlc sollte man den omxplayer verwenden, da dieser die GPU des Pis ausnutzt! Der omxplayer wurde freundlicherweise von spenning aus dem Raspberry Pi Forum schon crosscompiliert, was die Sache relativ einfach macht. Wer selbst compiliert, kann sich unter Debian/Ubuntu das Paket gcc-arm-linux-gnueabi installieren, um den passenden Compiler zu bekommen. Dieses Paket ist für ältere Ubuntu/Debian-Versionen wie z.B. der letzten LTS Version 10.04 nur über ein separates PPA-Repository zu erhalten.

Folgende Befehle werden auf dem Pi ausgeführt:
Herunterladen:

# wget http://seyrsnys.myzen.co.uk/rpi/omxplayer-bin.tar.xz

Entpacken:

# tar -xf omxplayer-bin.tar.xz

Nach dem Entpacken sollte der Ordner usr aus dem entstandenen Verzeichnis omxplayer nach / kopiert werden. Hierdurch kopiert man die Binaries und Dokumentation an die richtige Stelle.

# cp -r omxplayer/usr/ /

Der omxplayer benötigt das Paket libva um richtig zu funktionieren. Um dies zu installieren reicht ein einfaches:

# pacman -S libva

Sollte die Installation fehlschlagen (wie bei mir), empfiehlt es sich erst ein Upgrade auszuführen:

# pacman -Syu

Wichtig: Falls man gefragt wird, ob zuerst pacman geupgraded werden soll, dies mit Nein beantworten, da ansonsten das Update nicht richtig durchläuft.

Wiedergabetest

Als Testfilm habe ich den freien Kurzfilm Big Buck Bunny verwendet, den man sich mit

# wget http://mirrorblender.top-ix.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov

herunterladen kann (ca. 700MB).
Anschließen kann man den Film mit

# omxplayer -o hdmi big_buck_bunny_1080p_h264.mov

ruckelfrei und mit Ton über HDMI abspielen. Wird die Option -o hdmi nicht mit angegeben, wird der Ton über die 3,5mm Klinkenbuchse auf dem Board ausgegeben.
Der omxplayer besitzt zwar keine Man-Page aber eine kleine Dokumentation unter /usr/share/doc/omxplayer/README

Java Runtime Plugin unter Firefox 11 Ubuntu/Debian wieder aktivieren installieren

UPDATE: Ich muss hier mal vor meinem eigenen Beitrag warnen. Die Deaktivierung des Java-Plugins ist nicht grundlos geschehen (siehe hier) . Eine Reaktivierung geschieht auf eigene Gefahr. Im Grunde ist es wieder mal ein Lizenzstreit. Oracle hat die “Operating System Distributor License for Java” (DLJ) gekündigt und das Oracle Java SDK darf jetzt nicht mehr von den Distributionen verteilt werden. Die letzte Version die noch unter der DLJ steht – also noch verteilt werden darf – enthält eine Sicherheitslücke, die sich über das Browser-Plugin ausnutzen lässt. Wegen der fehlenden Lizenz kann kein Sicherheitsupdate verteilt werden. 🙁 Deshalb wurde es von Canonical aus Ubuntu und vom Debian-Projekt aus Debian entfernt. Christoph hat allerdings einen tollen Artikel, wie man sich ein aus den aktuellen Java-Downloads von der Oracle Homepage ein installierbares Paket generieren kann.

firefox-java-logoBei einem der letzten Updates von Firefox Version 3.6 auf Version 11.0 aus den offiziellen Repositories ging bei mir irgendwie das Java Plugin verloren. 🙁 Dies hat zur Folge, dass Websites mit Java-Anteil (Post Portodruck, oder der online Foto-Dienst von DM) nicht mehr funktionieren.

Installation überprüfen

Ob das JRE-Plugin installiert ist, kann man folgendermaßen herausfinden:

about:plugins

in die Adresszeile des Browsers eingeben. Es erscheint eine Liste mit allen installierten Plugins. Falls hier kein Eintrag auftaucht, der “Java(TM) Plug-in 1.6.****” oder ähnlich heißt, ist das Java-Plugin nicht mehr richtig installiert.

Java Plugin für Firefox 11 wieder richtig installieren

Als erstes suchen wir uns die Plugin Datei:

$ locate libnpjp

Lustigerweise heißt das Browserplugin libpjp2.so und nicht sunjavaplugin.so oder libjavaplugin_jni.so was ich zuerst vermutete.
Als Ergebnis sollte euch der Pfad angezeigt werden, in welchem die Plugin-Datei zu finden ist. Bei mir ist das beispielsweise:

$ locate libnpjp
/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/libnpjp2.so

Falls ihr locate nicht installiert habt, erfüllt das gute alte find die Aufgabe natürlich ebenso (so zu suchen könnte etwas länger dauern :mrgreen:):

$ find / -iname "*libnpjp*" -type f 2> /dev/null

Wenn die Plugin-Datei gefunden wurde, muss eine symbolischer Link zur Plugin-Datei im Plugins-Verzeichnis von Firefox angelegt werden. Bei mir wäre das beispielsweise /usr/lib/mozilla/plugins. Hierzu werden root-Rechte benötigt, bei Ubuntu also ein sudo vorne anhängen:

# ln -s /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins/

Dann noch Firefox neu starten und mit obiger Methode prüfen, ob das Plugin wieder in der Liste auftaucht.

Quellen: [1] und [2]

Mit VLC unter Linux CSS verschlüsselte DVDs betrachten. libdvdcss

Will man mit einem aus den Standardrepositories installiertem VLC-Player unter Ubuntu 10.04 eine CSS verschlüsselte DVD betrachten, so bekommt man nicht etwa die DVD zu sehen, sondern auf der Konsole folgende Ausgabe:

daniel@home:~$ cvlc /media/DVD_VIDEO/
VLC media player 1.0.6 Goldeneye
[0x1940158] dummy interface: using the dummy interface module...
libdvdnav: Using dvdnav version 4.1.3
libdvdread: Encrypted DVD support unavailable.
************************************************
** No css library available. See **
** /usr/share/doc/libdvdread4/README.Debian **
** for more information. **
************************************************
libdvdread: Attempting to use device /dev/sr1 mounted on /media/DVD_VIDEO for CSS authentication
libdvdnav: Can't read name block. Probably not a DVD-ROM device.
libdvdnav: Unable to find map file '/home/daniel/.dvdnav/.map'
libdvdnav: DVD disk reports itself with Region mask 0x00f50000. Regions: 2 4
[0x7f2a34001968] main input error: ES_OUT_RESET_PCR called
[0x7f2a34001968] main input error: ES_OUT_RESET_PCR called
[0x7f2a34001968] main input error: ES_OUT_RESET_PCR called
[0x7f2a34001968] main input error: ES_OUT_RESET_PCR called
^C[0x1917f28] signals interface error: Caught Interrupt signal, exiting...

Hintergrund hierfür ist die fehlende Library libdvdcss. Standardmäßig ist diese Library aus Angst vor Rechtsstreitigkeiten nicht bei Ubuntu mit dabei, da sie mittels einem Brute-Force-Angriff den CSS-Schlüssel knackt. Normale DVD-Player haben einen bestimmten Chip auf dem Board in welchem ein Entschlüsselungskey enthalten ist. Die Hersteller der Boards zahlen deshalb Lizenzgebühren an den Hersteller des CSS-Verschlüsselungsstandards. Schon pervers, der Hersteller definiert die Verschlüsselung und kann dann die Hardwarehersteller mit Hinweis auf die Kompatibilität um Lizenzgebühren erpressen 👿 .

Hier jetzt wie man libdvdcss nachträglich installiert. Dazu habe ich mal ein kleines Bash-Script geschrieben, das den Sourcode herunterlädt, compiliert und installiert – nicht schön, aber es funktioniert:

#!/bin/bash
wget http://download.videolan.org/pub/libdvdcss/1.2.10/libdvdcss-1.2.10.tar.gz
tar xfvz libdvdcss-1.2.10.tar.gz
cd ./libdvdcss-1.2.10
./configure --prefix=/usr
make
sudo make install
cd ..
rm -rf ./libdvdcss-1.2.10
rm libdvdcss-1.2.10.tar.gz

Nach alledem sollte das Abspielen einer CSS geschützen DVD auf der Konsole dann in etwas so ausschauen:

daniel@home:~$ cvlc /media/DVD_VIDEO/
VLC media player 1.0.6 Goldeneye
[0x1e83c58] dummy interface: using the dummy interface module...
libdvdnav: Using dvdnav version 4.1.3
libdvdread: Using libdvdcss version 1.2.10 for DVD access
libdvdread: Attempting to use device /dev/sr1 mounted on /media/DVD_VIDEO for CSS authentication
libdvdnav: Can't read name block. Probably not a DVD-ROM device.
libdvdnav: Unable to find map file '/home/daniel/.dvdnav/.map'
libdvdnav: DVD disk reports itself with Region mask 0x00f50000. Regions: 2 4
libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient
libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000158
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000001c6
[...]
libdvdread: Elapsed time 2

Hier etwas Lesestoff Libdvdcss, Content Scramblink System, DeCSS und am Schluss noch einen Link zu Niko, der erklärt auf seinem Blog, wie man ein .deb Paket aus dem Sourcecode erstellt, dass man dann normal installieren kann.

Adobe Flashplayer 10.2 d161 für 64bit Linux und MacOSx

Nachdem Adobe mit der Version 10.1 die Veröffentlichung ihres Flashplayers für 64bit Linux Rechner eingestellt haben und man wohl oder übel mit der alten Version 10.0.45 des Flashplayers vorlieb nehmen musste, gibt es den Flashplayer jetzt wieder in Version 10.2 d161 für Linux 64bit und MacOSx 64bit!
Link zur Downloadseite

Zum Installieren muss man die libflashplayer.so einfach im home-Verzeichnis nach .mozilla/plugins entpacken. Nachdem man Firefox wieder gestartet hat, kann man about:plugins in die Adresszeile eingeben und überprüfen, ob die Installation geklappt hat. So sollte das dann aussehen:

Firefox about:plugins Flashplayer 10.2
about:plugins im Firefox

Installation zum kopieren:
wget http://download.macromedia.com/pub/labs/flashplayer10/flashplayer_square_p1_64bit_linux_091510.tar.gz
rm ~/.mozilla/plugins/libflashplayer.so
tar xfvz flashplayer_square_p1_64bit_linux_091510.tar.gz -C ~/.mozilla/plugins/

Erfahren habe ich die Neuigkeit von fefes-Blog
Es haben noch andere Blogger darüber geschrieben, u.a. Cristoph
Normale Websiten: DerStandard.at hat auch einen lesenswerten Artikel und Heise natürlich auch. WinFuture hat ebenfalls noch was.