How to get the Nebula, PCTV and Twinhan DST cards working ========================================================= This class of cards has a bt878a as the PCI interface, and require the bttv driver. Please pay close attention to the warning about the bttv module options below for the DST card. For 2.4, make sure you are using an uptodate kernel 2.4.23 and above. For 2.6, shuffle down to the 2.6 section below. 1) 2.4 ====== For 2.4, make sure you are using an uptodate kernel 2.4.23 and above. This is the *only* way to go when you are experimenting with bleeding-edge stuff like DVB. Do the usual to build your kernel and remember to enable the V4L functionality. For the 'BT848 Video For Linux' in the 'Video for Linux' section to show up you need to enable 'I2C support' and 'I2C bit-banging interfaces' in the charcter devices section. I'd recommend you install and test your kernel, rather than diving straight into the bt878 stuff. Download http://bytesex.org/snapshot/video4linux-xxxxyyzz.tar.gz, where xxxxyyzz is the date of the release. Extract it and do the usual "make" and "make install". $ tar xzfv video4linux-xxxxyyzz.tar.gz $ make $ make install Now grab "dvb-kernel" from CVS: $ cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv login $ cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv co dvb-kernel ... and build the driver: $ cd dvb-kernel/build-2.4 $ ./getlinks $ make $ make install If you don't use devfs (or your devfs setup is not configured correctly) you might need to add the device nodes manually with the "makedev" script from the DVB driver: http://linuxtv.org/cgi-bin/cvsweb.cgi/~checkout~/DVB/driver/makedev.napi?rev=1.14&content-type=text/plain 2) 2.6 ====== For 2.6, you don't need the latest bttv driver, everything is in the kernel drivers. Please use 2.6.0-test10 and above. Checkout dvb-kernel as mentionen above, but then do everything as per the README in dvb-kernel. Unfortunately, in some older kernels the bttv card lists have the TwinHan cards listed as card=0x68. (see below) Using card=0x71 there will lockup your machine. 3) Loading Modules ================== You can either modify and use the "insmod-bt8xx.sh" script in the build-2.4 directory or simply do everything by hand. In general you need to load the bttv driver, which will handle the gpio and i2c communication for us. Next you need the common dvb-bt8xx device driver and one frontend driver. The bttv driver will HANG YOUR SYSTEM IF YOU DO NOT SPECIFY THE COORECT CARD ID! A list of possible card ids can be found inside "bttv-cards.c" inside the bttv driver package. Pay attention to failures to load these frontends. (E.g. dmesg, /var/log/messages). 3a) Nebula / Pinnacle PCTV -------------------------- $ modprobe bttv i2c_hw=1 card=0x68 $ modprobe dvb-bt8xx For Nebula cards use the "nxt6000" frontend driver: $ modprobe nxt6000 For Pinnacle PCTV cards use the "cx24110" frontend driver: $ modprobe cx24110 3b) TwinHan ----------- $ modprobe bttv i2c_hw=1 card=0x71 $ modprobe dvb-bt8xx $ modprobe dst The value 0x71 will override the PCI type detection for dvb-bt8xx, which is necessary for TwinHan cards. If you're using 2.6, see the remark above about the card parameter. If you're having an older card (blue color circuit) and card=0x71 locks your machine, try using 0x68, too. If that does not work, ask on the mailing list. The DST module takes a couple of useful parameters, in case the dst drivers fails to detect your type of card correctly. dst_type takes values 0 (satellite), 1 (terrestial TV), 2 (cable). dst_type_flags takes bit combined values: 1 = new tuner type packets. You can use this if your card is detected and you have debug and you continually see the tuner packets not working (make sure not a basic problem like dish alignment etc.) 2 = TS 204. If your card tunes OK, but the picture is terrible, seemingly breaking up in one half continually, and crc fails a lot, then this is worth a try (or trying to turn off) 4 = has symdiv. Some cards, mostly without new tuner packets, require a symbol division algorithm. Doesn't apply to terrestial TV. You can also specify a value to have the autodetected values turned off (e.g. 0). The autodected values are determined bythe cards 'response string' which you can see in your logs e.g. dst_check_ci: recognize DST-MOT or dst_check_ci: unable to recognize DSTXCI or STXCI 4) The rest =========== That's it. Have fun. Report problems to the mailing list. Thanks! -- Authors: Richard Walker (Original) Jamie Honan (13 Oct 2003) Michael Hunold (25 Nov 2003)