Um neue Hardware unter Linux betreiben zu können, ist es fast immer
notwendig, einen neuen Kernel zu konfigurieren und kompilieren. Für
weitergehende Informationen zur Konfiguration und Kompilierung des Kernel
gibt es die
Linux Kernel HOWTO. Besonders hilfreich ist die
Dokumentation, die mit dem Kernel mitgeliefert wird; alle Dateien sind im
Verzeichnis Documentation/ des Kernel Sources zu finden.
Stellen Sie vor dem Konfigurationsbegin genau fest welche Hardware Sie
besitzen !
Wenn Sie Windows parallel betreiben, dann können Sie eventuell in der
Windows TV Software unter Info die Daten abrufen oder in der Systemsteuerung.
Die Software
Hauppauge
WinTv 2000 bietet da z.B. sehr viele Information (Siehe unter "About
WinTv32 ->Driver Details".
Programm für
Windows das den BT Chiptyp erkennen kann
Module müssen fast immer bei einer Änderung der Kernel-Version neu erzeugt werden. Innerhalb gleicher Kernel-Version ist es normallerweise nicht notwendig. Bei SMP sollten die Module immer neu erzeugt werden. Der erste Schritt zu einem neuen Kernel ist die Konfiguration. Hier wählt man die Kernelkomponenten aus, die man braucht. Als erstes wechselt man in das Verzeichnis /usr/src/linux. Da das X-Window für TV-Karten verher schon installiert sein muß ändert man am bequemsten die Konfiguration mit dem grafischen Konfigurationstool durch Eingabe von:
make xconfig
Es ist zu empfehlen alle Kernel-Module, die nicht zwingend während des Bootvorgangs benötigt werden als ladbare Module zu realisieren und den Kernel Module Loader zu aktivieren. Wählen Sie nun die entsprechende Hardware aus und Speichern die Konfiguration. Damit die Konfigurationsänderungen wirksam werden, muß man den Kernel und die Module kompilieren. Dies macht man am besten so:
make dep clean zImage modules modules_install lilo
Kernel HOWTO (deut. Version)
Modules-Mini
HOWTO (engl. Version)
Neue Kernel Versionen
(http://www.de.kernel.org)
Der bttv Treiber ist von Ralph und Marcus Metzler entwickelt worden. Alan
Cox hat für die Treiber die
Video4Linux
API
erstellt. Über diese Schnittstelle komunizieren Modul und Anwendersoftware
wie z.B. xawtv. Die neueste Version des BTTV Treibers (aktuelle Version
0.6.4) bekommt man unter der URL
http://www.thp.uni-koeln.de/~rjkm/linux/bttv.html.
Seit Kernelversion 2.2 sind die BTTV Module auch direkt in den Kernel Sources
enthalten. Den neuesten Kernel kann man unter:
http://www.de.kernel.org
herunterladen.
Der BTTV Treiber ist in fünf Module gegliedert:
ACHTUNG:
Wenn Sie besitzer einer Hauppauge Win/TV Karte sind,
dann sollte der Inhalt des EEPROMS vor dem Start der TV Programme gesichert
werde. Das EEPROM könnte beim ersten Start überschreiben werden!
Weiter Information stehen bei SuSE Distribution in der Textdatei
README.SuSE.german im Verzeichnis /usr/doc/packages/bttv.
Sichern des EEPROM Inhaltes unter SuSE Linux:
Bevor der Inhalt des EEPROMS gesichert werden kann muß das bttv Modul
geladen werden. Danach wechselt man in das Verzeichnis
/usr/doc/packages/bttv/apps (alternativ auch im BUILD oder TOOLS Verzeichnis)
und gibt mit "root rechten"
make EEPROM
ein. Das EEPROM wird damit in die Dateien tvee.h geschrieben. Bei Erfolg sieht die Bildschirmausgabe folgendermaßen aus:
Trying to create a new tvee.h...
OK, it seems to work - create it now.
Bei Fehlermeldung lesen Sie bitte die README.SuSE.german.
Bei Linux wird auf Geräte (engl. device) über spezielle Eintäge
die unter /dev stehen zugegriffen. In diesen Dateien sind Gerätenummern
über die der Kernel die Geräte anspricht enthalten.
Unter SuSE Distributionen sind die erforderlichen Devices (dev/bttv) bereits
erstellt. Bei anderen Distribution kann das anders sein und muß dann
noch nachgeholt werden.
Das anlegen von devices geschiet mit dem Befehl mknod. Für
weiter Information die man page von mknod und die Datei
/usr/src/linux/Documentation/devices.txt lesen.
Angeblich soll das BTTV Modul auch ein Skrip Namens MAKEDEV
enthalten, das die Devices automatisch erzeugt. Ich habe es aber nicht gefunden!
Für die manuelle Erzeugung kann man folgendermaßen vorgehen:
cd /dev
mknod video0 c 81 0
mknod video1 c 81 1
mknod video2 c 81 2
mknod video3 c 81 3
ln -s video0 video
Video4Linux provides the following sets of device files. These live on the character device formerly known as "/dev/bttv". /dev/bttv should be a symlink to /dev/video0 for most people.
| Device Name | Minor Range | Function |
|---|---|---|
| /dev/video | 0-63 | Video Capture Interface |
| /dev/radio | 64-127 | AM/FM Radio Devices |
| /dev/vtx | 192-223 | Teletext Interface Chips |
| /dev/vbi | 224-239 | Raw VBI Data (Intercast/teletext) |
Video4Linux programs open and scan the devices to find what they are looking for. Capability queries define what each interface supports. The described API is only defined for video capture cards. The relevant subset applies to radio cards. Teletext interfaces talk the existing VTX API.
Die Ladereihenfolge der Module ist:
Das Entladen geschieht in umgekehrter Reihenfolge.
Treiber in Modulform erhalten ihre Parameter durch das Komando insmod
bzw. modprobe, mit dem auch gleichzeitig das Modul selbst geladen
wird. Wenn für eine Modul mehrere Parameter angegeben werden soll, dann
müssen diese zwingend durch Leerzeichen voneinander getrennt werden!
Das Script "update" (in /usr/doc/packages/bttv/apps bzw. .../bttv/tools)
übernimmt das Entladen alter module, sowie das Laden neuer. Um es zu
benutzen, muß man die Modul-Parameter an Ihre Karte anpassen!
Der einfachste Weg ist seit Kernel-Version 2.2.x der Einsatz des "Kernel
Module Loader". Der Kernel Module Loader wacht im Hintergrund und sorgt
dafür, daß benötigte Module automatisch geladen werden, sobald
auf die entsprechende Funktionalität des Kernels zugegriffen wird.
Unbenutzte Module werden automatisch nach einer bestimmten Zeit aus dem Speicher
entfernt. Um den Kernel Module Loader zu verwenden muß man die Option
"Kernel Module Loader" bei der Kernelkonfiguration aktivieren.
Ein Modul wird mit Hilfe eines alias Eintrags in der /etc/conf.modules
(bzw. /etc/modules.conf) automatisch bei Gebrauch nachgeladen. Detailierte
Information dazu findet man in der man page von conf.modules (man conf.modules).
Der alias Eintrag für die BTTV Treiber lautet:
alias char-major-81 bttv
The following directives are useful for (optionally) executing specific commands when loading and unloading a module. Note that even aliased module names can have these directives, which will be executed in the proper order together with any directives for the unalised module name.
pre-install module command
Execute command before installing the specified module. See the below directive
as well.
install module command
Execute command instead of the default insmod when installing the specified
module.
post-install module command
Execute command after installing the specified module. See the above directive
as well.
pre-remove module command
Execute command before removing the specified module. See the above directive
as well.
remove module command
Execute command instead of the default (built-in) rmmod when removing the
specified module.
post-remove module command
Execute command after removing the specified module. See the below directive
as well.
options <modulname> <param1>=<wert1> ...
| Variable | |
| <modulname> <param1> <wert1> |
Name der Moduldatei ohne Extension .o Parameter 1 Wert, der Parameter 1 zugeordnet werden soll |
Beispiel: options bttv card=10 pll=1
videodev.o
Dies ist das Basis video4linux Modul, alle video Treiber (einschließlich
bttv) registrieren sich hier selber.
Das
generic
i2c module ist für das Management der Module (außer dem
videodev.o) verantwortlich. Außer das videodev Modul benutzen alle
den i2c.
insmod Argumente: (Gilt für BTTV Version 0.6.4 und höher)
| scan=1 | Scant den Bus für i2c devices |
| verbose=0 | Schließt den i2c. |
| i2c_debug=1 | Für debugging. Es überträgt den ganzen (software) i2c Busverkehr in die syslog. |
Das Tuner-Modul wird zum Empfang des Fernsehbildes benötigt. Nur wenn
man eine Kamera oder externen Tuner benutzt, dann kann man das Modul
weglassen.
insmod Argumente: (Gilt für BTTV Version 0.6.4 und höher)
| debug=1 | Überträgt einige debug Informationen in die syslog. |
| type=n | Art des Tuners. Setzen Sie für n die entsprechende Zahl (z.B: type=1)
ein. 0: Temic PAL Tuner 1: Philips PAL_I Tuner 2: Philips NTSC Tuner 3: Philips SECAM Tuner 4: Kein Tuner 5: Philips PAL Tuner 6: Temic NTSC Tuner 7: Temic PAL Tuner |
Die Module msp3400.o, tea6300.o, tda8425.o und tda9855.o sind für die Tonwiedergabe verantwortlich. Welches Modul von den vier man einsetzen muß, hängt von dem Chip auf der Karte ab. Damit die TV-Tonwiedergabe überhaupt funktioniert muß die Soundkarte vorher installiert sein. Testen Sie die Soundkarte z.B. durch Wiedergabe einer WAV-Datei. Denken Sie beim Testen der Tonwiedergabe auch an die Mixer Einstellungen.
msp3400.o
Das msp3400.o Modul ist der Treiber für den msp 34xx Soundprozessor
Chip. Bei Stereo TV-Karte kann man davon ausgehen, daß sich ein msp
34xx Chip auf der Karte befindet.
insmod args: (Gilt für BTTV Version 0.6.4 und höher)
| debug=n | Setzen Sie für n die entsprechende Zahl ein. 1: Überträgt einige debug Informationen in die syslog, 2: Überträgt detailiertere Informationen in die syslog. |
| simple=1 | Benutzt die "short programming" Methode (neuere msp34xx Versionen unterstützen das). Short programming ist eine einfachere Methode, die msp34xx-Familie zu programmieren (der Chip macht dann viel mehr alleine, insbesondere den autodetect des Sound-Standards). Funkioniert aber nur bei neueren Chip-Versionen. |
| once=1 | Überprüft nicht alle paar Sekunden den Audio Modus des
TV Senders. Es wird nur einmal nach einem Senderwechsel der Audio Modus
überprüft. Dies sollte das Problem mit dem verschwinden der
Tonwiedergabe beseitigen. ACHTUNG: Bitte beachten Sie meine Erfahrung mit once=1. Siehe FAQ. |
| amsound=1 | Audio carrier is AM/NICAM at 6.5 Mhz. This should improve things for french people, the carrier autoscan seems to work with FM only... |
tea6300.o
The driver for the tea6300 fader chip. If you have a stereo card and the
msp3400.o doesn't work, you might want to try this one. This chip is seen
on most STB TV/FM cards (usually from Gateway OEM sold surplus on auction
sites).
insmod args: (Gilt für BTTV Version 0.6.4 und höher)
| debug=1 | Überträgt einige debug Informationen in die syslog. |
tda8425.o
The driver for the tda8425 fader chip. This driver used to be part of bttv.c,
so if your sound used to work but does not anymore, try loading this module.
insmod args: (Gilt für BTTV Version 0.6.4 und höher)
| debug=1 | Überträgt einige debug Informationen in die syslog. |
tda9855.o
The driver for the tda9855 audio chip. Afaik, only the Diamond DTV2000 has
this chip.
insmod args: (Gilt für BTTV Version 0.6.4 und höher)
| debug=1 | Überträgt einige debug Informationen in die syslog. |
the bt848 (grabber chip) driver
insmod args: (Gilt für BTTV Version 0.6.4 und höher)
| remap=adr | remap Bt848 memory to adr<<20 Some S3 cards even take up 64MB of memory but only report 32MB to the BIOS. If this 64MB area overlaps the IO memory of the Bt848 you also have to remap this. E.g.: insmod bttv vidmem=0xfb0 remap=0xfa0 |
| vidmem=base frame buffer address>>20 | Oft muss man die Speicheradresse der Grafikkarte (vidmem) angegeben werden. Die Speicheradresse - framebuffer - kann man der Datei ~/.X.err aus Ihrem Homeverzeichniss entnehmen. Diese Datei wird beim Start des X-Servers mit "startx" erstellt . Man kann Sie auch durch den Aufruf von "cat /proc/pci" sichtbar machen. Man sollte darauf achten, daß die Angabe der Speicheradresse stets mit drei Ziffern hinter "0x" erfolgen muss, z.B. "vidmem=0xa80". Die Nullen dahinter werden nicht angegeben! |
| triton1=0/1 | for Triton1 compatibility Triton1 is automatically recognized but this might also help with other chipsets |
| pll=n | Quarz Einstellungen. 0: don't use PLL 1: 28 MHz crystal installed 2: 35 MHz crystal installed |
| radio=n | 0: Keine Radio 1: Radio wird unterstützt |
| card=n | TV-Karte Typ. Setzen Sie für n die entsprechende Zahl (z.B: card=10)
ein. 0: Auto-Detect 1: Miro 2: Hauppauge (alte bt848 Karten) 3: STB 4: Intel 5: Diamond 6: AVerMedia 7: MATRIX Vision MV-Delta 8: FlyVideo 9: TurboTV 10: Hauppauge (Neue bt878 Karten) 11: MIRO PCTV pro 12: Terratec/Vobis TV-Boostar 13: Newer Hauppauge WinCam (bt878) 14: MAXI TV Video PCI2 15: Terratec TerraTV+ 16: Aimslab VHX 17: PXC200 18: AVermedia98 19: FlyVideo98 (neuere FlyVideo Karten) |
remap, card, radio and pll accept up to four comma-separted arguments (for multiple boards). The CARD and PLL defines from the Makefile are used as defaults.
i2c_chardev.o
provides a character device for i2c bus access. Works for 2.1.x only, not
compiled by default.
To load the tuner+msp3400 modules with kerneld/kmod, you should use "modprobe -k tuner; modprobe -k msp3400" in pre-install for bttv.
Bei diesen Beispielen sind die Treiber als Module realisiert.
Hauppauge WinTV PCI
| Model: | Model 61314 Rev. BM |
| Tuner Model: | Phillips FI1216 MK2 |
| Grabber Chip: | BT878 |
| Tuner Audio: | Stereo (MSP3415) |
| Radio: | Kein Radiotuner vorhanden |
| conf.modules: | alias char-major-81 bttv pre-install bttv modprobe tuner; modprobe msp3400 options i2c verbose=1 scan=1 i2c_debug=0 options tuner debug=0 type=1 options bttv card=10 pll=1 |
| Tip: | Verwenden Sie beim msp3400 Modul die Option "once=1" mit Vorsicht! Bei
mir (SuSE 6.1) war nachher über YAST eine Komplette neuinstallation
(nicht Ersetzen !) von KWinTV notwendig, da überhaupt kein Bild mehr
kam.
Bei dem Beispiel muß eventuell noch der "vidmem" Parameter angegeben werden! |
Hauppauge WinTV Radio PCI
| Model: | Keine Angaben |
| Tuner Model: | Phillips FM1216 |
| Grabber Chip: | BT878 |
| Tuner Audio: | Stereo (MSP3415) |
| Radio: | Radio |
| conf.modules: | alias char-major-81 bttv pre-install bttv; modprobe -k msp3400; modprobe -k tuner type=5 options bttv card=10 pl=1 options tuner type=5 |
| Tip: | Bei dem Beispiel muß eventuell noch der "vidmem" Parameter angegeben werden! |
Hauppauge WinTV PCI
| Model: | Model 61324 Rev. C108 |
| Tuner Model: | Phillips FI1216 MK2 |
| Grabber Chip: | BT878 |
| Tuner Audio: | Stereo (MSP3415) |
| Radio: | Kein Radio |
| conf.modules: | alias char-major-81 bttv options bttv card=10 radio=0 pre-install bttv modprobe -k tuner type=5 modprobe -k msp3400 simple=0 once=1 |
Flyvideo II
| Model: | Flyvideo II |
| Tuner Model: | Philips-Tuner |
| Grabber Chip: | BT848a |
| Tuner Audio: | |
| Radio: | Kein Radio |
| conf.modules: | alias char-major-81 bttv options bttv radio=0 card=8 pll=1 options tuner type=1 pre-install bttv modprobe -k tuner # SB 64 PCI vorweg starten pre-install tuner modprobe es1371 post-remove bttv modprobe -r tuner |
| Tip: | Bei schlechtem Empfang mal den Steckplatz wechseln! Wirkte bei Daniel Rudolph Wunder! |
Anubis Typhoon TV Tuner
| Model: | TV Tuner |
| Tuner Model: | Temic 3X7756 Pal |
| Grabber Chip: | BT848a |
| Tuner Audio: | Mono, kein extra Chip |
| Radio: | Kein Radio |
| conf.modules: | alias char-major-81 bttv pre-install bttv /sbin/modprobe -k tuner options ic2 verbose=1 scan=1 i2c_debug=0 options tuner debug=0 type=0 options bttv radio=0 pll=1 card=1 |
Bekannte Hardwareprobleme sind in der Textdatei "problems" vom BTTV Treiber Dokumentiert.

