Commit 729126e4 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

media: docs: update bttv.rst information

This document is... old. The bttv driver was one of the first
drivers at the Kernel. So, the document became a little obsoleted.

Update it to reflect some changes that happened along the time
affecting this driver and the subsystem.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent f631516f
.. SPDX-License-Identifier: GPL-2.0 .. SPDX-License-Identifier: GPL-2.0
===============
The bttv driver The bttv driver
=============== ===============
Release notes for bttv Release notes for bttv
---------------------- ----------------------
You'll need at least these config options for bttv: You'll need at least these config options for bttv::
.. code-block:: none ./scripts/config -e PCI
./scripts/config -m I2C
./scripts/config -m INPUT
./scripts/config -m MEDIA_SUPPORT
./scripts/config -e MEDIA_PCI_SUPPORT
./scripts/config -e MEDIA_ANALOG_TV_SUPPORT
./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT
./scripts/config -e MEDIA_RADIO_SUPPORT
./scripts/config -e RC_CORE
./scripts/config -m VIDEO_BT848
CONFIG_I2C=m If your board has digital TV, you'll also need::
CONFIG_I2C_ALGOBIT=m
CONFIG_VIDEO_DEV=m
The latest bttv version is available from http://bytesex.org/bttv/ ./scripts/config -m DVB_BT8XX
In this case, please see :doc:`bt8xx` for additional notes.
Make bttv work with your card Make bttv work with your card
----------------------------- -----------------------------
Just try "modprobe bttv" and see if that works. If you have bttv compiled and installed, just booting the Kernel
should be enough for it to try probing it. However, depending
on the model, the Kernel may require additional information about
the hardware, as the device may not be able to provide such info
directly to the Kernel.
If it doesn't bttv likely could not autodetect your card and needs some If it doesn't bttv likely could not autodetect your card and needs some
insmod options. The most important insmod option for bttv is "card=n" insmod options. The most important insmod option for bttv is "card=n"
to select the correct card type. If you get video but no sound you've to select the correct card type. If you get video but no sound you've
very likely specified the wrong (or no) card type. A list of supported very likely specified the wrong (or no) card type. A list of supported
cards is in CARDLIST.bttv cards is in :doc:`bttv-cardlist`.
If bttv takes very long to load (happens sometimes with the cheap If bttv takes very long to load (happens sometimes with the cheap
cards which have no tuner), try adding this to your modules.conf: cards which have no tuner), try adding this to your modules configuration
file (usually, it is either ``/etc/modules.conf`` or some file at
.. code-block:: none ``/etc/modules-load.d/``, but the actual place depends on your
distribution)::
options i2c-algo-bit bit_test=1 options i2c-algo-bit bit_test=1
For the WinTV/PVR you need one firmware file from the driver CD: Some cards may require an extra firmware file to work. For example,
hcwamc.rbf. The file is in the pvr45xxx.exe archive (self-extracting for the WinTV/PVR you need one firmware file from its driver CD,
zip file, unzip can unpack it). Put it into the /etc/pvr directory or called: ``hcwamc.rbf``. It is inside a self-extracting zip file
use the firm_altera=<path> insmod option to point the driver to the called ``pvr45xxx.exe``. Just placing it at the ``/etc/firmware``
location of the file. directory should be enough for it to be autoload during the driver's
probing mode (e. g. when the Kernel boots or when the driver is
manually loaded via ``modprobe`` command).
If your card isn't listed in CARDLIST.bttv or if you have trouble making If your card isn't listed in :doc:`bttv-cardlist` or if you have
audio work, you should read the Sound-FAQ. trouble making audio work, please read :ref:`still_doesnt_work`.
Autodetecting cards Autodetecting cards
...@@ -61,9 +77,11 @@ the Subsystem ID in the second line, looks like this: ...@@ -61,9 +77,11 @@ the Subsystem ID in the second line, looks like this:
only bt878-based cards can have a subsystem ID (which does not mean only bt878-based cards can have a subsystem ID (which does not mean
that every card really has one). bt848 cards can't have a Subsystem that every card really has one). bt848 cards can't have a Subsystem
ID and therefore can't be autodetected. There is a list with the ID's ID and therefore can't be autodetected. There is a list with the ID's
in bttv-cards.c (in case you are intrested or want to mail patches at :doc:`bttv-cardlist` (in case you are intrested or want to mail
with updates). patches with updates).
.. _still_doesnt_work:
Still doesn't work? Still doesn't work?
------------------- -------------------
...@@ -71,6 +89,7 @@ Still doesn't work? ...@@ -71,6 +89,7 @@ Still doesn't work?
I do NOT have a lab with 30+ different grabber boards and a I do NOT have a lab with 30+ different grabber boards and a
PAL/NTSC/SECAM test signal generator at home, so I often can't PAL/NTSC/SECAM test signal generator at home, so I often can't
reproduce your problems. This makes debugging very difficult for me. reproduce your problems. This makes debugging very difficult for me.
If you have some knowledge and spare time, please try to fix this If you have some knowledge and spare time, please try to fix this
yourself (patches very welcome of course...) You know: The linux yourself (patches very welcome of course...) You know: The linux
slogan is "Do it yourself". slogan is "Do it yourself".
...@@ -92,102 +111,103 @@ at least the country you are living in). ...@@ -92,102 +111,103 @@ at least the country you are living in).
Modprobe options Modprobe options
---------------- ----------------
Note: "modinfo <module>" prints various information about a kernel .. note::
module, among them a complete and up-to-date list of insmod options.
This list tends to be outdated because it is updated manually ...
==========================================================================
bttv.o
.. code-block:: none The following argument list can be outdated, as we might add more
options if ever needed. In case of doubt, please check with
the bt848/878 (grabber chip) driver ``modinfo <module>``.
insmod args: This command prints various information about a kernel
card=n card type, see CARDLIST for a list. module, among them a complete and up-to-date list of insmod options.
tuner=n tuner type, see CARDLIST for a list.
radio=0/1 card supports radio
pll=0/1/2 pll settings
0: don't use PLL bttv
1: 28 MHz crystal installed The bt848/878 (grabber chip) driver
2: 35 MHz crystal installed
insmod args::
triton1=0/1 for Triton1 (+others) compatibility
vsfx=0/1 yet another chipset bug compatibility bit card=n card type, see CARDLIST for a list.
see README.quirks for details on these two. tuner=n tuner type, see CARDLIST for a list.
radio=0/1 card supports radio
bigendian=n Set the endianness of the gfx framebuffer. pll=0/1/2 pll settings
Default is native endian.
fieldnr=0/1 Count fields. Some TV descrambling software 0: don't use PLL
needs this, for others it only generates 1: 28 MHz crystal installed
50 useless IRQs/sec. default is 0 (off). 2: 35 MHz crystal installed
autoload=0/1 autoload helper modules (tuner, audio).
default is 1 (on). triton1=0/1 for Triton1 (+others) compatibility
bttv_verbose=0/1/2 verbose level (at insmod time, while vsfx=0/1 yet another chipset bug compatibility bit
looking at the hardware). default is 1. see README.quirks for details on these two.
bttv_debug=0/1 debug messages (for capture).
default is 0 (off). bigendian=n Set the endianness of the gfx framebuffer.
irq_debug=0/1 irq handler debug messages. Default is native endian.
default is 0 (off). fieldnr=0/1 Count fields. Some TV descrambling software
gbuffers=2-32 number of capture buffers for mmap'ed capture. needs this, for others it only generates
default is 4. 50 useless IRQs/sec. default is 0 (off).
gbufsize= size of capture buffers. default and autoload=0/1 autoload helper modules (tuner, audio).
maximum value is 0x208000 (~2MB) default is 1 (on).
no_overlay=0 Enable overlay on broken hardware. There bttv_verbose=0/1/2 verbose level (at insmod time, while
are some chipsets (SIS for example) which looking at the hardware). default is 1.
are known to have problems with the PCI DMA bttv_debug=0/1 debug messages (for capture).
push used by bttv. bttv will disable overlay default is 0 (off).
by default on this hardware to avoid crashes. irq_debug=0/1 irq handler debug messages.
With this insmod option you can override this. default is 0 (off).
no_overlay=1 Disable overlay. It should be used by broken gbuffers=2-32 number of capture buffers for mmap'ed capture.
hardware that doesn't support PCI2PCI direct default is 4.
transfers. gbufsize= size of capture buffers. default and
automute=0/1 Automatically mutes the sound if there is maximum value is 0x208000 (~2MB)
no TV signal, on by default. You might try no_overlay=0 Enable overlay on broken hardware. There
to disable this if you have bad input signal are some chipsets (SIS for example) which
quality which leading to unwanted sound are known to have problems with the PCI DMA
dropouts. push used by bttv. bttv will disable overlay
chroma_agc=0/1 AGC of chroma signal, off by default. by default on this hardware to avoid crashes.
adc_crush=0/1 Luminance ADC crush, on by default. With this insmod option you can override this.
i2c_udelay= Allow reduce I2C speed. Default is 5 usecs no_overlay=1 Disable overlay. It should be used by broken
(meaning 66,67 Kbps). The default is the hardware that doesn't support PCI2PCI direct
maximum supported speed by kernel bitbang transfers.
algorithm. You may use lower numbers, if I2C automute=0/1 Automatically mutes the sound if there is
messages are lost (16 is known to work on no TV signal, on by default. You might try
all supported cards). to disable this if you have bad input signal
quality which leading to unwanted sound
bttv_gpio=0/1 dropouts.
gpiomask= chroma_agc=0/1 AGC of chroma signal, off by default.
audioall= adc_crush=0/1 Luminance ADC crush, on by default.
audiomux= i2c_udelay= Allow reduce I2C speed. Default is 5 usecs
See Sound-FAQ for a detailed description. (meaning 66,67 Kbps). The default is the
maximum supported speed by kernel bitbang
algorithm. You may use lower numbers, if I2C
messages are lost (16 is known to work on
all supported cards).
bttv_gpio=0/1
gpiomask=
audioall=
audiomux=
See Sound-FAQ for a detailed description.
remap, card, radio and pll accept up to four comma-separated arguments remap, card, radio and pll accept up to four comma-separated arguments
(for multiple boards). (for multiple boards).
tuner.o tuner
.. code-block:: none
The tuner driver. You need this unless you want to use only The tuner driver. You need this unless you want to use only
with a camera or external tuner ... with a camera or the board doesn't provide analog TV tuning.
insmod args::
insmod args:
debug=1 print some debug info to the syslog debug=1 print some debug info to the syslog
type=n type of the tuner chip. n as follows: type=n type of the tuner chip. n as follows:
see CARDLIST for a complete list. see CARDLIST for a complete list.
pal=[bdgil] select PAL variant (used for some tuners pal=[bdgil] select PAL variant (used for some tuners
only, important for the audio carrier). only, important for the audio carrier).
tvaudio.o tvaudio
Provide a single driver for all simple i2c audio control
.. code-block:: none chips (tda/tea*).
new, experimental module which is supported to provide a single insmod args::
driver for all simple i2c audio control chips (tda/tea*).
insmod args:
tda8425 = 1 enable/disable the support for the tda8425 = 1 enable/disable the support for the
tda9840 = 1 various chips. tda9840 = 1 various chips.
tda9850 = 1 The tea6300 can't be autodetected and is tda9850 = 1 The tea6300 can't be autodetected and is
...@@ -200,45 +220,12 @@ tvaudio.o ...@@ -200,45 +220,12 @@ tvaudio.o
the wrong one. the wrong one.
debug = 1 print debug messages debug = 1 print debug messages
insmod args for tda9874a: msp3400
tda9874a_SIF=1/2 select sound IF input pin (1 or 2)
(default is pin 1)
tda9874a_AMSEL=0/1 auto-mute select for NICAM (default=0)
Please read note 3 below!
tda9874a_STD=n select TV sound standard (0..8):
0 - A2, B/G
1 - A2, M (Korea)
2 - A2, D/K (1)
3 - A2, D/K (2)
4 - A2, D/K (3)
5 - NICAM, I
6 - NICAM, B/G
7 - NICAM, D/K (default)
8 - NICAM, L
Note 1: tda9874a supports both tda9874h (old) and tda9874a (new) chips.
Note 2: tda9874h/a and tda9875 (which is supported separately by
tda9875.o) use the same i2c address so both modules should not be
used at the same time.
Note 3: Using tda9874a_AMSEL option depends on your TV card design!
AMSEL=0: auto-mute will switch between NICAM sound
and the sound on 1st carrier (i.e. FM mono or AM).
AMSEL=1: auto-mute will switch between NICAM sound
and the analog mono input (MONOIN pin).
If tda9874a decoder on your card has MONOIN pin not connected, then
use only tda9874_AMSEL=0 or don't specify this option at all.
For example:
card=65 (FlyVideo 2000S) - set AMSEL=1 or AMSEL=0
card=72 (Prolink PV-BT878P rev.9B) - set AMSEL=0 only
msp3400.o
.. code-block:: none
The driver for the msp34xx sound processor chips. If you have a The driver for the msp34xx sound processor chips. If you have a
stereo card, you probably want to insmod this one. stereo card, you probably want to insmod this one.
insmod args: insmod args::
debug=1/2 print some debug info to the syslog, debug=1/2 print some debug info to the syslog,
2 is more verbose. 2 is more verbose.
simple=1 Use the "short programming" method. Newer simple=1 Use the "short programming" method. Newer
...@@ -252,40 +239,6 @@ msp3400.o ...@@ -252,40 +239,6 @@ msp3400.o
should improve things for french people, the should improve things for french people, the
carrier autoscan seems to work with FM only... carrier autoscan seems to work with FM only...
tea6300.o - OBSOLETE (use tvaudio instead)
.. code-block:: none
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:
debug=1 print some debug info to the syslog.
tda8425.o - OBSOLETE (use tvaudio instead)
.. code-block:: none
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:
debug=1 print some debug info to the syslog.
tda985x.o - OBSOLETE (use tvaudio instead)
.. code-block:: none
The driver for the tda9850/55 audio chips.
insmod args:
debug=1 print some debug info to the syslog.
chip=9850/9855 set the chip type.
If the box freezes hard with bttv If the box freezes hard with bttv
--------------------------------- ---------------------------------
...@@ -306,15 +259,15 @@ bug. It is very helpful if you can tell where exactly it broke ...@@ -306,15 +259,15 @@ bug. It is very helpful if you can tell where exactly it broke
With a hard freeze you probably doesn't find anything in the logfiles. With a hard freeze you probably doesn't find anything in the logfiles.
The only way to capture any kernel messages is to hook up a serial The only way to capture any kernel messages is to hook up a serial
console and let some terminal application log the messages. /me uses console and let some terminal application log the messages. /me uses
screen. See Documentation/admin-guide/serial-console.rst for details on setting screen. See :doc:`/admin-guide/serial-console` for details on setting
up a serial console. up a serial console.
Read Documentation/admin-guide/bug-hunting.rst to learn how to get any useful Read :doc:`/admin-guide/bug-hunting` to learn how to get any useful
information out of a register+stack dump printed by the kernel on information out of a register+stack dump printed by the kernel on
protection faults (so-called "kernel oops"). protection faults (so-called "kernel oops").
If you run into some kind of deadlock, you can try to dump a call trace If you run into some kind of deadlock, you can try to dump a call trace
for each process using sysrq-t (see Documentation/admin-guide/sysrq.rst). for each process using sysrq-t (see :doc:`/admin-guide/sysrq`).
This way it is possible to figure where *exactly* some process in "D" This way it is possible to figure where *exactly* some process in "D"
state is stuck. state is stuck.
...@@ -443,9 +396,7 @@ Other elements of the tvcards array ...@@ -443,9 +396,7 @@ Other elements of the tvcards array
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are trying to make a new card work you might find it useful to If you are trying to make a new card work you might find it useful to
know what the other elements in the tvcards array are good for: know what the other elements in the tvcards array are good for::
.. code-block:: none
video_inputs - # of video inputs the card has video_inputs - # of video inputs the card has
audio_inputs - historical cruft, not used any more. audio_inputs - historical cruft, not used any more.
...@@ -678,7 +629,9 @@ Typhoon TV card series: ...@@ -678,7 +629,9 @@ Typhoon TV card series:
~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
These can be CPH, Flyvideo, Pixelview or KNC1 series. These can be CPH, Flyvideo, Pixelview or KNC1 series.
Typhoon is the brand of Anubis. Typhoon is the brand of Anubis.
Model 50680 got re-used, some model no. had different contents over time. Model 50680 got re-used, some model no. had different contents over time.
Models: Models:
...@@ -830,12 +783,13 @@ is wrong. If it doesn't work, send me email. ...@@ -830,12 +783,13 @@ is wrong. If it doesn't work, send me email.
on their server are the full data-sheets, but don't ask how I found it. on their server are the full data-sheets, but don't ask how I found it.
To use the driver I use the following options, the tuner and pll settings might To use the driver I use the following options, the tuner and pll settings might
be different in your country be different in your country. You can force it via modprobe parameters.
For example::
modprobe bttv tuner=1 pll=28 radio=1 card=17
insmod videodev Sets tuner type 1 (Philips PAL_I), PLL with a 28 MHz crystal, enables
insmod i2c scan=1 i2c_debug=0 verbose=0 FM radio and selects bttv card ID 17 (Leadtek WinView 601).
insmod tuner type=1 debug=0
insmod bttv pll=1 radio=1 card=17
KNC One KNC One
...@@ -854,15 +808,16 @@ KNC One ...@@ -854,15 +808,16 @@ KNC One
Provideo Provideo
~~~~~~~~ ~~~~~~~~
- PV951 or PV-951 (also are sold as: - PV951 or PV-951, now named PV-951T
(also are sold as:
Boeder TV-FM Video Capture Card, Boeder TV-FM Video Capture Card,
Titanmedia Supervision TV-2400, Titanmedia Supervision TV-2400,
Provideo PV951 TF, Provideo PV951 TF,
3DeMon PV951, 3DeMon PV951,
MediaForte TV-Vision PV951, MediaForte TV-Vision PV951,
Yoko PV951, Yoko PV951,
Vivanco Tuner Card PCI Art.-Nr.: 68404, Vivanco Tuner Card PCI Art.-Nr.: 68404
) now named PV-951T )
- Surveillance Series: - Surveillance Series:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment