Archiv/em28xx

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Bearbeiten von Paketquellen

  3. Ein Terminal öffnen

  4. Einen Editor öffnen

  5. Archive entpacken

  6. Kernelmodule laden

  7. Restricted-Modules Linux-Headers: welche Version?

  8. Root-Rechte

  9. Dateien und Verzeichnisse kopieren

Achtung!

Der Stick benötigt unbedingt einen USB-2.0-Port, ein USB-1.1-Anschluss liefert nicht die zur Übertragung notwendige Bandbreite. Also ggf. über den Gerätemanager zunächst die USB-Anschlüsse überprüfen.

Inhaltsverzeichnis
  1. em28xx-new
    1. Vorbereitung
    2. Installation
    3. em28xx-new-Paket ab Intrepid
    4. Liste der unterstützten Karten
  2. Firmware ab Intrepid Ibex
  3. Überprüfung
  4. Sender suchen und anschauen
  5. Fernbedienung
  6. Problembehebungen
    1. Ton-Probleme
    2. Hinweis zum TerraTec Prodigy Hybrid USB ...
    3. Hinweis zum Terratec Cinergy Hybrid T US...
    4. Installation des Pinnacle Systems 330e D...
  7. Weitere unterstützte Karten/Sticks
    1. DVB-T-Empfang
    2. Analog-Empfang
    3. Webcams
    4. "Framegrabbers" mit Empiatech Chip
  8. Links

Dieser Artikel beschreibt die Installation und Inbetriebnahme von TV-Karten, die mit einem em28xx-Treiber funktionieren. Das Vorgehen wird exemplarisch an einer Terratec Cinergy Hybrid T USB XS (andere Karten siehe unten) gezeigt.

Grundsätzlich lassen sich zwei Methoden verwenden, die sich allerdings gegenseitig ausschließen:

  1. Erstellen und Laden der Module aus em28xx-new;

  2. Verwenden von fertigen Paketen (versions- und kernelabhängig), ab Jaunty.

  3. xc3028-v27.fw-Datei verwenden - seit Kernelversion 2.6.27 ist der Support z.T. in den Kernel bereits integriert, es fehlt nur eine Firmware-Datei

Es gibt Karten, die mit beiden Versionen funktionieren, einige laufen allerdings nur mit der ersten oder der zweiten Methode.

Achtung!

Markus Rechberger hat leider die Entwicklung von em28xx-new komplett eingestellt; sein Repo hat er komplett aus dem Netz genommen. Es existieren einige Anpassugen an neuere Kernelversionen. Diese Daten finden sich auch auf bitbucket.org ⮷; letzte Aktualisierung dort ist allerdings für Kernel 2.6.30. Es existieren Patche bis einschließlich Kernelversion 2.6.37 (zu finden auf opensuse.org 🇬🇧)

Alternative: Die Paketversionen funktionieren auch mit Kernelversion ab 2.6.31-14, die letzten erstellten Pakete sind für 2.6.35-28

em28xx-new

Vorbereitung

Pakete installieren

Folgenden Pakete müssen installiert [1] werden:

  • build-essential

Um den Stick nutzen zu können, müssen die benötigten Kernel-Module erstellt werden. Dafür muss noch das Paket

  • linux-source [7]

installiert werden. Außerdem wird das Paket linux-headers passend zur eigenen Kernel-Version und -Architektur (-generic, -386, -generic-pae usw.) benötigt. Dieses Paket lässt sich über den folgenden Befehl installieren:

sudo apt-get install linux-headers-$(uname -r) 

Installation

Diese Methode, die Kernelmodule für Karten mit einem empiatech-Chip zu installieren (Liste der unterstützten Geräte), besteht seit Hardy Heron (bzw. Kernelversionen ab 2.6.24-16).

em28xx-new-Paket ab Intrepid

Etwas einfacher ist diese Methode; allerdings sind die Pakete ggf. nicht für alle Kernel-Versionen verfügbar. Wer einen anderen Kernel verwendet, ist mit der Methode oben besser bedient. Nach dieser ursprünglich für die Pinnacle Hybrid 320e/330e Karten (320e = USB-ID eb1a:2881; 330e = USB-ID 2304:0226) entwickelten Methode können auch andere em28xx-basierte Karten verwendet werden. PAkete sind bis Kernelversion 2.6.35-28 vorhanden; ggf. kann man das entstehende Verzeichnis /lib/modules/KERNELVERSION/empia, sowie weitere im .deb vorhandene Dateien (in em28xx.35-28 z.B. modules.builtin, modules.devnames, modules.softdep) in das bestehende Verzeichnis /lib/modules/EIGENER_KERNELVERSION verschieben, das funktioniert allerdings leider nicht für alle Versionen. Ggf. den Rechner mit der Kernelversion starten, für die das Paket vorhanden ist.

Hinweis!

Fremdpakete können das System gefährden.

Zunächst eine eventuell vorhandene Firmware-Datei xc3028-v27.fw aus /lib/firmware wieder entfernen, oder zumindest umbenennen (Root-Rechte erforderlich!)

Dann von jiemeb.free.fr ⮷ das für den eigenen Kernel/Architektur passende Paket herunterladen und installieren; und anschließend dieses cleanEm28xxSkript ⮷ herunterladen, ausführbar machen und im Terminal starten. Das Skript entfernt einige im Konflikt stehende Module aus /lib/modules/"eigene Kernelversion"/kernel/drivers/media/common/tuners; die Nachfragen nach dem Entfernen regulärer *.ko-Dateien also bejahen.

Dadurch werden bisher auftretende Probleme mit einigen Karten (keine Funktion, fehlender Sound, Abstürze etc.) behoben; nach einem Neustart sollten die Karten reibungslos funktionieren. Weitere Informationen finden sich hier 🇩🇪 bei ubuntu-forum.de; oder hier 🇫🇷 im französischen Ubuntu-Forum.

Diese Methode greift auch für einige, leider nicht alle, Karten, die mit em28xx-new (s.o.) funktioniert hatten, aber unter Kernelversionen ab 2.6.27-9 mit dem integrierten v4l-dvb-Support Probleme bereiten (z.B. Terratec Cinergy Hybrid T USB XS, USB-ID 0ccd:005e und 0ccd:0042). Die bisher verwendeten Module werden mit diesem Verfahren auch ab dem Kernel 2.6.27-9 nutzbar gemacht.

Hinweis:

Diese Methode funktioniert ggf. nicht bei pae-Kerneln für multicore-Rechner! (uname -r-Ausgabe z.B. 2.6.29-22-generic-pae o.ä.)

Liste der unterstützten Karten

In dieser Liste sind die derzeit von em28xx-new unterstützten Geräte verzeichnet, wie sie im Quellcode der Software (in em28xx-cards.c) stehen (Stand 26.02. 2009). Bitte Angaben zu eigenen Karten ergänzen, wenn nicht vorhanden.

Die von den Paketversionen unterstützen Karten können abweichen, da zum Erstellen ggf. andere Versionen von em28xx-new verwendet wurden.

Unterstützte Karten
USB-ID Em-Chip interner Name Handelsbezeichnung Hinweise
eb1a:2800 EM2800 GENERIC
eb1a:2820 EM2820 GENERIC
eb1a:2821 EM2821 GENERIC Pixelview Prolink PlayTV USB 2.0 (?)
eb1a:2750 EM2750 GENERIC
eb1a:2860 EM2860 GENERIC
eb1a:2861 EM2861 GENERIC
eb1a:2881 EM2881 GENERIC BestBuy Easy TV USB hybrid (?)
Pinnacle PCTV Hybrid Pro Stick (?)
eb1a:2870 EM2870 GENERIC Pinnacle PCTV USB Stick
eb1a:e310 EM2880 MSI_DIGIVOX_AD MSI DigiVox A/D
eb1a:e320 EM2880 MSI_DIGIVOX_AD_II MSI DigiVox A/D II
eb1a:e300 EM2861 KWORLD_PVRTV_300U KWorld PVRTV 300U
eb1a:e350 EM2870 KWORLD_350U Kworld 350 U DVB-T
eb1a:e355 EM2870 KWORLD_355U Kworld 355 U DVB-T
eb1a:e357 EM2870 KWORLD_355U
1ae7:0380 EM2870 KWORLD_355U
0ccd:0036 EM2820 TERRATEC_CINERGY_250 TerraTec Cinergy 250 USB Details 🇩🇪
2304:0208 EM2820 PINNACLE_USB_2 Pinnacle PCTV USB 2
2040:4200 EM2820 HAUPPAUGE_WINTV_USB_2 Hauppauge WinTV USB 2
2040:4201 EM2820 HAUPPAUGE_WINTV_USB_2_R2 Hauppauge WinTV USB 2
2040:650a EM2870 HAUPPAUGE_WINTV_USB_2_R2
2304:0207 EM2820 PINNACLE_DVC_90 Pinnacle Dazzle DVC 90
1b80:e302 EM2820 PINNACLE_DVC_90 Kiaser Baas Video to DVD maker
2304:021a EM2820 PINNACLE_DVC_100 Pinnacle Dazzle DVC 100
2040:6500 EM2880 HAUPPAUGE_WINTV_HVR_900 Hauppauge WinTV HVR 900
2040:6502 EM2880 HAUPPAUGE_WINTV_HVR_900_R2 Hauppauge WinTV HVR 900 (R2)
0ccd:0042 EM2880 TERRATEC_HYBRID_XS TerraTec Cinergy Hybrid T USB XS Details 🇩🇪 Achtung: als Chip wird z.T. trotz gleicher USB-ID EM2882 verwendet; em28xx-new kompiliert nicht unter Lucid, daher sollte man besser v4l nutzen, mit dem der Stick funktioniert, wenn man den Quellcode wie hier beschrieben ändert.
0ccd:004f EM2860 TERRATEC_HYBRID_XS Terratec Cinergy A Hybrid XS
0ccd:004c EM2880 TERRATEC_HYBRID_XS_FR Terratec Hybrid XS Secam
0ccd:005e EM2882 TERRATEC_HYBRID_XS TerraTec Cinergy Hybrid T USB XS (em2882) Details 🇩🇪
0ccd:0043 EM2870 TERRATEC_XS TerraTec Cinergy T XS Details 🇩🇪
0ccd:0047 EM2880 TERRATEC_PRODIGY_XS TerraTec Prodigy Hybrid T XS Details 🇩🇪 (Clone/OEM-Version der Cinergy-Hybrid)
185b:2870 EM2870 COMPRO_VIDEOMATE Compro, VideoMate U3
0413:6023 EM2800 LEADTEK_WINFAST_USBII Leadtek Winfast USB II
2001:f112 EM2820 DLINK_USB_TV D-Link DUB-T210 TV Tuner
eb1a:2883 EM2883 GENERIC
2040:6513 EM2883 HAUPPAUGE_WINTV_HVR_950 HCW HVR-980
2040:6517 EM2883 HAUPPAUGE_WINTV_HVR_950 HP HVR-950
2040:651b EM2883 HAUPPAUGE_WINTV_HVR_950 RP HVR-950
2040:651f EM2883 HAUPPAUGE_WINTV_HVR_950 HCW HVR-850 Details 🇬🇧
2304:0227 EM2883 PINNACLE_PCTV_HD_PRO Pinnacle PCTV HD Pro Stick
2304:0226 EM2882 PINNACLE_HYBRID_PRO Pinnacle Hybrid Pro (2) (330e) unter jaunty momentan ggf. nur .deb-Methode nutzbar
eb1a:2751 EM2751 EMPIA_SAMPLE
eb1a:e305 EM2880 KWORLD_DVB_305U KWorld DVB-T 305U
eb1a:a316 EM2883 KWORLD_HYBRID_A316 Kworld PlusTV HD Hybrid 330
093b:a005 EM2861 PLEXTOR_PX_TV100U Plextor ConvertX PX-TV100U
eb1a:50a6 EM2860 GADMEI_UTV330 Gadmei UTV 330
0ccd:0072 EM2883 TERRATEC_HYBRID_XS_FM TerraTec Cinergy Hybrid T USB XS FM Details 🇩🇪; funktioniert nur em28xx-new, ggf. auch nur mit einem Patch!
0ccd:0092 EM2883 TERRATEC_HYBRID_XS_FM TerraTec Cinergy Hybrid T USB XS FM Details 🇩🇪; ggf. nicht unter hardy nutzbar!
eb1a:2863 EM2863 EMPIA_GENERIC
eb1a:f306 EM2883 KWORLD_HYBRID_F306 KWorld PlusTV F306
eb1a:e306 EM2883 KWORLD_HYBRID_F306 development only
1b80:e329 EM2888 KWORLD_HYBRID_E329
eb1a:2889 EM2888 EMPIA_HYBRID
eb1a:e323 EM2883 KWORLD_HYBRID_E323 Kworld VS-DVB-T 323UR
eb1a:a139 EM2888 LINCOLN_TV_FM Lincoln TV FM
0438:b002 EM2883 ATI_TVWONDER600 AMD ATI TV Wonder HD 600
eb1a:2875 EM2875 SAMPLE_ISDBT
eb1a:2879 EM2879 SAMPLE_DMB
eb1a:e301 EM2860 KAIOMY_TVNPC_U2 Kaiomy TVnPC U2
0413:6f02 EM2882 LEADTEK_PALMTOP_DTV_200H
185b:2041 EM2820 COMPRO_VIDEO_MATE Compro VideoMate ForYou/Stereo
eb1a:e359 EM2870 KWORLD_355U
1d2c:1012 EM2883 EQUINUX_TUBESTICK_ATSC Equinux TubeStick Hybrid ATSC Details 🇬🇧
0ccd:008e EM2888 TERRATEC_XS_HTC TerraTec Cinergy HTC USB XS HD Details 🇩🇪 wird nicht unterstützt! (hier)
eb1a:2885 EM2885 EMPIA_DVBC MSI DigiVox mini Trio (Unterstützung wird getestet)
eb1a:8175 EM28175 EMPIA_HYBRID

Firmware ab Intrepid Ibex

Hinweis:

Die folgende und die oben genannten Methoden schließen sich gegenseitig aus!

Seit der Einführung von Intrepid Ibex werden viele Karten schon direkt vom Kernel unterstützt; es fehlt nur eine Firmware-Datei, um die Karten - spätestens nach einem Neustart - funktionsfähig zu machen. Informationen zu unterstützten Karten, z.T. mit USB-ID finden sich hier auf Linuxtv.org 🇬🇧. Nachteil: Die Verwendung der Fernbedienung ist ggf. nicht möglich; sie wird bei dieser Methode momentan oft nicht erkannt.

Hinweis:

Die Firmware ist in aktuellen Ubuntuversionen im Paket linux-firmware-nonfree enthalten und kann nach Installation sofort genutzt werden.

Es muss ggf. das Paket

korrekt installiert sein.

Leider funktioniert diese Methode noch nicht für alle in der Liste oben aufgeführten Karten; es erscheinen in der Ausgabe von dmesg 🇬🇧 u.A. Fehlermeldungen wie

[ 5985.573727] em28xx #0: The support for this board weren't valid yet.
[ 5985.573732] em28xx #0: Please send a report of having this working
[ 5985.573736] em28xx #0: not to V4L mailing list (and/or to other addresses) 

oder

[   34.564136] em28xx #0: Your board has no unique USB ID and thus need a hint to be detected.
[   34.564141] em28xx #0: You may try to use card=<n> insmod option to workaround that.
[   34.564144] em28xx #0: Please send an email with this log to:
[   34.564147] em28xx #0: 	V4L Mailing List <video4linux-list@redhat.com>

Eventuell hilft es dann, mit den Befehlen

sudo rmmod em28xx
sudo modprobe em28xx card="xx"  # "xx" steht für die Kartennummer aus em28xx.h
sudo modprobe em28xx-dvb 

ein ggf. geladenes em28xx-Modul zu entfernen und es kartenspezifisch neu zu laden (ggf. es auch mit em28xx-alsa versuchen).

Allerdings funktioniert auch das nicht immer; es kommt z.T. zu Soundproblemen besonders im Analog-Betrieb. Dann hilft es, die oben beschriebene Standard-Methode anzuwenden. Falls auch die Methode nicht greift, bleibt als temporäre Abhilfe die Installation und Verwendung eines "früheren" Kernels.

Überprüfung

Ob alles geklappt hat, kann man in einem Terminal [3] mit

dmesg 

überprüfen. In der (etwas umfangreicheren) Ausgabe sollten sich dann Einträge wie

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[   17.752146] em28xx #0: V4L2 VBI device registered as /dev/vbi0
[   17.769273] em28xx #0: V4L2 device registered as /dev/video0
[   17.769415] input: em2880/em2870 remote control as /devices/virtual/input/input6
[   17.800341] em28xx-input.c: remote control handler attached
[   17.800347] em28xx #0: Found Terratec Hybrid XS
[   17.800365] audio device (0ccd:0042): interface 1, class 1
[   17.800378] audio device (0ccd:0042): interface 2, class 1
[   17.800411] usbcore: registered new interface driver em28xx
[   17.863041] em2880-dvb.c: DVB Init
[   18.217635] DVB: registering new adapter (em2880 DVB-T)
[   18.217643] DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)...
[   18.218274] Em28xx: Initialized (Em2880 DVB Extension) extension

finden, die einem anzeigen, dass die Treiber geladen sind, der Stick erkannt ist und alles rund läuft.

Sender suchen und anschauen

Es gibt etliche Programme, welche man für DVB-T nutzen kann, unter anderem Kaffeine, VLC, Totem und XINE. Für die Grundkonfiguration ist unter Umständen die Verwendung von dvb-utils erforderlich. Falls kein Ton wiedergegeben wird, liegt es eventuell daran, dass nicht die richtigen Codecs installiert sind.

Für analogen Empfang empfehlen sich Archiv/xawtv, die Konfiguration verhält sich ähnlich der für normales Anlog-TV .

Fernbedienung

Die Fernbedienung funktioniert z.Z. nur teilweise "out-of-the-box" (Zahlentasten, Lautstärke, Up, Down, Left, Right, Delete, Home, Power). In diesem Thread stehen zur Verwendung von Lirc nähere Einzelheiten zur Einrichtung der Terratec-Cinergy-Hybrid-Fernbedienung. Mit der Firmware-Methode ist noch kein Erkennung der IR-Empfänger implementiert; die Fernbedienungen funktionieren daher momentan ggf. nur mit den Modulen aus em28xx-new.

Problembehebungen

Ton-Probleme

Bei einigen TV-Karten (z. B. Hauppauge HVR 900 Modell 65018, Pinnacle Hybrid Pro Stick (EB1A:2881)), kann es zu Ton-Problemen kommen. Ein Workaround hierzu könnte sein, in einem Terminal Folgendes einzugeben [3] :

arecord -D hw:X,0 -f S16_LE -c2 -r48000  | aplay 

Das X steht für die Audiohardware. Wenn nur eine Soundkarte installiert ist, wäre eine 1 einzusetzen. Es wird bei 0 angefangen zu zählen und 0 ist die ursprüngliche Soundkarte. Ggf. ist noch die Angabe einer Puffergröße "--buffer-size" nötig, z.B.

arecord -D hw:X,0 -f S16_LE -c2 -r48000 --buffer-size 1000 | aplay --buffer-size 1500 

Ansonsten kann man sich die Hardware auch mit

arecord -l 

anzeigen lassen. Die in Frage kommende Karte hat den Namen "Em28xx Audio". Wenn kein Ton zu hören ist, hilft es häufig, die Karte vom Rechner zu trennen und wieder zu verbinden.

Zeigt "arecord -l" kein entsprechendes Gerät an, kann dieses zwei Ursachen haben:

  1. Die TV-Karte hat keine eigene Soundausgabe. Dann sollte es ein Kabel von der TV-Karte zur Soundkarte geben. Als " X" im obigen Befehl nimmt man dann die Soundkarte.

  2. Der ALSA-Treiber für die Karte ist nicht (richtig) installiert. Vor allem bei einem selbstkompilierten ALSA-Treiber kann es vorkommen, dass man nur den Treiber für die eigene Soundkarte kompiliert hat. Hier empfiehlt sich die Neu-Kompilierung des alsa-Treiberpakets. Statt "--with-cards=x", gibt man dann "--with-cards=x,y" an, wobei "y" für den Audio-Treiber der TV-Karte steht (z.B. usb-audio).

Hinweis zum TerraTec Prodigy Hybrid USB Stick (USB ID=0ccd:0047) und Terratec Cinergy T USB XS (USB ID=0ccd:0043)

Das Kernelmodul em28xx sollte mit dem folgenden Parameter neu geladen werden:

sudo rmmod em28xx_dvb em28xx
sudo modprobe em28xx card=16
sudo modprobe em28xx_dvb 

Eine genauere Anleitung hierzu findet sich im Forum.

Hinweis zum Terratec Cinergy Hybrid T USB XS (USB ID=0ccd:0042)

Wenn der Sound beim analogen Fernsehen nicht funktioniert muss das Modul em28xx aus dem Speicher entfernt und mit dem Parameter card=55 neu geladen werden.

sudo rmmod em28xx_dvb em28xx
sudo modprobe em28xx card=55
sudo modprobe em28xx_dvb 

Unter Lucid Lynx 10.04 funkioniert diese Methode allerdings nicht, man verwendet besser v4l. Eine genauere Anleitung hierzu findet sich im Forum.

Installation des Pinnacle Systems 330e DVB-T USB

Dieser Stick funktioniert mit den oben angegebenen Vorgehensweisen nicht. Stattdessen geht man wie folgt vor:

Pakete installieren

Folgenden Pakete müssen installiert [1] werden:

  • linux-headers-* (der Rechnerarchitektur entsprechend, [7])

  • perl

  • unzip

Firmware installieren

Zunächst lädt man die zwei Firmware-Dateien drxd-a2-1.1.fw und drxd-b1-1.1.fw von kernellabs.com 🇬🇧 herunter und kopiert sie mit Root-Rechten [8] nach /lib/firmware/.[9] Anschließend benötigt man eine dritte Firmware-Datei, welche von einem Perl-Skript aus der Windows-Treiber-Datei extrahiert wird. Dazu wird dieses Skript zuerst in das persönliche Verzeichnis kopiert und ausführbar gemacht:

cd ~
cp /usr/src/linux-headers-`uname -r`/Documentation/video4linux/extract_xc3028.pl ~/extract_xc3028.pl
chmod +x extract_xc3028.pl 

Dann wird die Treiber-Datei heruntergeladen und entpackt, denn diese Datei muss sich im selben Verzeichnis befinden wie das Skript:

wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
unzip -j HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys 

Mit dem folgenden Befehl wird die Firmware schließlich aus der Treiber-Datei extrahiert:

./extract_xc3028.pl 

Die erzeugte Datei namens xc3028-v27.fw befindet sich nun im persönlichen Verzeichnis. Auch diese Datei kopiert man nach /lib/firmware/.[9] Damit die Firmware-Dateien geladen werden, muss das Gerät gegebenenfalls abgezogen und wieder angeschlossen werden.

Das Gerät in Betrieb nehmen

Nun erstellt man mit w scan oder scan eine Datei, meist channel.conf genannt, die von Mediaplayern als Liste der gefundenen Kanäle benutzt wird.

Weitere unterstützte Karten/Sticks

Etliche Karten laufen mit der selben Methode:

Die Terratec Cinergy T USB XE funktioniert mit anderen Treibern, weitere Infos aus ventoso.org 🇬🇧 , und im Forum!

DVB-T-Empfang

Analog-Empfang

Webcams

"Framegrabbers" mit Empiatech Chip