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.<\/p>\n
The first problem I had was that there was no firmware. I spotted this in the output from dmesg:<\/p>\n
[ 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\r\n[ 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)\r\n[ 15.147781] dvb_usb_af9015: probe of 3-1:1.0 failed with error -2\r\n<\/pre>\nAlthough 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.<\/p>\n
sudo apt-get install linux-firmware-nonfree<\/pre>\nThen I needed reinsert the modules so that the firmware could get downloaded:<\/p>\n
sudo rmmod dvb_usb_af9015\r\nsudo rmmod dvb-usb\r\nmodprobe\r\nmodprobe dvb-usb\r\nsudo modprobe dvb-usb\r\nsudo modprobe dvb_usb_af9015<\/pre>\nNext time I ran dmesg, there were some much more promising lines:<\/p>\n
[ 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\r\n[ 29.967469] dvb-usb: downloading firmware from file 'dvb-usb-af9015.fw'\r\n[ 30.037577] dvb-usb: found a 'KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T)' in warm state.\r\n[ 30.037783] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.\r\n[ 30.038103] DVB: registering new adapter (KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T))\r\n[ 30.042065] af9013: firmware version:4.95.0.0\r\n[ 30.046814] DVB: registering adapter 0 frontend 0 (Afatech AF9013 DVB-T)...\r\n[ 30.048791] tda18271 0-00c0: creating new instance\r\n[ 30.054815] TDA18271HD\/C2 detected @ 0-00c0\r\n[ 30.324093] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.\r\n[ 30.324505] DVB: registering new adapter (KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T))\r\n[ 30.596052] ADDRCONF(NETDEV_UP): wlan0: link is not ready\r\n[ 31.040928] af9013: found a 'Afatech AF9013 DVB-T' in warm state.\r\n[ 31.044418] af9013: firmware version:4.95.0.0\r\n[ 31.058424] DVB: registering adapter 1 frontend 0 (Afatech AF9013 DVB-T)...\r\n[ 31.058533] tda18271 0-00c0: attaching existing instance\r\n[ 31.058541] Registered IR keymap rc-empty\r\n[ 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\r\n[ 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\r\n[ 31.058716] dvb-usb: schedule remote query interval to 500 msecs.\r\n[ 31.058720] dvb-usb: KWorld PlusTV Dual DVB-T PCI (DVB-T PC160-2T) successfully initialized and connected.\r\n[ 31.076254] usbcore: registered new interface driver dvb_usb_af9015\r\n<\/pre>\nI found http:\/\/parker1.co.uk\/mythtv_dvb.php<\/a> to have some useful information - it shows a method of verifying that the card is working by taking mythtv out of the equation.<\/p>\n
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:<\/p>\n
[ 30.324093] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.<\/pre>\nI 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:<\/p>\n
[ 38.379309] af9013: I2C read failed reg:d417<\/pre>\nThis 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<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"
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 […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/posts\/100"}],"collection":[{"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":8,"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"predecessor-version":[{"id":118,"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/posts\/100\/revisions\/118"}],"wp:attachment":[{"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/francisfisher.me.uk\/problem\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}