Difference between revisions of "Bttv devices (bt848, bt878)"

From LinuxTVWiki
Jump to: navigation, search
(Installation)
(changed provideo to correct part number)
 
(39 intermediate revisions by 11 users not shown)
Line 1: Line 1:
===Introduction===
+
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 devices===
+
==Supported bttv devices==
 +
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.
  
* [[Cardlist.BTTV | List of bttv devices supported in the linux kernel]]
+
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>.
* [[CardlistPre.BTTV | List of bttv devices in current CVS snapshots]]
+
  
===Installation===
+
===Getting an unlisted card to work===
 +
If your card is not listed, see the "[[Development: How to add support for a device|How to add support for a device]]" article.
  
Details on the installation of specific cards, grouped by vendor
+
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. 
  
====[[Avermedia]]====
+
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
  
* AVerMedia [[TVCapture 98]]
+
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.
====[[Kodicom]]====
+
* Kodicom (CVS only) [[Kodicom 4400R]]
+
  
===Some hints to get the bttv driver up and running===
+
==Installation==
From Gerd Knorr's "README.bttv" distributed in packages such as motv.
+
Details on the installation of specific cards, grouped by vendor; please add your card here.
  
====General hints====
+
{{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.}}
  
1. Make sure if your board is recognized correctly. The bttv driver
+
===General===
should print a line like this one (Use the 'dmesg' command to see the kernel messages):
+
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.
  
bttv0: model: BT848(Hauppauge old)
+
=== Driver ===
 +
The Bt878 chip is supported by new kernel versions -- good news! :)
  
If your card isn't autodetected correctly, you have to specify the
+
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.  
board type as insmod argument (card=n). You might also have to specify tuner=x and pll=x.
+
  
Check the driver documentation for details and a list of supported
+
Use '''lsmod''' to see if you have all these modules already installed and running.  
cards. The standard kernel has the bttv documentation in the
+
  bttv
Documentation/video4linux/bttv directory.
+
  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.  
  
2. [It's recommended you use a recent kernel.]
+
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:
  
3. If you have problems with xawtv, you should open a xterm (or
+
==== Kernel re-compile ====
whatever your favorite terminal app is) and start xawtv from
+
In kernel configuration (make menuconfig) make sure to have:
there. This way you'll see any error messages xawtv might print on
+
stderr which should help to find the source of the problems.
+
  
4. If something broke after an update, have a look at the changelog.
+
* Under Device Drivers - Multimedia Devices - Video for Linux
It might be mentioned there.
+
  <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
  
====Common problems====
 
  
?: I have a black screen in overlay mode
+
* 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
  
!: 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.
 
  
?: I have a blue screen.
+
* 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
  
!: Good, the overlay is working. A blue screen is what you get if the
+
(I may have missed a couple of options. Please add them.) Save the config file, compile your new kernel, install it and restart.  
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.
+
  
?: I have a noisy screen and/or can't tune (some) stations.
 
  
!: Most likely the tuner types is wrong, check the driver configuration.
+
====Modules needed====
It's no problem to do trial-and-error here.
+
Required modules and parameters:
 +
  bttv
 +
  bt878
 +
  dvb_core
 +
  dst
 +
  dvb-bt8xx
 +
Load them using '''modprobe'''.
  
?: The video is outside the window and spread in thin lines over the
+
You should now have some stuff in  
screen.
+
/dev/dvb/adapter0/
  
I: xawtv / v4l-conf didn't autodetect the color depth for your screen
+
That's it. Depending on your card model (?), you probably don't need any firmware stuff.  
correctly. You can fix that with xawtv's -bpp switch.
+
  
?: Only the left part of the window is updated, the right one is updated
 
never / sometimes / only if the window is small.
 
  
!: Your graphics card and/or motherboard can't deal with the data rate
+
=== Next steps ===
going over the PCI bus, leading to canceled PCI transfers.  Reduce
+
[[Testing your DVB device]]
the color depth, with 16 bpp instead of 32 bpp should work much
+
better.
+
  
 +
====[[AVerMedia]]====
 +
 +
* [[AVerMedia TVCapture 98|TVCapture 98]]
 +
 +
====[[Hauppauge]]====
 +
 +
* Hauppauge WINTV DBX TV Stereo 125CHNL TV Tuner w/FM Stereo Radio PCI --
 +
* 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]]====
 +
 +
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 WinFast 2000| 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====
 +
* Pinnacle PCTV, Miro PCTV. See [[Pinnacle PCTV Pro]]
 +
* Pinnacle PCTV Pro, Miro PCTV Pro. See [[Pinnacle PCTV Pro]]
 +
 +
====[[Kodicom]]====
  
====Hardware-specific problems====
+
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
  
* 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.
+
====[[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.
  
* 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]]====
 +
* [[Provideo#PV-981|PV981a]] ... Four BT878 chips on PCIe, 16 inputs.
  
* 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.
+
[[Category:Hardware]]

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.