Leadtek WinFast DTV2000DS: Difference between revisions
No edit summary |
No edit summary |
||
Line 114: | Line 114: | ||
==Making it work in Ubuntu== |
==Making it work in Ubuntu== |
||
Updated |
Updated 20 Nov 2010 by '''AMX'''. |
||
Here is a simple HOWTO/Workaround to get this card working . This is based on debian flavours. |
|||
Although there are some people that have come up with shell scrips and patches to get something similar, it is better that everyone knows how things are done, and also hopefully this will be incorporated into the new releases of V4L. Until then we all have to sweat it a bit!! |
|||
See here for the solution [http://www.xpmediacentre.com.au/community/tuners/41937-leadtek-dtv2000ds-4.html]''' |
|||
============================ |
|||
The real solution is based on the bug found in http://www.xpmediacentre.com.au/community/tuners/41937-leadtek-dtv2000ds-4.html . There is another issue that better get fixed and it is to do with I2C byte write numbers. |
|||
Older notes, which will be removed once the solution is certified by others. |
|||
Please leave comments in the discussion session or put comments in http://www.xpmediacentre.com.au/community/tuners/41937-leadtek-dtv2000ds-4.html so that we keep this updated. |
|||
1- Starting from a clean install of 10.04 or 10.10, perform the initial steps to install V4L drivers |
|||
NOTE: This card has not been working in the standard Ubuntu 10.10 release, in fact it is not working in the standard 10.04 neither. |
|||
There are some reports of people making it work by switching to different kernels, different drivers, different firmware, etc, |
|||
but as far as working is concerned this does not constitute a stable state. |
|||
<code><pre>sudo apt-get install mercurial linux-headers-$(uname -r) build-essential</pre></code> |
|||
There are no consistent reports of this card working under any particular kernel, so unless an accurate HOWTO with detailed and exact versions are posted, this card can be regarded as "UNSTABLE". It is not clear which part of the chain is at fault (kernel, v4l drivers, dvb-usb-af9015.fw, or something else). |
|||
Yes, this card can be made to be detected and its firmware "dvb-usb-af9015.fw" loaded. But it ends there, and mythtv cannot lock or show any channels. |
|||
2- go to http://linuxtv.org/hg/v4l-dvb/rev/abd3aac6644e and click on the "bz2" link and download the file. |
|||
If anyone has a reproducible recipe for making this card work from a generic 10.10 or 10.04 distribution, please post here. |
|||
(Note that here I am referring to a specifig tag of the repository, i.e. abd3aac6644e.) |
|||
This earlier link can be regarded as generic information. |
|||
3- run |
|||
"Mythbuntu 10.04 plus latest V4L-DVB drivers as per [http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers]" |
|||
<code><pre> |
|||
bzcat v4l-dvb-abd3aac6644e.tar.bz2 | tar xv |
|||
cd v4l-dvb-abd3aac6644e |
|||
</pre></code> |
|||
This should create a directory called v4l-dvb-abd3aac6644e |
|||
4- Do the following modifications |
|||
4.1- The small_i2c fix: This fix is from discussions here http://www.spinics.net/lists/linux-usb/msg37741.html . |
|||
Edit the file linux/drivers/media/dvb/dvb-usb/af9015.c and replace |
|||
<code><pre> |
|||
static struct tda18271_config af9015_tda18271_config = { |
|||
.gate = TDA18271_GATE_DIGITAL, |
|||
.small_i2c = 1, |
|||
}; |
|||
</pre></code> |
|||
with |
|||
<code><pre> |
|||
static struct tda18271_config af9015_tda18271_config = { |
|||
.gate = TDA18271_GATE_DIGITAL, |
|||
.small_i2c = TDA18271_16_BYTE_CHUNK_INIT, |
|||
}; |
|||
</pre></code> |
|||
Then edit the file linux/drivers/media/common/tuners/tda18271.h |
|||
and replace |
|||
<code><pre> |
|||
enum tda18271_small_i2c { |
|||
TDA18271_39_BYTE_CHUNK_INIT = 0, |
|||
TDA18271_16_BYTE_CHUNK_INIT = 1, |
|||
TDA18271_08_BYTE_CHUNK_INIT = 2, |
|||
}; |
|||
</pre></code> |
|||
with |
|||
<code><pre> |
|||
enum tda18271_small_i2c { |
|||
TDA18271_39_BYTE_CHUNK_INIT = 0, |
|||
TDA18271_16_BYTE_CHUNK_INIT = 16, |
|||
TDA18271_08_BYTE_CHUNK_INIT = 8, |
|||
TDA18271_03_BYTE_CHUNK_INIT = 3, |
|||
}; |
|||
</pre></code> |
|||
4.2- The main and the nasty bug i.e. the if_sample_freq bug: This fix is from http://www.xpmediacentre.com.au/community/tuners/41937-leadtek-dtv2000ds-4.html . |
|||
edit the file linux/drivers/media/dvb/frontends/af9013.c |
|||
and replace |
|||
<code><pre> |
|||
/* TDA18271 uses different sampling freq for every bw */ |
|||
if (state->config.tuner == AF9013_TUNER_TDA18271) { |
|||
switch (bw) { |
|||
case BANDWIDTH_6_MHZ: |
|||
if_sample_freq = 3300000; /* 3.3 MHz */ |
|||
break; |
|||
case BANDWIDTH_7_MHZ: |
|||
if_sample_freq = 3800000; /* 3.8 MHz */ |
|||
break; |
|||
case BANDWIDTH_8_MHZ: |
|||
default: |
|||
if_sample_freq = 4300000; /* 4.3 MHz */ |
|||
break; |
|||
} |
|||
} |
|||
</pre></code> |
|||
with |
|||
<code><pre> |
|||
/* TDA18271 uses different sampling freq for every bw */ |
|||
if (state->config.tuner == AF9013_TUNER_TDA18271) { |
|||
switch (bw) { |
|||
case BANDWIDTH_6_MHZ: |
|||
if_sample_freq = 3300000; /* 3.3 MHz */ |
|||
break; |
|||
case BANDWIDTH_7_MHZ: |
|||
if_sample_freq = 3500000; /* 3.5 MHz */ |
|||
break; |
|||
case BANDWIDTH_8_MHZ: |
|||
default: |
|||
if_sample_freq = 4000000; /* 4.0 MHz */ |
|||
break; |
|||
} |
|||
} |
|||
</pre></code> |
|||
5- Compile and install the drivers |
|||
<code><pre> |
|||
make config |
|||
sed -i -e "s/FIREDTV=m/FIREDTV=n/" v4l/.config |
|||
make |
|||
sudo make config |
|||
wget http://palosaari.fi/linux/v4l-dvb/firmware/af9015/5.1.0.0/dvb-usb-af9015.fw |
|||
sudo cp dvb-usb-af9015.fw /lib/firmware |
|||
</pre></code> |
|||
6- Shutdown (you have to shutdown) |
|||
7- Startup |
|||
===Remote Control Support=== |
===Remote Control Support=== |
Revision as of 10:29, 20 November 2010
A dual tuner DVB-T PCI card from Leadtek.
Currently supported by recent V4L-DVB (as at Sep 2010). The card is not working stably and making it work has proven to be illusive.
Overview/Features
Formats:
- DVB-T
Inputs:
- RF
- Infrared
Components Used
Contains
- NXP TDA18211
Identification
Output of lsusb -v:
Bus 002 Device 002: ID 0413:6a04 Leadtek Research, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0413 Leadtek Research, Inc. idProduct 0x6a04 bcdDevice 2.00 iManufacturer 1 Afatech iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 46 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 4 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered)
Making it work in Ubuntu
Updated 20 Nov 2010 by AMX.
Here is a simple HOWTO/Workaround to get this card working . This is based on debian flavours. Although there are some people that have come up with shell scrips and patches to get something similar, it is better that everyone knows how things are done, and also hopefully this will be incorporated into the new releases of V4L. Until then we all have to sweat it a bit!!
The real solution is based on the bug found in http://www.xpmediacentre.com.au/community/tuners/41937-leadtek-dtv2000ds-4.html . There is another issue that better get fixed and it is to do with I2C byte write numbers.
Please leave comments in the discussion session or put comments in http://www.xpmediacentre.com.au/community/tuners/41937-leadtek-dtv2000ds-4.html so that we keep this updated.
1- Starting from a clean install of 10.04 or 10.10, perform the initial steps to install V4L drivers
sudo apt-get install mercurial linux-headers-$(uname -r) build-essential
2- go to http://linuxtv.org/hg/v4l-dvb/rev/abd3aac6644e and click on the "bz2" link and download the file.
(Note that here I am referring to a specifig tag of the repository, i.e. abd3aac6644e.)
3- run
bzcat v4l-dvb-abd3aac6644e.tar.bz2 | tar xv
cd v4l-dvb-abd3aac6644e
This should create a directory called v4l-dvb-abd3aac6644e
4- Do the following modifications
4.1- The small_i2c fix: This fix is from discussions here http://www.spinics.net/lists/linux-usb/msg37741.html .
Edit the file linux/drivers/media/dvb/dvb-usb/af9015.c and replace
static struct tda18271_config af9015_tda18271_config = {
.gate = TDA18271_GATE_DIGITAL,
.small_i2c = 1,
};
with
static struct tda18271_config af9015_tda18271_config = {
.gate = TDA18271_GATE_DIGITAL,
.small_i2c = TDA18271_16_BYTE_CHUNK_INIT,
};
Then edit the file linux/drivers/media/common/tuners/tda18271.h
and replace
enum tda18271_small_i2c {
TDA18271_39_BYTE_CHUNK_INIT = 0,
TDA18271_16_BYTE_CHUNK_INIT = 1,
TDA18271_08_BYTE_CHUNK_INIT = 2,
};
with
enum tda18271_small_i2c {
TDA18271_39_BYTE_CHUNK_INIT = 0,
TDA18271_16_BYTE_CHUNK_INIT = 16,
TDA18271_08_BYTE_CHUNK_INIT = 8,
TDA18271_03_BYTE_CHUNK_INIT = 3,
};
4.2- The main and the nasty bug i.e. the if_sample_freq bug: This fix is from http://www.xpmediacentre.com.au/community/tuners/41937-leadtek-dtv2000ds-4.html .
edit the file linux/drivers/media/dvb/frontends/af9013.c
and replace
/* TDA18271 uses different sampling freq for every bw */
if (state->config.tuner == AF9013_TUNER_TDA18271) {
switch (bw) {
case BANDWIDTH_6_MHZ:
if_sample_freq = 3300000; /* 3.3 MHz */
break;
case BANDWIDTH_7_MHZ:
if_sample_freq = 3800000; /* 3.8 MHz */
break;
case BANDWIDTH_8_MHZ:
default:
if_sample_freq = 4300000; /* 4.3 MHz */
break;
}
}
with
/* TDA18271 uses different sampling freq for every bw */
if (state->config.tuner == AF9013_TUNER_TDA18271) {
switch (bw) {
case BANDWIDTH_6_MHZ:
if_sample_freq = 3300000; /* 3.3 MHz */
break;
case BANDWIDTH_7_MHZ:
if_sample_freq = 3500000; /* 3.5 MHz */
break;
case BANDWIDTH_8_MHZ:
default:
if_sample_freq = 4000000; /* 4.0 MHz */
break;
}
}
5- Compile and install the drivers
make config
sed -i -e "s/FIREDTV=m/FIREDTV=n/" v4l/.config
make
sudo make config
wget http://palosaari.fi/linux/v4l-dvb/firmware/af9015/5.1.0.0/dvb-usb-af9015.fw
sudo cp dvb-usb-af9015.fw /lib/firmware
6- Shutdown (you have to shutdown)
7- Startup
Remote Control Support
I (Gregoryo) have had no success with the remote, but there is hope from dmesg:
[ 22.263721] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:0e.0/0000:02:0a.2/usb2/2-1/input/input5
user@host:~$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=0413 Product=6a04 Version=0200
N: Name="IR-receiver inside an USB DVB receiver"
P: Phys=usb-0000:02:0a.2-1/ir0
S: Sysfs=/devices/pci0000:00/0000:00:0e.0/0000:02:0a.2/usb2/2-1/input/input5
U: Uniq=
H: Handlers=kbd event5
B: EV=3
B: KEY=108fc310 2802891 0 0 0 0 118000 200180 4803 e1680 0 100000 ffe
So I've been using /dev/input/event5 in my tests. I have tried using evtest, mode2, and irw to no avail. I get no indication of any signal coming from the remote. Am I missing a kernel driver module?