Gentoo Wiki


This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related
Note: The below was tested using the v4l-dvb tree from on 14/11/06. Sh4nn0w 11:16, 14 November 2006 (UTC)




My Setup

The Hardware & Kernel I am using at the time of writing is:

Obtaining Latest v4l-dvb Sources

Note: These sources are already included in the 2.6.23-gentoo-r3 kernel release. Also, you can skip this section when you are using that release.
emerge -av mercurial

Original instructions for using mercurial for v4l-dvb are available from, which i'd advise reading.

Note: Make sure you are in the directory you wish to store the source tree in before cloning the source tree. I just created in /linuxtv.
# cd /linuxtv
linux-tv# hg clone

Creating Kernel Patch & Modules

Kernel Configuration

Warning: You need to make sure no options are selected directly in the kernel for Video For Linux or DVB, otherwise when you try to compile / load the modules you are likely to get errors generated.
Linux Kernel Configuration: 2.6 kernel
Device Drivers --->
     Multimedia Devices --->
          < > Video For Linux
              Digital Video Broadcasting Devices --->
                  [ ] DVB For Linux
< > DABUSB Driver

If you need to make any changes to your kernel, do so & reboot before proceeding.

v4l-dvb Configuration

Note: These options are similar for the 2.6.23-gentoo-r3 kernel release. It is also safe to turn on the Blackbird MPEG encoder support, although I don't know yet whether this works ...
(Replace '/linuxtv/' with you your relevant path.)

# cd /linuxtv/v4l-dvb
/linuxtv/v4l-dvb# make menuconfig
Linux Kernel Configuration: 2.6 kernel
[ ] Enable drivers not supported by this kernel
    Multimedia devices  --->
Audio devices for multimedia --->
Linux Kernel Configuration: Multimedia Devices
<M> Video For Linux                                                 
[ ]   Enable Video For Linux API 1 (DEPRECATED)                     
[*]   Enable Video For Linux API 1 compatible Layer                 
      Video Capture Adapters  --->                                  
      Radio Adapters  --->                                          
    Digital Video Broadcasting Devices  --->                       
< > DABUSB driver
Linux Kernel Configuration: Multimedia Devices > Video Capture Adapters
--- Video Capture Adapters                                          
[ ] Enable advanced debug functionality                             
[*] Autoselect pertinent encoders/decoders and other helper chips
< > Virtual Video Driver                                            
< > SAA5246A, SAA5281 Teletext processor                            
< > SAA5249 Teletext processor                                     
< > Philips SAA7134 support                                        
< > Hexium HV-PCI6 and Orion frame grabber                          
< > Hexium Gemini frame grabber                                    
<M> Conexant 2388x (bt878 successor) support                        
< >   Blackbird MPEG encoder support (cx2388x + cx23416) (NEW)     
<M>   DVB/ATSC Support for cx2388x based TV cards                  
< >     VP-3054 Secondary I2C Bus Support                         
V4L USB devices --->
Warning: I don't think the Blackbird MPEG encoder is supported for the HVR-1300 yet work. I left it out to get my setup working.
Linux Kernel Configuration: Multimedia Devices > Video Broadcasting Devices
[*] DVB For Linux                                                  
<M>   DVB Core Support                                              
[*]     Load and attach frontend modules as needed                  
---     Supported SAA7146 based PCI Adapters                        
---     Supported USB Adapters                                      
< >     Support for various USB DVB devices                        
< >     Technotrend/Hauppauge Nova-USB devices                      
< >     Technotrend/Hauppauge USB DEC devices                       
< >     Terratec CinergyT2/qanu USB2 DVB-T receiver                
---     Supported FlexCopII (B2C2) Adapters                       
< >     Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters         
---     Supported BT878 Adapters                                    
---     Supported Pluto2 Adapters                                  
< >     Pluto2 cards                                                
---     Supported DVB Frontends                                    
Customise DVB Frontends --->
Linux Kernel Configuration: Multimedia Devices > Video Broadcasting Devices > Customise DVB Frontends
[*] Customise the frontend modules to build
--- DVB-S (satellite) frontends
< > ST STV0299 based
< > Conexant CX24110 based
< > Conexant CX24123 based
< > Philips TDA8083 based
< > Zarlink VP310/MT312 based
< > VLSI VES1893 or VES1993 based
< > Samsung S5H1420 based
< > Philips TDA10086 based
--- DVB-T (terrestrial) frontends
< > Spase sp8870 based
< > Spase sp887x based
<M> Conexant CX22700 based
<M> Conexant cx22702 demodulator (OFDM)
< > LSI L64781
< > Philips TDA10045H/TDA10046H based
< > NxtWave Communications NXT6000 based
< > Zarlink MT352 based
< > Zarlink ZL10353 based
< > DiBcom 3000M-B
< > DiBcom 3000P/M-C
< > DiBcom 7000MA/MB/PA/PB/MC
< > DiBcom 7000PC 
--- DVB-C (cable) frontends
< > VLSI VES1820 based
< > Philips TDA10021 based
< > ST STV0297 based
--- ATSC (North American/Korean Terrestrial/Cable DTV) frontends
< > NxtWave Communications NXT2002/NXT2004 based
< > Oren OR51211 based
< > Oren OR51132 based
< > Broadcom BCM3510
< > LG Electronics LGDT3302/LGDT3303 based
--- Tuners/PLL support
< > Philips TDA826X silicon tuner
< > Microtune MT2060 silicon IF tuner
--- Miscellaneous devices
< > LNBP21 SEC controller
< > ISL6421 SEC controller
< > TUA6100 PLL

Compiling v4l-dvb modules

/linuxtv/v4l-dvb# make
/linuxtv/v4l-dvb/make clean


In order to check the modules work successfully:

/linuxtv/v4l-dvb# make load

I checked via dmesg:

#dmesg | less

Check the output, the card should now have successfully been detected.

Next check your /dev entries:


ls -l /dev/dvb/adapter0
crw-rw---- 1 root video 212, 4 Nov 14 11:31 demux0
crw-rw---- 1 root video 212, 5 Nov 14 11:31 dvr0
crw-rw---- 1 root video 212, 3 Nov 14 11:31 fontend0
crw-rw---- 1 root video 212, 7 Nov 14 11:31 net0


ls -l /dev/v4l
crw-rw---- 1 root video 81, 64  Nov 14 11:31 radio0
crw-rw---- 1 root video 81, 224 Nov 14 11:31 vbi0
crw-rw---- 1 root video 81, 0   Nov 14 11:31 video0


Installing into Kernel

/linuxtv/v4l-dvb# make install

Autoloading Modules

I added the following:

File: /etc/modules.autoload.d/kernel-2.6
Note: These autoload contents was not needed for the 2.6.23-gentoo-r3 kernel.

In order to get Analog TV to work one should make sure that the tuner module is loaded before the cx88xx module. This can be achieved e.g. by adding a file hvr1300 to the /etc/modprobe.d directory with the following line:

File: /etc/modprobe.d/hvr1300
  1. Install the tuner before the cx88xx module

install cx88xx modprobe tuner; modprobe --ignore-install cx88xx

Then run update-modules to remake the modprobe.conf file.

See Also

External Links


As of kernel 2.6.22-gentoo-r5, IR is apparently recognized, but not working.

 tveeprom 2-0050: has radio, has IR receiver, has IR transmitter
 cx88[0]: hauppauge eeprom: model=96019
 input: cx88 IR (Hauppauge WinTV-HVR130 as /class/input/input1

To get it working, you need to apply the following patch to the kernel v4l drivers:

Note that one of the files to patch is ir-kbd-i2c.c that is wrongly not pulled in by cx88. To make it compiled you need to select another module that uses it, e.g. bt848. You need to pass parameter hauppauge=1 to the ir-kbd-i2c module when you load it.

Finally, you need to compile lirc with 'devinput' support, NOT hauppauge NOR hauppauge-dvb:

 LIRC_DEVICES='devinput' emerge lirc


BTW: I compiled the Blackbird MPEG encoder and DVB still works. I have no clue if it is used, but at least it does not break anything.

Retrieved from ""

Last modified: Sat, 30 Aug 2008 22:11:00 +0000 Hits: 15,227