Montag, 25. August 2008

Drahtloser Stereosound unter Ubuntu mit Bluetooth und A2DP

Mit dem A2DP (Advanced Audio Distribution Profile) von Bluetooth ist es möglich auch hochwertigen Stereosound via Bluetooth zu übertragen. Ein entsprechendes Headset vorrausgesetzt, kann man damit völlig kabellos Musik in guter Qualität hören. Ich habe mich für das MSI FS110 (siehe Bild) entschieden (Kostenpunkt: ca. 40 €). Es hat eine Klinkenbuchse, so dass man nicht auf Kopfhörer beschränkt ist, sondern es auch z.B. an eine Stereoanlage oder das Autoradio anschließen kann. Die mitgelieferten Kopfhörer sind im übrigen von ziemlich minderwertiger Qualität (=Schrott). Ich werde wohl noch meine Lieblingsstöpsel, die Sony MDR-ED31LP, nachkaufen.

Angeblich unterstützen M$ Windows und Mac OS (Tiger) (noch) kein A2DP, ich habe es aber selbst noch nicht getestet. Unter Ubuntu hingegen, klappt das ganze schon erstaunlich gut.

Einrichtung

Zunächst müssen die notwendigen Pakete libsbc und bluetooth-alsa installiert werden. Da diese sich nicht im Ubuntu-Repository befinden, werden sie aus dem Debian-Archiv geladen und von Hand installiert.

wget http://mirrors.redwoodvirtual.com/debian/pool/main/libs/libsbc/libsbc0_0.0cvs20070327-1_i386.deb
wget ftp://ftp.blackstar.co.uk/pub/debian/pool/main/b/bluetooth-alsa/bluetooth-alsa_0.5cvs20070714-1_i386.deb

sudo dpkg -i *.deb

Nun müssen die Konfigurationsdateien für das A2DP (~/.a2dprc) und ALSA (~/.asoundrc) erzeugt werden. Für A2DP wird die Beispielkonfiguration aus dem CVS-Repository verwendet.

wget http://bluetooth-alsa.cvs.sourceforge.net/*checkout*/bluetooth-alsa/plugz/alsa-plugins/a2dpd/sample.a2dprc -O ~/.a2dprc

In diese muss noch die Bluetooth-Adresse des Empfängers eingetragen werden, welche folgendermaßen ermittelt wird.

hcitool scan

# Your bluetooth headset address
address=00:13:D3:68:D4:6A


Die ALSA-Konfiguration wird von Hand angelegt. Dazu wird die Datei ~/.asoundrc mit folgendem Inhalt erzeugt.

pcm.a2dpd {
type a2dpd
}


Nun muss das Streaming gestartet werden (und im Hintergrund weiter laufen). Entgegen der Empfehlungen der Entwickler von bluetooh-alsa muss a2dpd als root gestartet werden, da es eine Bluetooth-Funktion zum Verbindungsaufbau benutzt die (unter Ubuntu) nur root ausführen darf.

sudo a2dpd

Letzterer Befehl muss immer ausgeführt werden, bevor der Empfänger verwendet wird.

Als Ausgabegerät verwenden

Leider ist es nicht möglich a2dpd als normales ALSA-Gerät auszuwählen. Deshalb muss es manuell als Gerät eingetragen werden. Einige Anwendungen (z.B. amaroK) unterstützen das. Mit den Konfigurationseditor von GNOME kann man es auch für GNOME-Anwendungen als Ausgabegerät festlegen.

gconf-editor

Im Konfigurationseditor müssen je nach Belieben folgende Schlüssel angepasst werden.

/system/gstreamer/0.10/default/audiosink (für Systemklänge, etc.)
/system/gstreamer/0.10/default/chataudiosink (für Chat, Konferenz, etc.)
/system/gstreamer/0.10/default/musicaudiosink (für Musik, Video, etc.)

Dazu trägt man für den jeweiligen Schlüssel folgendes ein.

alsasink device="a2dpd"

Nun kann man mit Totem, Rhythmbox, etc. Musik ohne Kabel genießen!

Quellen/Links

Montag, 11. August 2008

DVB-T mit Totem und Hauppauge WinTV Nova-T-SE USB

Installation

Zunächst müssen die notwendigen Pakete für DVB-T installiert werden.

sudo apt-get install dvb-utils totem-xine libxine1-ffmpeg

Außerdem wird noch wird die Firmware für den Stick benötigt.

wget http://www.schneidexe.de/blog/dvb-usb-dib0700-01.fw -O dvb-usb-dib0700-01.fw
sudo mv dvb-usb-dib0700-01.fw /lib/firmware/dvb-usb-dib0700-01.fw


Nun kann der USB-Stick angesteckt werden (USB 2.0 notwendig!). Er sollte erkannt problemlos und initialisiert werden.

Senderliste erstellen

Zunächst wird ein Sendersuchlauf gestartet und das Ergebnis in ~/.xine/channels.conf gespeichert. Die Stadt muss entsprechend angepasst werden.

mkdir ~/.xine
scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/de-Muenchen > ~/.xine/channels.conf


Nun wird eine Playlist für Totem mit allen gefundenen Sendern erstellt. Nicht benötigte oder nicht funktionierende Sender können später in Totem per Mausklick aus der Liste gelöscht werden.

wc ~/.xine/channels.conf | awk '{ print "[playlist]\nNumberOfEntries=" $1 }' > DVB.pls
awk -F : '{ print "File" NR "=dvb://" $1 "\nTitle" NR "=" $1 }' ~/.xine/channels.conf >> DVB.pls


Die Playlist sollte in etwa wie folgt aussehen.

[playlist]
NumberOfEntries=X
File1=dvb://Das Erste
Title1=ARD
File2=dvb://ZDF
Title2=ZDF
File3=dvb://3sat
Title3=3sat
...
FileX=dvb://SenderNameX
TitleX=SenderTitelX

TV gucken

Zum TV gucken wird einfach die Playlist mit Totem geöffnet.

totem DVB.pls

(Es ist natürlich auch möglich die Liste per Mausklick mit Totem zu öffnen, Rechtsklick → Mit "Video-Player" öffnen)

Quellen/Links