Bttv devices (bt848, bt878): Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
m (fixed link)
(changed provideo to correct part number)
 
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The '''bttv''' driver is meant for any card that uses the Bt848, Bt878 or Fusion 878A chip for video capture. These can be capture-only cards - which means video is taken directly from a video source without the use of a tuner - or they can be TV cards which make use of tuner and RF circuitry to receive television signals and the capture chip is there to decode the extracted video and audio.
Bttv devices are collectively those PCI cards that are based upon either a [[Bt848]], [[Bt878]] or [[Fusion 878A]] chip, and which are supported under Linux by the [[bttv|bttv and associated kernel driver modules]]. These devices can be capture-only cards - which means video is taken directly from a video source without the use of a tuner - or they can be TV cards which make use of RF tuner circuitry to receive television signals and the capture chip is there to decode the extracted video and audio.


==Supported bttv devices==
==Supported bttv devices==
An up-to-date list of bttv devices supported by V4L-DVB drivers is found in the [http://linuxtv.org/hg/v4l-dvb/file/tip/linux/Documentation/video4linux/CARDLIST.bttv CARDLIST.bttv] file in the master development repository.
An up-to-date list of bttv devices supported by V4L-DVB drivers is found in the [http://git.linuxtv.org/media_tree.git/blob/HEAD:/Documentation/video4linux/CARDLIST.bttv CARDLIST.bttv] file in the master development repository.


Devices supported by the kernel running on your system are listed in your local <code><path_to_your_kernel_sources>/Documentation/video4linux/CARDLIST.bttv</code>.
Devices supported by the kernel running on your system are listed in your local <code><path_to_your_kernel_sources>/Documentation/video4linux/CARDLIST.bttv</code>.
Line 9: Line 9:
If your card is not listed, see the "[[Development: How to add support for a device|How to add support for a device]]" article.
If your card is not listed, see the "[[Development: How to add support for a device|How to add support for a device]]" article.


bttv devices can be challenging to get working with the bttv driver because there are a number of parameters that need to be configured, and these tend to differ for each device. (You can find the configuration settings for already supported devices in <code>/linux/drivers/media/video/bt8xx/bttv-cards.c</code>). Learning what these parameters need to be for your specific device may not be a trivial task. You could try loading the bttv module with the card= parameter set to each one of the cards listed in the [http://linuxtv.org/hg/v4l-dvb/file/tip/linux/Documentation/video4linux/CARDLIST.bttv CARDLIST.bttv] just to see if you'll get lucky and find one that works for your card. Another method used to help discover the hardware settings required for a bttv device is running the device under a Windows OS with video software and the BtSpy monitoring.
bttv devices can be challenging to get working with the [[bttv|bttv driver]] because there are a number of parameters that need to be configured, and these tend to differ for each device. (You can find the configuration settings for already supported devices in <code>/linux/drivers/media/video/bt8xx/bttv-cards.c</code>). Learning what these parameters need to be for your specific device may not be a trivial task. You could try loading the [[bttv|bttv module]] with the card= parameter set to each one of the cards listed in the [http://git.linuxtv.org/media_tree.git/blob/HEAD:/Documentation/video4linux/CARDLIST.bttv CARDLIST.bttv] just to see if you'll get lucky and find one that works for your card. Another method used to help discover the hardware settings required for a bttv device is running the device under a Windows OS with video software and the BtSpy ([http://btwincap.sourceforge.net/custom.html] [http://sourceforge.net/project/showfiles.php?group_id=38123]) monitoring.


Also of interest is the note on getting sound to work with a bttv device: http://git.linuxtv.org/media_tree.git/blob/HEAD:/Documentation/video4linux/bttv/Sound-FAQ
Make sure you post the findings of your investigations here and on the video4linux mailing list (video4linux-list@redhat.com) so that bttv-cards.c can be updated with a new card= entry for your card.

Make sure you post the findings of your investigations here and on the [http://vger.kernel.org/vger-lists.html#linux-media Linux-Media Mailing List] so that bttv-cards.c can be updated with a new card= entry for your card.


==Installation==
==Installation==

Details on the installation of specific cards, grouped by vendor; please add your card here.
Details on the installation of specific cards, grouped by vendor; please add your card here.


{{Note|Some bt878 capture cards have a single chip on board and four inputs on the card's PCI riser. In this case, don't expect multiple input devices. You would have multiple /dev/videoX if you actually had multiple videograbber devices - but you don't. You have one device (the 878A) with multiple inputs, of which only one at a time can be active. This input switching is done by means of the single /dev/videoX API.}}
====[[AVerMedia]]====


===General===
* [[AVerMedia TVCapture 98|TVCapture 98]]
This is a general howto here. It might work, but if there's a more specific one for your specific card in this wiki, you should use that one. If not, you should try this howto here, and if it works, add this section to your card's article in this wiki. Thanks.


====[[Hauppauge]]====
=== Driver ===
The Bt878 chip is supported by new kernel versions -- good news! :)


This is what I've done (Debian Sarge testing, kernel version 2.6.16.9). It follows the standard installation of the [[bttv]] driver for DVB as it is included in new kernels.
* Hauppauge WINTV DBX TV Stereo 125CHNL TV Tuner w/FM Stereo Radio PCI -- [[http://www.linuxjournal.com/node/8116/print writeup in Linux Journal]]


Use '''lsmod''' to see if you have all these modules already installed and running.
====[[Hercules Smart TV 2 Stereo| Hercules]]====
bttv
bt878
dvb_core
dst
dvb-bt8xx
If you can't find all of them, try to load them one by one with '''modprobe''', e.g.
modprobe bt878
Now try lsmod again.


If you can find all of them, '''you don't have to re-compile your kernel''' but can use the drivers/modules right away (see below). Otherwise:
* Hercules Smart TV2 Stereo


====[[Leadtek WinFast 2000| Leadtek]]====
==== Kernel re-compile ====
In kernel configuration (make menuconfig) make sure to have:


* Under Device Drivers - Multimedia Devices - Video for Linux
* Leadtek cards including Winfast 2000, Winfast TV2000 XP, Winfast TV2000 XP RM and Winfast TV2000 XP FM
<M> BT 848
[*] DVB for bt878
which is equivalent to these entries in the kernel .config file:
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_BT848_DVB=y


====Linux Media Labs====


* Under Device Drivers - Multimedia Devices - Digital Video Broadcasting Devices
* LMLBT4x multi-channel video surveillance boards are supported in kernels from 2.6.3
<M> DVB for Linux
<M> DVB Core Support
And there under DVB Core Support - Customise DVB Frontends
<M> ... something like DVB_BT8XX
which is equivalent to these entries in the kernel .config file:
CONFIG_DVB=y
CONFIG_DVB_CORE=m
CONFIG_DVB_BT8XX=y
And maybe (not sure if necessary) still there under ATSC
<M> Video BTCX
which is equivalent to this entry in the kernel .config file:
CONFIG_VIDEO_BTCX = m


====Pinnacle====
* Pinnacle PCTV, Miro PCTV. See [[Pinnacle PCTV Pro]]
* Pinnacle PCTV Pro, Miro PCTV Pro. See [[Pinnacle PCTV Pro]]


* Under Device Drivers - Sound - ALSA - PCI devices
====[[Kodicom]]====
<M> BT878
which is equivalent to this entry in the kernel .config file:
CONFIG_SND=y etc. for sound in general
CONFIG_SND_BT87X=m


(I may have missed a couple of options. Please add them.) Save the config file, compile your new kernel, install it and restart.
Kodicom produces capture-only cards for use in Digital Video Recorder (DVR) applications. The [[Kodicom 4400R]] and [[Kodicom 8800R]] cards and their many clones are supported by the bttv driver from kernel version 2.6.13 onwards


====[[Kozumi]]====
* [[Kozumi KTV-01C|KTV-01C]] ... For this card you only need to set bttv card=142, since this is a clone of the Sabrent card.


====Modules needed====
==Some hints to get the bttv driver up and running==
Required modules and parameters:
From Gerd Knorr's "README.bttv" distributed in packages such as motv.
bttv
bt878
dvb_core
dst
dvb-bt8xx
Load them using '''modprobe'''.


You should now have some stuff in
===General hints===
/dev/dvb/adapter0/


That's it. Depending on your card model (?), you probably don't need any firmware stuff.
1. Make sure if your board is recognized correctly. The bttv driver
should print a line like this one (use the 'dmesg' command to see the kernel messages):


bttv0: model: BT848 (Hauppauge old)


=== Next steps ===
If your card isn't autodetected correctly, you have to specify the board type as insmod argument (card=n). You might also have to specify tuner=x and pll=x.
[[Testing your DVB device]]


====[[AVerMedia]]====
Check the driver documentation for details and a list of supported cards. The standard kernel has the bttv documentation in the Documentation/video4linux/bttv directory.


* [[AVerMedia TVCapture 98|TVCapture 98]]
2. [It's recommended you use a recent kernel.]


====[[Hauppauge]]====
3. If you have problems with xawtv, you should open a xterm (or whatever your favorite terminal app is) and start xawtv from there. This way you'll see any error messages xawtv might print on stderr which should help to find the source of the problems.


* Hauppauge WINTV DBX TV Stereo 125CHNL TV Tuner w/FM Stereo Radio PCI --
4. If something broke after an update, have a look at the changelog. It might be mentioned there.
* Hauppauge WINTV PAL-B/G 38104 REV.B208
[[http://www.linuxjournal.com/node/8116/print writeup in Linux Journal]]


====[[Hercules Smart TV 2 Stereo| Hercules]]====
===Common problems===


According the Hercules support site (http://ts.hercules.com), there are various Smart TV cards. (I'm not sure they all use BT8xx chips.)
?: I have a black screen in overlay mode


* Hercules Smart TV
!: The driver was not initialized correctly, v4l-conf (or the X-Server) has to configure the bttv driver with the current video mode and framebuffer address first. Check if v4l-conf is installed suid root, it needs root priviliges to do this. You can also start v4l-conf from a terminal and check the messages it prints.
* Hercules Smart TV Stereo
* Hercules Smart TV 2
* Hercules Smart TV 2 Stereo
* Hercules Smart TV 3
* Hercules Smart TV DVB-T
* Hercules Smart TV Satellite
* Hercules Smart TV On-Screen
* Hercules Smart TV USB 2.0


====[[Leadtek WinFast 2000| Leadtek]]====
?: I have a blue screen.


* Leadtek cards including Winfast 2000, Winfast TV2000 XP, Winfast TV2000 XP RM and Winfast TV2000 XP FM
!: Good, the overlay is working. A blue screen is what you get if the grabber chip has no input signal. You are probably using the wrong video source, pick another. Also happens sometimes if the tuner type is wrong, check the driver configuration.


====Linux Media Labs====
?: I have a noisy screen and/or can't tune (some) stations.


* LMLBT4x multi-channel video surveillance boards are supported in kernels from 2.6.3
!: Most likely the tuner types is wrong, check the driver configuration. It's no problem to do trial-and-error here.


====Pinnacle====
?: The video is outside the window and spread in thin lines over the screen.
* Pinnacle PCTV, Miro PCTV. See [[Pinnacle PCTV Pro]]
* Pinnacle PCTV Pro, Miro PCTV Pro. See [[Pinnacle PCTV Pro]]


====[[Kodicom]]====
I: xawtv / v4l-conf didn't autodetect the color depth for your screen correctly. You can fix that with xawtv's -bpp switch.


Kodicom produces capture-only cards for use in Digital Video Recorder (DVR) applications. The [[Kodicom 4400R]] and [[Kodicom 8800R]] cards and their many clones are supported by the bttv driver from kernel version 2.6.13 onwards
?: Only the left part of the window is updated, the right one is updated never / sometimes / only if the window is small.


====[[Kozumi]]====
!: Your graphics card and/or motherboard can't deal with the data rate going over the PCI bus, leading to canceled PCI transfers. Reduce the color depth, with 16 bpp instead of 32 bpp should work much better.
* [[Kozumi KTV-01C|KTV-01C]] ... For this card you only need to set bttv card=142, since this is a clone of the Sabrent card.

?: Secam channel is shifted (sound from channel appears on nex channel) on my bttv card with tda9887.

!: Use port2=0 option to tda

===Hardware-specific problems===

* bttv + DRI seem not to play nicely together with some cards (ATI Rage128). The linux box just freezes. Don't know why. Suspect it's either a hardware problem or a bug somewhere in DRI (either kernel or xfree86). The only workaround I know of is to turn off DRI.


====[[Provideo]]====
* Some motherboard chipsets have PCI bugs, especially with PCI-PCI transfers which are used for video overlay. The bt848/878 chips have some bug compatibility options, which can be enabled to workaround these problems. Have a look at the triton1 and vsfx insmod options. For some known-buggy chipsets these are enabled automagically.
* [[Provideo#PV-981|PV981a]] ... Four BT878 chips on PCIe, 16 inputs.


[[Category:Hardware]]
* Sometimes IRQ sharing causes trouble. It works most of the time, but in combination with some hardware and/or drivers it doesn't work. Especially graphic cards are known to cause trouble due to the lack of a IRQ handler. Try disabling the VGA IRQ in the BIOS. Try moving cards to another PCI slot. Your motherboard manual should tell you which PCI slots share IRQ's.

Latest revision as of 12:24, 10 September 2015

Bttv devices are collectively those PCI cards that are based upon either a Bt848, Bt878 or Fusion 878A chip, and which are supported under Linux by the bttv and associated kernel driver modules. These devices can be capture-only cards - which means video is taken directly from a video source without the use of a tuner - or they can be TV cards which make use of RF tuner circuitry to receive television signals and the capture chip is there to decode the extracted video and audio.

Supported bttv devices

An up-to-date list of bttv devices supported by V4L-DVB drivers is found in the CARDLIST.bttv file in the master development repository.

Devices supported by the kernel running on your system are listed in your local <path_to_your_kernel_sources>/Documentation/video4linux/CARDLIST.bttv.

Getting an unlisted card to work

If your card is not listed, see the "How to add support for a device" article.

bttv devices can be challenging to get working with the bttv driver because there are a number of parameters that need to be configured, and these tend to differ for each device. (You can find the configuration settings for already supported devices in /linux/drivers/media/video/bt8xx/bttv-cards.c). Learning what these parameters need to be for your specific device may not be a trivial task. You could try loading the bttv module with the card= parameter set to each one of the cards listed in the CARDLIST.bttv just to see if you'll get lucky and find one that works for your card. Another method used to help discover the hardware settings required for a bttv device is running the device under a Windows OS with video software and the BtSpy ([1] [2]) monitoring.

Also of interest is the note on getting sound to work with a bttv device: http://git.linuxtv.org/media_tree.git/blob/HEAD:/Documentation/video4linux/bttv/Sound-FAQ

Make sure you post the findings of your investigations here and on the Linux-Media Mailing List so that bttv-cards.c can be updated with a new card= entry for your card.

Installation

Details on the installation of specific cards, grouped by vendor; please add your card here.

Note: Some bt878 capture cards have a single chip on board and four inputs on the card's PCI riser. In this case, don't expect multiple input devices. You would have multiple /dev/videoX if you actually had multiple videograbber devices - but you don't. You have one device (the 878A) with multiple inputs, of which only one at a time can be active. This input switching is done by means of the single /dev/videoX API.

General

This is a general howto here. It might work, but if there's a more specific one for your specific card in this wiki, you should use that one. If not, you should try this howto here, and if it works, add this section to your card's article in this wiki. Thanks.

Driver

The Bt878 chip is supported by new kernel versions -- good news! :)

This is what I've done (Debian Sarge testing, kernel version 2.6.16.9). It follows the standard installation of the bttv driver for DVB as it is included in new kernels.

Use lsmod to see if you have all these modules already installed and running.

 bttv
 bt878 
 dvb_core
 dst 
 dvb-bt8xx

If you can't find all of them, try to load them one by one with modprobe, e.g.

 modprobe bt878

Now try lsmod again.

If you can find all of them, you don't have to re-compile your kernel but can use the drivers/modules right away (see below). Otherwise:

Kernel re-compile

In kernel configuration (make menuconfig) make sure to have:

  • Under Device Drivers - Multimedia Devices - Video for Linux
 <M> BT 848
 [*] DVB for bt878

which is equivalent to these entries in the kernel .config file:

 CONFIG_VIDEO_BT848=m
 CONFIG_VIDEO_BT848_DVB=y


  • Under Device Drivers - Multimedia Devices - Digital Video Broadcasting Devices
 <M> DVB for Linux
 <M> DVB Core Support

And there under DVB Core Support - Customise DVB Frontends

 <M> ... something like DVB_BT8XX

which is equivalent to these entries in the kernel .config file:

 CONFIG_DVB=y
 CONFIG_DVB_CORE=m
 CONFIG_DVB_BT8XX=y

And maybe (not sure if necessary) still there under ATSC

 <M> Video BTCX

which is equivalent to this entry in the kernel .config file:

 CONFIG_VIDEO_BTCX = m


  • Under Device Drivers - Sound - ALSA - PCI devices
 <M> BT878

which is equivalent to this entry in the kernel .config file:

 CONFIG_SND=y etc. for sound in general 
 CONFIG_SND_BT87X=m

(I may have missed a couple of options. Please add them.) Save the config file, compile your new kernel, install it and restart.


Modules needed

Required modules and parameters:

 bttv
 bt878 
 dvb_core
 dst 
 dvb-bt8xx

Load them using modprobe.

You should now have some stuff in /dev/dvb/adapter0/

That's it. Depending on your card model (?), you probably don't need any firmware stuff.


Next steps

Testing your DVB device

AVerMedia

Hauppauge

  • Hauppauge WINTV DBX TV Stereo 125CHNL TV Tuner w/FM Stereo Radio PCI --
  • Hauppauge WINTV PAL-B/G 38104 REV.B208

[writeup in Linux Journal]

Hercules

According the Hercules support site (http://ts.hercules.com), there are various Smart TV cards. (I'm not sure they all use BT8xx chips.)

  • Hercules Smart TV
  • Hercules Smart TV Stereo
  • Hercules Smart TV 2
  • Hercules Smart TV 2 Stereo
  • Hercules Smart TV 3
  • Hercules Smart TV DVB-T
  • Hercules Smart TV Satellite
  • Hercules Smart TV On-Screen
  • Hercules Smart TV USB 2.0

Leadtek

  • Leadtek cards including Winfast 2000, Winfast TV2000 XP, Winfast TV2000 XP RM and Winfast TV2000 XP FM

Linux Media Labs

  • LMLBT4x multi-channel video surveillance boards are supported in kernels from 2.6.3

Pinnacle

Kodicom

Kodicom produces capture-only cards for use in Digital Video Recorder (DVR) applications. The Kodicom 4400R and Kodicom 8800R cards and their many clones are supported by the bttv driver from kernel version 2.6.13 onwards

Kozumi

  • KTV-01C ... For this card you only need to set bttv card=142, since this is a clone of the Sabrent card.

Provideo

  • PV981a ... Four BT878 chips on PCIe, 16 inputs.