Hauppauge WinTV HVR-1300
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
Contents |
[edit] Introduction
- 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
- 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.
# 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
- 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
- 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 SupportV4L USB devices ---> |
| 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 FrontendsCustomise 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
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 |
install cx88xx modprobe tuner; modprobe --ignore-install cx88xx |
Then run update-modules to remake the modprobe.conf file.
[edit] See Also
[edit] External Links
- If your interested in the hardware mpeg decoder support, keep an eye on the mercurial tree at Linuxtv.org
- Linuxtv DVB-T PCI devices Support Status
[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.

