Next Previous Contents

5. Video driver Setup - nVidia and DVICO

5.1 Installing the nVidia driver

Reboot the computer:

# reboot

You should notice that your new kernel has booted, there should be no serious error messages during the boot process. The boot finishes at a test mode login prompt.

Login as root and let's install the nVidia driver.

# sh /home/mythtv/
# nano -w /etc/X11/xorg.conf

You need to modify xorg.conf to use the nvidia driver. The following are the minimum changes you need to make:

Section "Module"

Load "glx"
#Load "dri"
#Load "GLcore"

Section "Device"

#Driver "nv"
Driver "nvidia"

Comment out "dri", "GLcore" and "nv" and replace with "glx" and "nvidia" in the appropriate places.

Apparently there may be a problem with udev and the nvidia device files, the fix to which is presented here.

Now you can install the nvidia module and check to see if your xorg.conf works.

# insmod nvidia
# init 5

If everything appears to be working open up a terminal and edit /boot/grub/grub.conf

# nano -w /boot/grub/grub.conf

Remove the 3 from the end of the kernel line to reactivate the X server.

5.2 Building the DVICO driver

Download the driver for the DVICO FusionHDTV DVB-T cards.

$ wget

The package Chris has made likes to live in /build (or else you need to modify two more text files) so we'll just go with the flow and put it there.

# mkdir /build
# tar zxvf /home/mythtv/DVICO-20041031.tar.gz -C /build/

Unfortunately some of the changes in the linux kernel since Chris's driver was made available, and so we need to modify some of the files. Edit /build/dvb-kernel/linux/drivers/media/dvb/dvb_net.c line 145 as shown:

# nano -w /build/dvb-kernel/linux/drivers/media/dvb/dvb_net.c

lines 143-148 of the new dvb_net.c

143:         skb_pull(skb,dev->hard_header_len);
145:         eth = eth_hdr(skb);
146: #else
147:         eth = eth_hdr(skb);
148: #endif

Basically grab line 147 and past it over the old 145.

Hint: CTRL-K cuts a line, CTRL-U returns the line, and keeps it in the buffer. If you fluff it up, don't save it but do try again.

Also required is a patch to the cx88-cards.c file, as per this message. Download and apply the patch as follows:

$ wget
# patch /build/video4linux/cx88-cards.c /home/mythtv/_patch

Now we can build the driver:

# cd /build
# ./

This should build the drivers with no significant error messages.

The script also needs some editing, as i2c-core can no longer be compiled as a module and in our configuration it is compiled into the kernel. So edit the script and comment out the offending line.

# nano -w /build/

and edit the file to make the beginning look like (note the # on the i2c-core line):

edit to

case "$1" in
HAS_CX88=`/sbin/lspci -n | fgrep 14f1:8802`
HAS_BT878=`/sbin/lspci -n | fgrep 109e:0878`
echo -n -e "Inserting DVICO modules into kernel: "
cd ${BUILDDIR}/video4linux
/sbin/insmod ./video-buf.ko
/sbin/insmod ./btcx-risc.ko
# /sbin/modprobe i2c-core
/sbin/insmod ./v4l2-common.ko
/sbin/insmod ./v4l1-compat.ko

Now try loading your DVICO modules for the first time:

# /build/ start
# dmesg

A successful loading of the modules results in these messages at the end of dmesg:

cx2388x v4l2 driver version 0.0.4 loaded ACPI: PCI interrupt 0000:01:06.0[A] -> GSI 5 (level, low) -> IRQ 5 cx88[0]: subsystem: 18ac:db10, board: DVICO FusionHDTV DVB-T Plus [card=21,autodetected] cx88[0]/0: found at 0000:01:06.0, rev: 5, irq: 5, latency: 32, mmio: 0xe0000000 cx88[0]/0: registered device video0 [v4l2] cx88[0]/0: registered device vbi0 cx2388x dvb driver version 0.0.4 loaded ACPI: PCI interrupt 0000:01:06.2[A] -> GSI 5 (level, low) -> IRQ 5 cx88[0]/2: found at 0000:01:06.2, rev: 5, irq: 5, latency: 32, mmio: 0xe1000000 cx88[0]/2: cx2388x based dvb card DVB: registering new adapter (cx88[0]). DVB: registering frontend 0 (DVICO FusionHDTV DVB-T Plus)...

Also, udev should have created the device nodes at /dev/dvb/adapter0/ which you can check by changing to that directory and doing an ls. Now the hard part is over. You can test your driver by compiling the linux tv dvb test applications.

Should udev not play the game try a reboot, log in as root and run '/build/ start' again. Check again for the existence of /dev/dvb/adapter0/ and if it is there copy it like this:

# cp -a /dev/dvb /etc/udev/devices/

To allow user 'mythtv' access to the device files change ownership like this:

# chown mythtv:mythtv /etc/udev/devices/dvb/adapter0/*

This makes udev create the device files on every boot and gives 'mythtv' access to them. If /dev/dvb/adaptor0 is not there, then try running '/build/dvb-kernel/', and then do the same two steps.

5.3 Linux TV dvb test applications

Download and compile the suite of applications. The scan tool is useful for working out the tuning details for digital TV channels in your area.

$ wget
# mkdir /usr/src/dvico
# tar jxvf /home/mythtv/linuxtv-dvb-apps-1.1.0.tar.bz2 -C /usr/src/dvico
# cd /usr/src/dvico/linuxtv-dvb-apps-1.1.0
# make

To use the tools read the Test Scanning and Tuning section from Martin Smith's MythTV DVB Setup Guide. To work out the frequencies and options you can use the Reception Locator of the Digital Broadcasting Australia, or you can use my au-MtTassie file if you happen to live in Gippsland. Richard Dale provides a frequency file for Perth WA, at au-perth.


# au-MtTassie
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 543500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
# This will be Prime
T 564500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
T 585500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
# SC10
T 606500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
T 627500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE

Prime TV is due to begin transmitting in March 05, so there will be some tuning failure messages.

Next Previous Contents