Linux and the Nova-T Conexant Chipset DVB-T Cards

If you have made it here, then my guess is that you are having trouble getting the new Hauppauge Nova-T card working under Linux. You are not alone.

Here are my notes on how to get it working on Fedora Core 3 (I imagine they can be modifed slightly for other distros) - I hope it plays nicely for you!

If you have any feedback on the procedure, please contact me.

Tested System

Nova-T Card Information

An lspci provides the following information for my Nova-T's

00:0c.4 Multimedia controller: Conexant: Unknown device 8804 (rev 05)        
Subsystem: Hauppauge computer works Inc.: Unknown device 9002      
Flags: bus master, medium devsel, latency 32, IRQ 10
Memory at df000000 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2

Additional Notes

Richard Dale informed me that the 2.6.10-rc2 kernel doesn''t work correctly with Nvidia Graphics cards and the v6629 drivers without mmap.c being patched. The patch is available from here or locally: nvidia-patch-2.6.10-rc2.diff

You should apply this patch to the kernel after patching for DVB-T. please note - this aspect has not been tested by me

Other cards known to work

Requirements

Several things need to happen to get these cards working:

Procedure

I am assuming that you have un-gzipped the kernel source into /usr/src/linux-2.6.10-rc2 and symlinked it to /usr/src/linux.

Patching your new kernel

Patching for Nvidia cards

Preparing your new kernel

Follow the standard 2.6 compilation procedures:

When configuring the kernel, setup as follows:

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m

#
# Video For Linux
#

#
# Video Adapters
#
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_CQCAM is not set
# CONFIG_VIDEO_W9966 is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_MEYE is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_DVB=m
# CONFIG_VIDEO_OVCAMCHIP is not set

#
# Digital Video Broadcasting Devices
#
CONFIG_DVB=y
CONFIG_DVB_CORE=m

#
# Supported SAA7146 based PCI Adapters
#
CONFIG_DVB_AV7110=m
CONFIG_DVB_AV7110_OSD=y
CONFIG_DVB_BUDGET=m
CONFIG_DVB_BUDGET_CI=m
CONFIG_DVB_BUDGET_AV=m
CONFIG_DVB_BUDGET_PATCH=m

#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m

Note from Richard Dale: I also needed to enabled the Zarlink MT352 with:

CONFIG_DVB_MT352=m

Also, it is very very important that DMA is supported in your kernel, so make sure you correctly select a module for your motherboard chipset, otherwise this ain''t gonna work!

Compiling the kernel

Now, compile your new kernel - thankfully, this is alot easier in the 2.6 kernel, simply type:

Preparing udev

The new 2.6 kernel uses the udev system - /dev is now generated dynamically, dependant on the devices present within the system - Google for udev if you want more info, but basically, udev is controlled by files located in /etc/udev - a series of rules identify the devices (located in /etc/udev/rules.d/ and these rules can fire scripts to create relevant device nodes in /dev.

# DVB Support
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c"
#!/bin/sh
/bin/echo $1 | /bin/sed -e ''s,dvb\\([0-9]\\)\\.\\([^0-9]*\\)\\([0-9]\\),dvb/adapter\\1/\\2\\3,''

Setup modprobe.conf

alias char-major-81 cx88_dvb

Reboot with the new kernel

Confirm Nova-T drivers are loaded

Here is the output from lsmod on my system showing the Nova-T drivers loaded - yours should pretty much match, although I also have a TechnoTrend Budget DVB-T card in my system as well:

		Module Size Used by
		nfsd 210976 9
		exportfs 9344 1 nfsd
		md5 4608 1
		ipv6 272960 18
		autofs4 28292 0
		nfs 228228 1
		lockd 68264 3 nfsd,nfs
		cx88_dvb 6660 0
		mt352 6020 1 cx88_dvb
		video_buf_dvb 7300 5 cx88_dvb
		dvb_core 94768 5 video_buf_dvb
		cx22702 10884 1 cx88_dvb
		sunrpc 182372 21 nfsd,nfs,lockd
		reiserfs 273748 1
		ohci_hcd 27656 0
		cx8800 34188 0
		v4l1_compat 14212 1 cx8800
		v4l2_common 6144 1 cx8800
		cx8802 12164 1 cx88_dvb
		cx88xx 48916 3 cx88_dvb,cx8800,cx8802
		i2c_algo_bit 9736 1 cx88xx
		video_buf 24324 5 cx88_dvb,video_buf_dvb,cx8800,cx8802,cx88xx
		btcx_risc 5256 3 cx8800,cx8802,cx88xx
		videodev 10240 2 cx8800,cx88xx
		i2c_amd756 6788 0
		i2c_core 23552 5 mt352,cx22702,cx88xx,i2c_algo_bit,i2c_amd756
		8139too 30464 0
		mii 5504 1 8139too
		floppy 66608 0
		ext3 134152 2
		jbd 86808 1 ext3
		dm_mod 61844 2
		

(Optional)Install the Nvidia Drivers

To be documented

Continue with Martin's Guide

You should now be able to perform part 1 of Martin Smith's guide - good luck!