HARDWARE Hauppauge HVR 1300

From Gentoo Linux Wiki

Jump to: navigation, search
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 linuxtv.org on 14/11/06. Sh4nn0w 11:16, 14 November 2006 (UTC)

Contents

[edit] Introduction

Image:HVR1300.jpg

  • After much playing around, I've finally been able install drivers for my HVR-1300. At this point as far as I'm aware there is still no support for the MPEG Hardware decoder, but it is being worked on currently.
  • Using drivers from the linuxtv mercurial tree, I've been able to get dvb working. Analog appears to be setup ok too, but i've not done much with it so far. Sh4nn0w 13:50, 14 November 2006 (UTC)

[edit] My Setup

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

  • 2.6.18-gentoo-r2 (x86)
  • Hauppauge HVR-1300 (non MCE edition with Hauppauge Remote)
  • HIS Radeon X800GTO
  • DFI Lanparty UT SLI-D nForce4 Motherboard
  • AMD Athlon 64 3000+

[edit] 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.
  • The latest sources for v4l & dvb from Linuxtv.org have moved from CVS to Mercurial. If you don't have mercurial installed:
emerge -av mercurial

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

  • Next step is to clone the latest version of the tree.
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 http://linuxtv.org/hg/v4l-dvb
  • Now you will have a sub directory called v4l-dvb containing the latest sources.

[edit] Creating Kernel Patch & Modules

[edit] 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.
  • For successful compilation; my kernel is setup as follows:
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.

[edit] 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 ...
  • Now we're ready to setup the modules we want created. Enter the directory where you downloaded the sources and make sure you're in the sub-directory 'v4l-dvb'.
(Replace '/linuxtv/' with you your relevant path.)

# cd /linuxtv/v4l-dvb
  • You can go ahead and compile all modules, which is the default setting, but in doing it this way, you will end up with only the modules you need.
  • To bring up kernel configuration options:
/linuxtv/v4l-dvb# make menuconfig
  • As you go through the options unselect any that are not listed below, as they are not needed.
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

[edit] Compiling v4l-dvb modules

  • Now this is complete we can compile the modules; nice & easy:
/linuxtv/v4l-dvb# make
  • If your having any problems with compiling the modules; do this:
/linuxtv/v4l-dvb/make clean
  • Run 'make menuconfig' again and check, before compiling.
  • Remember if you modify your kernel or upgrade it, you will need make & reinstall the modules again

[edit] Testing

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:

DVB

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

Analog

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

[edit] Installing

[edit] Installing into Kernel

  • To install your kernel patch & the new modules:
/linuxtv/v4l-dvb# make install

[edit] Autoloading Modules

I added the following:

File: /etc/modules.autoload.d/kernel-2.6
cx88_dvb
cx8800
cx22700
  • cx88_dvb pulls in all the relevant modules for DVB & IR
  • cx8800 pulls in all the relevant modules for Analog
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.

[edit] See Also

[edit] External Links

[edit] Discussion

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

  • An excerpt from dmesg:
 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: http://linuxtv.org/hg/v4l-dvb/rev/467cb70a3d56

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.

Personal tools