LinuxTVWiki:Sandbox: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
A [[DVB-T]] [[DVB-T USB Devices|USB device]] from [[Leadtek]].
==== AVerMedia AVerTV Volar Green HD 07ca:3835 ====

{{DeviceDisplayMedium|AVerMedia AVerTV Volar Green HD 07ca:3835}}
{{Device_List_Medium_Detail/Header
</noinclude><includeonly>
| content =
{{{{{renderwith}}}|src=USB_Device_Data|selatt1={{{selatt1|}}}|selval1={{{selval1|}}}|selatt2={{{selatt2|}}}|selval2={{{selval2|}}}|selatt3={{{selatt3|}}}|selval3={{{selval3|}}}|selatt4={{{selatt4|}}}|selval4={{{selval4|}}}
{{USB_Device_Data
| did=AVerMedia AVerTV Volar Green HD 07ca:3835
|renderwith=Device_List_Medium_Detail/Row
| vendor=[[AVerMedia]]
|selatt1=did
| device=[[AVerMedia AVerTV Volar Green HD | AVerTV Volar Green HD]]
|selval1=leadtek-dtv-gold
| standard=DVB-T
}}
| supported={{no}}
| pic=
| pic=
| url=
| url=
| hostinterface=USB2.0
| usbid=07ca:3835
| hw=unknown (see pic)
| tuner=
| demodulator=
| usbbridge=
| fw=
| comment= New version with same name ; main chipset (square, 4x12 pins) named AV3007 SXB1102 ; a little chip with 8 pins named 402R6 K207, another one with 5 pins 215L1(or "I" instead of "1") AC1H ; last small chip with metal on top T120 WtBF.
This device don't work on recent ubuntu kernel (3.2.0-23-lowlatency), even with the last (04/11/2012) v4l drivers that I've downloaded and installed today.
}}
}}


==Overview/Features==
= TerraTec T6 Dual DVB-T stick =


* Supplied with a remote control.


===Components Used===
* [[Afatech AF9035]] demodulator and USB bridge
* Dual ITE Tech IT9135 tuners


===Identification===
It consists of
* Afatech AF9035B-N2 USB Interface with included AF9033 Demodulator
* Afatech AF9033B-N2 second Demodulator
* Fitipower FC0012 Tuner (2 off)
Yes, this is a USB stick!


The USB ID is:
This device is currently not officially supported by Linux, however it is possible to get this device working using a slightly patched version of the AF9035 driver as used in [[EzCap_DVB_T_Stick]].
* <tt>0413:6a05</tt>
==Driver Installation==
By default the driver is not supported in the kernel and must be installed separately.


To install the driver you will need your kernel headers and other software requirements installed, as listed [http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers#Software_Requirements here]
== Instruction how to get the stick working ==


To install the firmware driver enter the following commands into a terminal:
Follow the instruction to get the AF903x source code archive '''AF903x.tar.gz''' in [[EzCap_DVB_T_Stick]].


input: su
I run kernel 3.0.1 and therefore I needed a few patches just to get the source code compiled (you may not need all of them, but they shouldn't hurt either):
input: # cd /lib/firmware/
input: # wget -O dvb-usb-af9035-02.fw http://palosaari.fi/linux/v4l-dvb/firmware/af9035/dvb-usb-af9035-02.fw_3735d499d945a6bb873a7f3ad5c701fa_12.13.15.0_6.20.15.0


Your TV tuner's demodulator and USB Bridge firmware driver is installed. The next step is to install the driver for the dual ITE Tech IT9135 tuners.
--- a/src/af903x.h 2009-08-14 16:17:10.000000000 +0200
+++ b/src/af903x.h 2011-08-13 16:49:49.799506005 +0200
@@ -9,7 +9,6 @@
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/kref.h>
-#include <linux/smp_lock.h>
#include <linux/usb.h>
#include <asm/uaccess.h>
#include "dvb-usb.h"
--- a/src/userdef.h 2009-08-14 16:17:10.000000000 +0200
+++ b/src/userdef.h 2011-08-01 22:56:02.626583791 +0200
@@ -8,7 +8,9 @@
typedef int INT; // 4 bytes
//typedef void * HANDLE;
+#ifndef NULL
#define NULL 0
+#endif
#ifdef IN
#undef IN
--- a/api/type.h 2009-08-14 16:17:10.000000000 +0200
+++ b/api/type.h 2011-08-01 22:54:38.197342415 +0200
@@ -3,6 +3,15 @@
#include "userdef.h"// for Linux
+#ifdef IN
+#undef IN
+#endif
+#ifdef OUT
+#undef OUT
+#endif
+#ifdef INOUT
+#undef INOUT
+#endif
#define IN
#define OUT
#define INOUT
--- a/api/usb2impl.c 2011-02-15 11:12:59.000000000 +0100
+++ b/api/usb2impl.c 2011-08-01 21:59:17.635389432 +0200
@@ -6,7 +6,6 @@
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/kref.h>
-#include <linux/smp_lock.h>
#include <linux/usb.h>
#include <asm/uaccess.h>
#include <linux/device.h>


To install the tuner firmware driver, enter the following commands into a terminal:
Then, here are some bug fixes to prevent deadlocks of the mutexes:


input: # cd /lib/firmware/
--- a/src/af903x-drv.c 2009-08-14 16:17:10.000000000 +0200
input: # wget https://github.com/OpenELEC/dvb-firmware/raw/master/it9135/dvb-usb-it9135-01.fw
+++ b/src/af903x-drv.c 2011-08-12 21:26:10.610770606 +0200
@@ -1075,7 +1075,7 @@ DWORD DL_ApCtrl (
if(PDC->architecture != Architecture_PIP)
{
- if ( PDC->Demodulator.chipNumber == 2 && bOn) dwError = DL_NIMSuspend(PDC, false);
+ if ( PDC->Demodulator.chipNumber == 2 && bOn) dwError = DRV_NIMSuspend(PDC, false);
for (i=0; i<PDC->Demodulator.chipNumber; i++)
{
@@ -1091,7 +1091,7 @@ DWORD DL_ApCtrl (
}
}
- if(PDC->Demodulator.chipNumber == 2 && !bOn) dwError = DL_NIMSuspend(PDC, true);
+ if(PDC->Demodulator.chipNumber == 2 && !bOn) dwError = DRV_NIMSuspend(PDC, true);
}
else
{
@@ -1100,7 +1100,7 @@ DWORD DL_ApCtrl (
PDC->fc[ucSlaveDemod].GraphBuilt = 1;
if (PDC->fc[0].GraphBuilt == 0 || PDC->fc[1].GraphBuilt == 0)
- dwError = DL_NIMSuspend(PDC, false);
+ dwError = DRV_NIMSuspend(PDC, false);
dwError = DRV_ApCtrl (PDC, ucSlaveDemod, bOn);
}
@@ -1112,7 +1112,7 @@ DWORD DL_ApCtrl (
if (PDC->bTunerPowerOff != true) dwError = DRV_ApCtrl (PDC, ucSlaveDemod, bOn);
if (PDC->fc[0].GraphBuilt == 0 && PDC->fc[1].GraphBuilt == 0 && PDC->bTunerPowerOff == true)
- dwError = DL_NIMSuspend(PDC, true);
+ dwError = DRV_NIMSuspend(PDC, true);
}
}
And finally, the patches to support the TerraTec T6 Dual DVB-T stick:


Your dual ITE Tech IT9135 tuners are installed now! Next, we need to obtain, patch and build the latest V4L-DVB source code to recognise the Leadtek WinFast DTV Dongle Dual. To do this, we adapt the ["Basic" build Approach] following the instructions in the "README.patches" file that we obtain along with the rest of the V4L source code, via git.
--- a/src/af903x-devices.c 2009-08-14 16:17:10.000000000 +0200
+++ b/src/af903x-devices.c 2011-08-01 22:06:08.118919600 +0200
@@ -127,6 +127,7 @@ struct usb_device_id af903x_usb_id_table
{ USB_DEVICE(0x15A4,0x1002) },
{ USB_DEVICE(0x15A4,0x1003) },
{ USB_DEVICE(0x15A4,0x9035) },
+ { USB_DEVICE(0x0ccd,0x10b3) }, /* Terratec T6 */
{ 0}, /* Terminating entry */
};
MODULE_DEVICE_TABLE(usb, af903x_usb_id_table);
@@ -156,7 +157,7 @@ struct dvb_usb_device_properties af903x_
}
},
#else
- .num_adapters = 1,
+ .num_adapters = 2,
.adapter = {
{
.caps = DVB_USB_ADAP_HAS_PID_FILTER | DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
@@ -198,13 +199,17 @@ struct dvb_usb_device_properties af903x_
},
},
#endif
- .num_device_descs =1,
+ .num_device_descs =2,
.devices = {
{ "ITEtech USB2.0 DVB-T Recevier",
{ &af903x_usb_id_table[0], &af903x_usb_id_table[1],&af903x_usb_id_table[2],
&af903x_usb_id_table[3], &af903x_usb_id_table[4], NULL},
{ NULL },
},
+ { "Terratec T6",
+ { &af903x_usb_id_table[5], NULL},
+ { NULL },
+ },
{NULL},
}
--- a/api/Fitipower_FC0012.c 2009-08-14 16:17:10.000000000 +0200
+++ b/api/Fitipower_FC0012.c 2011-08-11 22:54:23.390763425 +0200
@@ -35,6 +35,12 @@ Dword FC0012_open (
IN Byte chip
) {
Dword error = Error_NO_ERROR;
+ int i;
+ Byte reg[] = {
+ 0x05, 0x10, 0x00, 0x00, 0x0a, 0x00, 0x0f, 0xff,
+ 0x6e, 0xb8, 0x83, 0xfe, 0x02, 0x00, 0x00, 0x0d,
+ 0x00, 0x1f, 0x90, 0x00, 0x04,
+ };
/** Control tuner enable */
error = Standard_writeRegisterBits (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1);
@@ -47,11 +53,16 @@ Dword FC0012_open (
if (error) goto exit;
/** Control pin diode **/
- error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_on, 1);
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_en, 1);
if (error) goto exit;
- error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_en, 1);
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_on, 1);
if (error) goto exit;
+
+ for (i=0; i<sizeof(reg)/sizeof(reg[0]); i++) {
+ error = Standard_writeTunerRegisters (demodulator, chip, i+1, 1, &reg[i]);
+ if (error) goto exit;
+ }
exit:
return (error);
}
--- a/api/Fitipower_FC0012_Script.h 2009-08-14 16:17:10.000000000 +0200
+++ b/api/Fitipower_FC0012_Script.h 2011-08-13 16:53:41.984092888 +0200
@@ -15,7 +15,7 @@
#define VERSION4 0
-#define FC0012_ADDRESS 0xC0
+#define FC0012_ADDRESS 0xC6
#define FC0012_SCRIPTSETLENGTH 0x00000001
Word FC0012_scriptSets[] = {
--- a/api/user.h 2009-08-14 16:17:10.000000000 +0200
+++ b/api/user.h 2011-08-10 22:21:31.192856393 +0200
@@ -22,7 +22,7 @@
#define User_I2C_SPEED 0x07
/** Define I2C address of secondary chip when Diversity mode or PIP mode is active. */
-#define User_I2C_ADDRESS 0x38
+#define User_I2C_ADDRESS 0x3a
/** Define USB frame size */
#define User_USB20_MAX_PACKET_SIZE 512

After that, continue with the instructions in [[EzCap_DVB_T_Stick]].

[[Category:DVB-T USB Devices]]

== CAPTURES USB VC-211A AND TERRATEC CINERGY 200 ==

The devices USB Model VC-211A, which can be found with the logos of ACTionMaster, Digitus or LinXcel, were added as card = 74 in cardlist of the em28xx driver at November 26, 2009, by the developer Mauro Chehab. These devices are erroneously recognized by the command "lsusb" as:

Bus 001 Device 002: ID eb1a:2800 eMPIA Technology, Inc. Terratec Cinergy 200

But they are simpler.Besides not having audio processor, are devoid of tuner and EEPROM. And why not have EEPROM, the driver v4l2 needs editing a file *. conf to recognize it and set it up correctly as CARD = 74 (VC-211A - ACTionMaster, or LinXcel Digitus). This can be done in the console as follows:

$ sudo gedit /etc/modprobe.d/captura.conf $ Sudo gedit / etc / modprobe.d / captura.conf

In this file, you must edit and save with the following parameters:

options em28xx card=6 core_debug=1 options em28xx card = 6 core_debug = 1

Obviously, until that amendment to em28xx kernel is integrated into the various Linux distributions that use v4l2, the user that have a VC-211A should download the tree v4l2 and compile the driver as guides on page How_to_Obtain, _Build_and_Install_V4L-DVB_Device_Drivers.

Before this change, the resolution of 720x480 required by v4l2 version 0.1.2 was not compatible with the captors VC-211A and older ones, since they only work with 640x480. This error generated a loss of data causing the captured image does not exceed the maximum of 360x240. This whole problem has been corrected by the master Mauro Chehab, which is worthy of respect and gratitude of the entire Linux community and especially the fans for the video capture.

We take this opportunity to give our thanks to all those who have worked directly or indirectly in the developed project video4linux.

This is a linux supported dvb t2 dual stick.

By Raymond Eduvirgens


[[Image:Terratec_Cinergy_T_USB_RC_HD_front|right|thumb|200px|Front of the Terratec Cinergy TStick RC HD]]

A Terratec DVB-T USB stick.

==Overview/Features==

* USB 2 interface
* Inputs: Antenna (Composite), Remote (untested)

===Components Used===
''List the hardware ICs and modules used by the device here. For example:''<br>
* [[E4000]] (tuner)
* [[RTL2832U ]]

===Other Images===
''Use the included code to insert other images if necessary. Add as many high resolution pictures as you can i.e the card, the original box, the remote and, when uploading the files to the wiki, give them detailed specific names. Note: only use images taken by yourself or those 3rd party images for which you have received express written consent (such as from a vendor) that permits their usage. For example:''<br>
<gallery perrow=5>
Image:Terratec_Cinergy_T_USB_RC_HD_back.jpg|Terratec Cinergy TStick RC HD Back
Image:Terratec_Cinergy_T_USB_RC_HD_box1.jpg|Terratec Cinergy TStick RC HD Box
Image:Terratec_Cinergy_T_USB_RC_HD_box2.jpg|Terratec Cinergy TStick RC HD Box
Image:Terratec_Cinergy_T_USB_RC_HD_box3.jpg|Terratec Cinergy TStick RC HD Box
</gallery>
[[File:Uusi.jpg]]
===Identification===
# lsusb -v
[...]
Bus 002 Device 002: ID 0ccd:00d3 TerraTec Electronic GmbH
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0ccd TerraTec Electronic GmbH
idProduct 0x00d3
bcdDevice 1.00
iManufacturer 1 Realtek
iProduct 2 RTL2838UHIDIR
iSerial 3 00000001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 4 USB2.0-Bulk&Iso
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 5 Bulk-In, Interface
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
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 5 Bulk-In, Interface
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 2
Device Status: 0x0000
(Bus Powered)
[...]


First, we obtain the source code unpatched.
==Making it Work==


input: mkdir dvb-git
The Terratec Cinergy TStick RC HD works with [Ambosa's RTL2832U driver|https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/]
input: cd dvb-git
It won't find any channel with the included antenna, but when connected to
input: git clone git://linuxtv.org/media_build.git
the aerial outlet (building antenna) it works fine with occassional square noise
or very short cuts (maybe more often in HD channels ???).


Then we obtain the patch by Antti Palosaari to get the device recognised. [http://git.linuxtv.org/anttip/media_tree.git/commitdiff/a5b75af3b2edf1e745417f0a35843e707a95208d?hp=b05fdd2c9a56b3aadb250916f01b5474505c28e6 View the patch commit] and paste the patch contents into a newly created "winfast-dual.patch" file, in the "backports" directory.
Can't test very often, because it's at a friend's, not mine.


diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
I haven't found an email address to tell Ambrosa and I don't have
index 1ea17dc..73ce27b 100644
a GitHub account, maybe someone who has can send a link to the GitHub forum?
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -1511,6 +1511,8 @@ static const struct usb_device_id af9035_id_table[] = {
/* XXX: that same ID [0ccd:0099] is used by af9015 driver too */
{ DVB_USB_DEVICE(USB_VID_TERRATEC, 0x0099,
&af9035_props, "TerraTec Cinergy T Stick Dual RC (rev. 2)", NULL) },
+ { DVB_USB_DEVICE(USB_VID_LEADTEK, 0x6a05,
+ &af9035_props, "Leadtek WinFast DTV Dongle Dual", NULL) },
{ }
};
MODULE_DEVICE_TABLE(usb, af9035_id_table);


The system I tested is a Debian squeeze, with a custom compiled linux-libre 3.2.1.


Save the file.
I followed


We need to also edit "backports.txt" as instructed by the "README.patches" file, so that the build script knows to apply the patch.
[https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/blob/master/README]


The backports.txt file should be modified to included an entry, like so:
(except I used
KBUILD_SRC=/home/[...]/linux-3.2.1 make
instead of
make
) and applied the following patch (simply add the vendor and device ids )


[YOUR KERNEL VERSION GOES HERE - FIND IT WITH THE "uname -r" COMMAND]
diff --git a/RTL2832-2.2.2_kernel-3.0.0/Makefile b/RTL2832-2.2.2_kernel-3.0.0/Makefile
add winfast_dual.patch # Winfast Dual Dongle patch
index b4fec9a..4816f69 100644
--- a/RTL2832-2.2.2_kernel-3.0.0/Makefile
+++ b/RTL2832-2.2.2_kernel-3.0.0/Makefile
@@ -4,10 +4,10 @@
# Choose here wich include file to use: from kernel 3.0.0 (good for 3.1.0) or from kernel 3.2.0
# kernel 3.0.0 / 3.1.0
-INCLUDE_EXTRA_DVB := include-300
+#INCLUDE_EXTRA_DVB := include-300
# kernel 3.2.0
-#INCLUDE_EXTRA_DVB := include-320
+INCLUDE_EXTRA_DVB := include-320
# ----------------------------------------
diff --git a/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.c b/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.c
index 6e7eac0..1ed364c 100644
--- a/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.c
+++ b/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.c
@@ -785,6 +785,7 @@ static struct usb_device_id rtl2832u_usb_table [] = {
{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_00A9)}, // 29
{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_00B3)}, // 30
+ { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_00D3)}, // 30
{ USB_DEVICE(USB_VID_AZUREWAVE_2, USB_PID_AZUREWAVE_3234) }, // 31
{ USB_DEVICE(USB_VID_AZUREWAVE_2, USB_PID_AZUREWAVE_3274) }, // 32
diff --git a/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.h b/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.h
index a6b5d77..3a09485 100644
--- a/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.h
+++ b/RTL2832-2.2.2_kernel-3.0.0/rtl2832u.h
@@ -47,6 +47,7 @@
#endif
#define USB_PID_TERRATEC_00A9 0x00A9
#define USB_PID_TERRATEC_00B3 0x00B3
+#define USB_PID_TERRATEC_00D3 0x00D3
#ifndef USB_VID_AZUREWAVE_2
#define USB_VID_AZUREWAVE_2 0x13D3


Once the file is edited and saved, from within the "dvb-git" folder. Execute the command


input: ./build
===Firmware===


This will begin building the firmware drivers (if all is as it should be - with the patch included). Watch the terminal output to ensure the af9035.c file is patched correctly, before going any further. If the version number or the name of the .patch file is wrong in the backports.txt file, it won't apply.
I haven't copied any firmware and I doubt linux-libre would have
loaded it. I think it works without any firmware file.
Didn't check if there is any firmware somehow embedded in the
source I compiled or it's simply shipped already on the usb stick.


To install the compiled patched firmware drivers, execute:
===Drivers===


input: sudo make install
[Ambosa's RTL2832U driver|https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/]
modified with the vendor and device Id.


It says GPL but I haven't researched the source, authorship attributions or changelog.


NOTE!: If your system uses compressed kernel modules, after running the "make install" command of the V4L-DVB installation process, you could end up with a mixture of new modules (*.ko) and their older compressed version (*.ko.gz) installed. If the system attempts to concurrently load both sets into memory, you are bound to run into modprobe insertion errors (eg. unknown symbol or unknown parameter). All conflicting *.ko.gz files must be removed. The following command line can help you locate/remove these conflicting files in all your installed kernels:
===Sample Kernel Output===


input: for file in `find /lib/modules -name "*.ko"`; do if [[ -e $file.gz ]]; then echo "$file.gz should be removed"; fi; done
# dmesg
[...]
[ 5.465403] USB Video Class driver (1.1.1)
[ 5.604042] usb 2-3: new high-speed USB device number 2 using ehci_hcd
[ 5.748596] usb 2-3: New USB device found, idVendor=0ccd, idProduct=00d3
[ 5.748599] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5.748602] usb 2-3: Product: RTL2838UHIDIR
[ 5.748603] usb 2-3: Manufacturer: Realtek
[ 5.748605] usb 2-3: SerialNumber: 00000001
[ 5.760898] IR NEC protocol handler initialized
[ 5.762107] IR RC5(x) protocol handler initialized
[ 5.763207] IR RC6 protocol handler initialized
[ 5.765032] Disabling lock debugging due to kernel taint
[ 5.765306] IR JVC protocol handler initialized
[ 5.766439] dvb-usb: found a 'USB DVB-T Device' in warm state.
[ 5.766446] dvb-usb: will pass the complete MPEG2 transport stream to the sof
tware demuxer.
[ 5.767470] IR Sony protocol handler initialized
[ 5.768708] IR MCE Keyboard/mouse protocol handler initialized
[ 5.768847] DVB: registering new adapter (USB DVB-T Device)
[ 5.770281] lirc_dev: IR Remote Control driver registered, major 252
[ 5.770635] IR LIRC bridge handler initialized
[ 5.783837] RTL2832U usb_init_bulk_setting : USB2.0 HIGH SPEED (480Mb/s)
[ 6.024032] usb 3-3: new low-speed USB device number 2 using ohci_hcd
[ 6.024058] RTL2832U check_tuner_type : E4000 tuner on board...
[...]


If you're happy to automate the removal proccess of any detected conflicting modules, run the following command at your own risk:
===Remote Control Support===


input: su
Untested.
input: for file in `find /lib/modules -name "*.ko"`; do if [[ -e $file.gz ]]; then rm "$file.gz"; fi; done


Once that's done, restart your computer. Once it reboots check the output of the "dmesg" command. "The Leadtek WinFast DTV Dongle Dual" should be recognised and initialised successfully. During testing, a final restart was required to get MythTV to use the tuner once it was setup in mythtv-setup.
==External Links==


Sample successful "dmesg" output is below:
* [http://linux.terratec.de/tv_en.html Terratec linux support page says unsupported yet]
* [http://knc1.de/d/produkte/digital_dvb_s2_twin.htm TV-Station DVB-S2 Twin]


[ 10.274829] WARNING: You are using an experimental version of the media stack.
[[Category: DVB-S2 PCI Cards]]
As the driver is backported to an older kernel, it doesn't offer
[[Category: DVB-T USB Devices]]
enough quality for its usage in production.
Use it with care.
Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
80f93c7b0f4599ffbdac8d964ecd1162b8b618b9 [media] media: st-rc: Add ST remote control driver
8ab1aa87f3f7381be195efcabf08dbc74626f25d [media] gpio-ir-recv: Include linux/of.h header
b91670a0e924078521a838b9e707e42012c5e76a [media] tvp7002: Include linux/of.h header
[ 10.389333] usb 8-5: dvb_usb_af9035: prechip_version=83 chip_version=01 chip_type=9135
[ 10.389716] usb 8-5: dvb_usb_v2: found a 'Leadtek WinFast DTV Dongle Dual' in warm state
[ 10.393908] usb 8-5: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[ 10.393970] DVB: registering new adapter (Leadtek WinFast DTV Dongle Dual)
[ 10.401092] i2c i2c-1: af9033: firmware version: LINK=255.255.255.255 OFDM=2.47.14.0
[ 10.401107] usb 8-5: DVB: registering adapter 0 frontend 0 (Afatech AF9033 (DVB-T))...
[ 10.404891] i2c i2c-1: tuner_it913x: ITE Tech IT913X successfully attached
[ 10.404902] usb 8-5: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[ 10.404963] DVB: registering new adapter (Leadtek WinFast DTV Dongle Dual)
[ 10.418007] i2c i2c-1: af9033: firmware version: LINK=255.255.255.255 OFDM=2.47.14.0
[ 10.418022] usb 8-5: DVB: registering adapter 1 frontend 0 (Afatech AF9033 (DVB-T))...
[ 10.418175] i2c i2c-1: tuner_it913x: ITE Tech IT913X successfully attached
[ 10.431106] Registered IR keymap rc-empty
[ 10.431259] input: Leadtek WinFast DTV Dongle Dual as /devices/pci0000:00/0000:00:13.2/usb8/8-5/rc/rc0/input6
[ 10.431391] rc0: Leadtek WinFast DTV Dongle Dual as /devices/pci0000:00/0000:00:13.2/usb8/8-5/rc/rc0
[ 10.431399] usb 8-5: dvb_usb_v2: schedule remote query interval to 500 msecs
[ 10.431406] usb 8-5: dvb_usb_v2: 'Leadtek WinFast DTV Dongle Dual' successfully initialized and connected
[ 10.431468] usbcore: registered new interface driver dvb_usb_af9035

Revision as of 14:58, 5 November 2013

A DVB-T USB device from Leadtek.


Vendor
Device/Model
Supported ID on
Interface
Hardware Firmware Comment / Pictures URL E
Leadtek WinFast DTV Dongle Gold Yes, in kernel since 2.6.28 0413:6029 USB2.0 Afatech AF9015, NXP/Philips TDA18271 dvb-usb-af9015.fw Leadtek gold.jpg [1] Jump to the place where you can edit this entry

Overview/Features

  • Supplied with a remote control.

Components Used

Identification

The USB ID is:

  • 0413:6a05

Driver Installation

By default the driver is not supported in the kernel and must be installed separately.

To install the driver you will need your kernel headers and other software requirements installed, as listed here

To install the firmware driver enter the following commands into a terminal:

input: su
input: # cd /lib/firmware/
input: # wget -O dvb-usb-af9035-02.fw http://palosaari.fi/linux/v4l-dvb/firmware/af9035/dvb-usb-af9035-02.fw_3735d499d945a6bb873a7f3ad5c701fa_12.13.15.0_6.20.15.0

Your TV tuner's demodulator and USB Bridge firmware driver is installed. The next step is to install the driver for the dual ITE Tech IT9135 tuners.

To install the tuner firmware driver, enter the following commands into a terminal:

input: # cd /lib/firmware/
input: # wget https://github.com/OpenELEC/dvb-firmware/raw/master/it9135/dvb-usb-it9135-01.fw

Your dual ITE Tech IT9135 tuners are installed now! Next, we need to obtain, patch and build the latest V4L-DVB source code to recognise the Leadtek WinFast DTV Dongle Dual. To do this, we adapt the ["Basic" build Approach] following the instructions in the "README.patches" file that we obtain along with the rest of the V4L source code, via git.

First, we obtain the source code unpatched.

input: mkdir dvb-git input: cd dvb-git input: git clone git://linuxtv.org/media_build.git

Then we obtain the patch by Antti Palosaari to get the device recognised. View the patch commit and paste the patch contents into a newly created "winfast-dual.patch" file, in the "backports" directory.

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c index 1ea17dc..73ce27b 100644 --- a/drivers/media/usb/dvb-usb-v2/af9035.c +++ b/drivers/media/usb/dvb-usb-v2/af9035.c @@ -1511,6 +1511,8 @@ static const struct usb_device_id af9035_id_table[] = {

	/* XXX: that same ID [0ccd:0099] is used by af9015 driver too */
	{ DVB_USB_DEVICE(USB_VID_TERRATEC, 0x0099,
		&af9035_props, "TerraTec Cinergy T Stick Dual RC (rev. 2)", NULL) },

+ { DVB_USB_DEVICE(USB_VID_LEADTEK, 0x6a05, + &af9035_props, "Leadtek WinFast DTV Dongle Dual", NULL) },

	{ }
};
MODULE_DEVICE_TABLE(usb, af9035_id_table);


Save the file.

We need to also edit "backports.txt" as instructed by the "README.patches" file, so that the build script knows to apply the patch.

The backports.txt file should be modified to included an entry, like so:

[YOUR KERNEL VERSION GOES HERE - FIND IT WITH THE "uname -r" COMMAND] add winfast_dual.patch # Winfast Dual Dongle patch

Once the file is edited and saved, from within the "dvb-git" folder. Execute the command

input: ./build

This will begin building the firmware drivers (if all is as it should be - with the patch included). Watch the terminal output to ensure the af9035.c file is patched correctly, before going any further. If the version number or the name of the .patch file is wrong in the backports.txt file, it won't apply.

To install the compiled patched firmware drivers, execute:

input: sudo make install


NOTE!: If your system uses compressed kernel modules, after running the "make install" command of the V4L-DVB installation process, you could end up with a mixture of new modules (*.ko) and their older compressed version (*.ko.gz) installed. If the system attempts to concurrently load both sets into memory, you are bound to run into modprobe insertion errors (eg. unknown symbol or unknown parameter). All conflicting *.ko.gz files must be removed. The following command line can help you locate/remove these conflicting files in all your installed kernels:

input: for file in `find /lib/modules -name "*.ko"`; do if -e $file.gz ; then echo "$file.gz should be removed"; fi; done

If you're happy to automate the removal proccess of any detected conflicting modules, run the following command at your own risk:

input: su input: for file in `find /lib/modules -name "*.ko"`; do if -e $file.gz ; then rm "$file.gz"; fi; done

Once that's done, restart your computer. Once it reboots check the output of the "dmesg" command. "The Leadtek WinFast DTV Dongle Dual" should be recognised and initialised successfully. During testing, a final restart was required to get MythTV to use the tuner once it was setup in mythtv-setup.

Sample successful "dmesg" output is below:

[ 10.274829] WARNING: You are using an experimental version of the media stack. As the driver is backported to an older kernel, it doesn't offer enough quality for its usage in production. Use it with care. Latest git patches (needed if you report a bug to linux-media@vger.kernel.org): 80f93c7b0f4599ffbdac8d964ecd1162b8b618b9 [media] media: st-rc: Add ST remote control driver 8ab1aa87f3f7381be195efcabf08dbc74626f25d [media] gpio-ir-recv: Include linux/of.h header b91670a0e924078521a838b9e707e42012c5e76a [media] tvp7002: Include linux/of.h header [ 10.389333] usb 8-5: dvb_usb_af9035: prechip_version=83 chip_version=01 chip_type=9135 [ 10.389716] usb 8-5: dvb_usb_v2: found a 'Leadtek WinFast DTV Dongle Dual' in warm state [ 10.393908] usb 8-5: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer [ 10.393970] DVB: registering new adapter (Leadtek WinFast DTV Dongle Dual) [ 10.401092] i2c i2c-1: af9033: firmware version: LINK=255.255.255.255 OFDM=2.47.14.0 [ 10.401107] usb 8-5: DVB: registering adapter 0 frontend 0 (Afatech AF9033 (DVB-T))... [ 10.404891] i2c i2c-1: tuner_it913x: ITE Tech IT913X successfully attached [ 10.404902] usb 8-5: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer [ 10.404963] DVB: registering new adapter (Leadtek WinFast DTV Dongle Dual) [ 10.418007] i2c i2c-1: af9033: firmware version: LINK=255.255.255.255 OFDM=2.47.14.0 [ 10.418022] usb 8-5: DVB: registering adapter 1 frontend 0 (Afatech AF9033 (DVB-T))... [ 10.418175] i2c i2c-1: tuner_it913x: ITE Tech IT913X successfully attached [ 10.431106] Registered IR keymap rc-empty [ 10.431259] input: Leadtek WinFast DTV Dongle Dual as /devices/pci0000:00/0000:00:13.2/usb8/8-5/rc/rc0/input6 [ 10.431391] rc0: Leadtek WinFast DTV Dongle Dual as /devices/pci0000:00/0000:00:13.2/usb8/8-5/rc/rc0 [ 10.431399] usb 8-5: dvb_usb_v2: schedule remote query interval to 500 msecs [ 10.431406] usb 8-5: dvb_usb_v2: 'Leadtek WinFast DTV Dongle Dual' successfully initialized and connected [ 10.431468] usbcore: registered new interface driver dvb_usb_af9035