Hardwareunterstützung

tagged Linux

Hardware

Der Umgang mit Hardware ist unter Linux oft mit Problemen behaftet. Doch auch hier gibt es eine Unmenge Dokumentationen und Hilfe im Internet. Für von mir verwendete Hardware habe ich hier ein paar Tweaks zusammengestellt.

Fernsehkarte PinnacleTV 310i

Bei dieser internen PCI-TV-Karte handelt es sich um eine Hybrid-TV-Karte, d.h. man kann sowohl Analog- als auch Digital-TV damit empfangen. Leider hat diese Karte nur einen Antennenstecker. Im Elektronikfachhandel gibt es aber Adapter mit zwei Mama- und einen Papa-Stecker, welche eigentlich Ausgangsadapter für Radio-Antennen-Anschlüsse sind, aber auch super als Eingangsadapter für die TV-Karte genutzt werden kann. Dadurch kann die Karte ohne Umbau sowohl für Analog-TV aus dem Kabelanschluss als auch für Digital-TV über DVB-T. Leider kann die Karte nicht gleichzeitig für Analog- und Digital-TV z.B. mit MythTV verwendet werden. Beim Start einer TV-Anwendung (z.B. MythTV für digital oder tvtime für analog) wird der entsprechende Treiber mit der Hardware verbunden, die Hardware ist damit vor einem Neustart des Rechners nicht mehr für einen anderen Treiber zugänglich. Sollte jemand einen Workaround gefunden haben, bitte Bescheid geben.

Treiber einrichten

Die Karte verwendet den Chip SAA7134, die Treiber dafür sind im Linux-Kernel enthalten. Man sollte die Treiber saa7134, saa7134-alsa und saa7134-dvb als Module kompilieren. Darüber hinaus müssen die V4L Treiber und I2C Treiber kompiliert werden. Die Parameter Karte und Tuner müssen beim Laden der Module nicht mehr übergeben werden, die Karte wird automatisch erkannt. Als DVB-T-Tuner wird der Chip Philips TDA10046H verwendet. Für diesen Chip ist das Modul TDA1004x notwendig, der als Modul kompiliert werden muss. Zusätzlich ist eine Firmware notwendig. Gentoo stellt ein Ebuild für die Installation zur Verfügung (media-tv/get-dvb-firmware), das versucht, den Treiber aus einer Datei auf der Website von Technotrend zu extrahieren. Die zugehörige Datei "tt_budget_217g.zip" steht dort aber nicht mehr zur Verfügung. Aus dieser Datei wird mit dem get-dvb-firmware-Skript aus '/software/OEM/PCI/App/ttlcdacc.dll' der Firmwaretreiber herausgeschnitten. Dieser wird dann in das Verzeichnis /lib64/firmware hinterlegt. Beim Laden des Moduls TDA1004x wird er dann automatisch verwendet.

Die Firmware kann auch von http://rpm.pbone.net/index.php3/stat/4/idpl/3597774/com/dvb-firmware-frontends-20061120-1plf2007.0.noarch.rpm.html heruntergeladen werden.

Digital-TV

Für Digital-TV verwende ich Myth-TV. Etwas weiter verbreitet ist das ähnlich gelagerte VDR-Projekt, aufgrund fehlender Unicode-Unterstützung flog es aber wieder von meinem Rechner. Das Programm ist sehr umfangreich, ist theoretisch für Analog- und Digital-Fernsehen verwendbar und läßt sich als Videorekorder verwenden. Es besteht aus einem Backend-Server und einem Frontend. Der Backend-Server ist für die Kommunikation mit einer Mysql-Datenbank, die Aufnahme von Filmen und die Aufbereitung für das Frontend notwendig. Der MySQL-Server muss bei Programmstart laufen. In der Datenbank werden die aktuellen TV-Programme gespeichert: bei DVB werden die Daten aus dem EPG-Datenstrom der Sender gezogen, bei Analog-Empfang ist ein Programm wie XML-TV notwendig. Das Backend kann mit mehreren TV-Karten umgehen, die Einstellung der Hybridkarte als Digital- und Analog-Empfangsgerät funktioniert aber nicht aufgrund oben genannter Problematik. Die für den Digitalempfang benötigte Sendertabelle (channels.conf) kann durch Programme wie dvbscan erstellt werden (Ausgabe nicht VDR-, sondern Xine-Format), wenn der Scan mit Myth-TV nicht zum Ergebnis führt. Für die sonstigen Einstellungen gibt es umfangreiche Dokumentation.

Analog-TV

Die Programme für den Bezug von TV-Programmen für Myth-TV beziehen die Daten von frei verfügbaren Webseiten mittels Skript, diese funktionieren aufgrund geänderter Webseiten aber in der Regel nicht mehr. Für Analog-TV verwende ich tvtime. Das Programm hat voreingestellte Sendertabellen mit den zugehörigen Frequenzen, kann allerdinsg auch selbst nach Sendern scannen. Der Ton muss allerdings umständlich vom Ausgang der Tv-Karte abgegriffen werden, wenn es nicht über ein Kabel mit der Soundkarte verbunden ist. Dafür sind folgende Schritte notwendig:

  1. Ermittlung der Devicenummer: Bei Verwendung der Alsa-Treiber in /dev/snd nachschauen, die pcm-Nodes mit p(lay) stehen für Ausgang, c(apture) für Eingang, die TV-Karte (erste Zahl beschreibt die Geräte) hat nur einen Eingang.

  2. Abgreifen der Soundausgabe der TV-Karte und Umleiten mit sox auf den Soundkarten-Eingang:

Code: 'arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | sox -q -c 2 -r 32000 -w -t wav - -t alsa hw:0,0'

In diesem Fall ist hw:1,0 die TV-Karte und hw:0,0 Eingang der Soundkarte

  1. dauerhafte Einstellung: Einfügen der Module in /etc/modules.autoload.d/kernel-2.6 (dies ist notwendig, damit die TV-Kartentreiber vor den Soundkarten-Modulen geladen werden und die Gerätekennung in /dev/snd nicht durch zufällige Veränderung der Lade-Reihenfolge durch hotplug/udev geändert wird)

PCI-WLAN-Karte D-Link AirPlus G DWL G630 Rev. C

Die Karte verwendet den Chip Ralink RT61. Ralink unterstützt Linux hervorragend. Es werden eigene Open-Source-Treiber entwickelt, aber auch mit dem serialmonkey-Projekt zusammengearbeitet, welches im rt2x00-Projekt Treiber für ralink-Chips entwickelt. Meines Wissens gab es noch keine Umstellung auf den neuen ieee80211-Wlan-Stack und Integration in den Linux-Kernel. Man muss den RT61-Treiber deshalb selbst herunterladen, kompilieren und die Konfigurations-Datei entsprechend den Zugangsdaten anpassen. Der alte WLAN-Stack sollte im Kernel ebenfalls kompiliert werden. Ich konnte den Treiber lediglich mit WEP zum Laufen bringen, mit WPA-Verschlüsselung erhielt ich keine Verbindung. Allerdings sollen mit dem Treiber von April 2007 die WPA-Probleme behoben sein.

Digitalkamera Fuji Finepix F31d

Die Digitalkamera wird durch das gphoto2-Projekt unterstützt, Frontends sind z.B. Digikam oder gtkam. Dabei wird für diese Kamera das PTP-Protokoll verwendet. Damit lassen sich einfache Dateibefehle wie Lesen und Schreiben realisieren, eine Fernsteuerung der Kamera ist leider nicht möglich. Allerdings verwende ich für Datenaustausch mit SD-/xD-Karten mittlerweile

interner Multi-Card-Reader c-enter von Pearl

Im Katalog von Pearl wurde vorbildlicherweise gleich die Linux-Kompatibilität erwähnt. Laut lsusb heißt es Neodio Technologies Corp. 7-in-1 Card Reader. Es wird als ein USB-Mass-Storage-Device eingebungen, bei dem unterschiedliche Nodes für die einzelnen Card-Slots angelegt werden.

Chipdrive Micro 110 V4.30

Dies ist ein Kartenleser von Towitoko für Chipkarten/Smartcards/Krankenkarten und wird unter anderem für HBCI-Banking benötigt. Die Treiber gibt es bei http://www.geocities.com/cprados/.