The PCI card is internally implemented as a USB interface connected to the two tuners over USB which is interesting to say the least. Presumably its cheaper to put an extra USB chip on a PCI card than to make a new design specifically for PCI.
The first problem I had was that there was no firmware. I spotted this in the output from dmesg:
[ 13.980942] dvb-usb: found a 'KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T)' in cold state, will try to load a firmware [ 15.147767] dvb-usb: did not find the firmware file. (dvb-usb-af9015.fw) Please see linux/Documentation/dvb/ for more details on firmware-problems. (-2) [ 15.147781] dvb_usb_af9015: probe of 3-1:1.0 failed with error -2
Although the documentation describes a method to obtain the firmware by running a script, it turns out that Ubuntu already has the firmware packaged. So I just needed to install linux-firmware-nonfree.
sudo apt-get install linux-firmware-nonfree
Then I needed reinsert the modules so that the firmware could get downloaded:
sudo rmmod dvb_usb_af9015 sudo rmmod dvb-usb modprobe modprobe dvb-usb sudo modprobe dvb-usb sudo modprobe dvb_usb_af9015
Next time I ran dmesg, there were some much more promising lines:
[ 29.822162] dvb-usb: found a 'KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T)' in cold state, will try to load a firmware [ 29.967469] dvb-usb: downloading firmware from file 'dvb-usb-af9015.fw' [ 30.037577] dvb-usb: found a 'KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T)' in warm state. [ 30.037783] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [ 30.038103] DVB: registering new adapter (KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T)) [ 30.042065] af9013: firmware version:22.214.171.124 [ 30.046814] DVB: registering adapter 0 frontend 0 (Afatech AF9013 DVB-T)... [ 30.048791] tda18271 0-00c0: creating new instance [ 30.054815] TDA18271HD/C2 detected @ 0-00c0 [ 30.324093] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [ 30.324505] DVB: registering new adapter (KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T)) [ 30.596052] ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 31.040928] af9013: found a 'Afatech AF9013 DVB-T' in warm state. [ 31.044418] af9013: firmware version:126.96.36.199 [ 31.058424] DVB: registering adapter 1 frontend 0 (Afatech AF9013 DVB-T)... [ 31.058533] tda18271 0-00c0: attaching existing instance [ 31.058541] Registered IR keymap rc-empty [ 31.058604] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1e.0/0000:05:01.2/usb3/3-1/rc/rc0/input4 [ 31.058713] rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1e.0/0000:05:01.2/usb3/3-1/rc/rc0 [ 31.058716] dvb-usb: schedule remote query interval to 500 msecs. [ 31.058720] dvb-usb: KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T) successfully initialized and connected. [ 31.076254] usbcore: registered new interface driver dvb_usb_af9015
I found http://parker1.co.uk/mythtv_dvb.php to have some useful information - it shows a method of verifying that the card is working by taking mythtv out of the equation.
Now that I knew that the card was working, I configured it in mythtv. As there are two tuners I configured both in mythtv, making sure to increase the setting allowing multiple streams to be recorded from the same multiplex. (This is due to the way dvb-t/freeview works - several stations are transmitted on the same channel). My biggest worry when I ordered the card was that it would not have this funtionality and that I would never be able to watch or record more than 2 channels simultaneously, but the following line in the output of dmesg reassured me:
[ 30.324093] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
I was able to watch some TV on mythtv and caught the end of Gypsy Wedding...probably the only reality TV show that I can tolerate! I then set up some recordings to take place over the next few days unfortunately none of these worked. It turns out that there is currently a bug in the 3.0 and 3.2 kernels' drivers that handles the chip - the driver doesn't like switching between the two tuners. A symptom of the bug is i2c read errors such as this:
[ 38.379309] af9013: I2C read failed reg:d417
This bug causes both tuners to eventually stop working. I worked around this by disabling the second tuner in mythtv, and mythtv has been stable since. I will solve this later, but for now I need to get the remote working!