LinuxTVWiki:Sandbox: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
A [[DVB-T]] [[DVB-T USB Devices|USB device]] from [[Leadtek]].
A [[DVB-T]] [[DVB-T USB Devices|USB device]] from [[Leadtek]].

{{Device_List_Medium_Detail/Header
| content =
{{USB_Device_Data
|renderwith=Device_List_Medium_Detail/Row
|selatt1=did
|selval1=leadtek-dtv-dual
}}
}}


==Overview/Features==
==Overview/Features==


* Supplied with a remote control.
* Supplied with a remote control and antenna.


===Components Used===
===Components used===
* [[Afatech AF9035]] demodulator and USB bridge
* [[Afatech AF9035]] demodulator and USB bridge
* Dual ITE Tech IT9135 tuners
* Dual ITE Tech IT9135 tuners
Line 24: Line 15:
==Driver Installation==
==Driver Installation==

By default the driver is not supported in the kernel and must be installed separately.
===Afatech AF9035 demodulator and USB bridge===
By default the firmware driver for the Afatech AF9035 demodulator and USB bridge 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]
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]
Line 30: Line 23:
To install the firmware driver enter the following commands into a terminal:
To install the firmware driver enter the following commands into a terminal:


su
$ su

# cd /lib/firmware/
# cd /lib/firmware/
# wget -O dvb-usb-af9035-02.fw http://palosaari.fi/linux/v4l-dvb/firmware/af9035/dvb-usbaf9035-02.fw_3735d499d945a6bb873a7f3ad5c701fa_12.13.15.0_6.20.15.0
# wget -O dvb-usb-af9035-02.fw http://palosaari.fi/linux/v4l-dvb/firmware/af9035/dvb-usbaf9035-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.
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.

===Dual ITE Tech IT9135 tuners===


To install the tuner firmware driver, enter the following commands into a terminal:
To install the tuner firmware driver, enter the following commands into a terminal:
Line 42: Line 36:
# wget https://github.com/OpenELEC/dvb-firmware/raw/master/it9135/dvb-usb-it9135-01.fw
# wget https://github.com/OpenELEC/dvb-firmware/raw/master/it9135/dvb-usb-it9135-01.fw


Your dual ITE Tech IT9135 tuners are installed now!
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.

===Patching V4L-DVB to support the Leadtek WinFast DTV Dongle Dual===
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 [http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers#Retrieving_and_Building.2FCompiling_the_Latest_V4L-DVB_Source_Code "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.
First, we obtain the source code unpatched.


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


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.
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, inside the "backports" directory, as below.


input: diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
index 1ea17dc..73ce27b 100644
index 1ea17dc..73ce27b 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/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[] = {
@@ -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 */
/* XXX: that same ID [0ccd:0099] is used by af9015 driver too */
{ DVB_USB_DEVICE(USB_VID_TERRATEC, 0x0099,
{ DVB_USB_DEVICE(USB_VID_TERRATEC, 0x0099,
&af9035_props, "TerraTec Cinergy T Stick Dual RC (rev. 2)", NULL) },
&af9035_props, "TerraTec Cinergy T Stick Dual RC (rev. 2)", NULL) },
+ { DVB_USB_DEVICE(USB_VID_LEADTEK, 0x6a05,
+ { DVB_USB_DEVICE(USB_VID_LEADTEK, 0x6a05,
+ &af9035_props, "Leadtek WinFast DTV Dongle Dual", NULL) },
+ &af9035_props, "Leadtek WinFast DTV Dongle Dual", NULL) },
{ }
{ }
};
};
MODULE_DEVICE_TABLE(usb, af9035_id_table);
MODULE_DEVICE_TABLE(usb, af9035_id_table);



Save the file.
Save the file.
Line 73: Line 69:
The backports.txt file should be modified to included an entry, like so:
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]
[YOUR KERNEL VERSION GOES HERE - FIND IT WITH THE "uname -r" COMMAND]
add winfast_dual.patch # Winfast Dual Dongle patch
add winfast_dual.patch # Winfast Dual Dongle patch


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


./build
$ ./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.
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.
Line 84: Line 80:
To install the compiled patched firmware drivers, execute:
To install the compiled patched firmware drivers, execute:


sudo make install
$ 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:


$ for file in `find /lib/modules -name "*.ko"`; do if [[ -e $file.gz ]]; then echo "$file.gz should be removed"; fi; done
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:
If you're happy to automate the removal proccess of any detected conflicting modules, run the following command at your own risk:


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


}}

===Verifying the driver installation===
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.
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:
Sample successful "dmesg" output is below:


input: [ 10.274829] WARNING: You are using an experimental version of the media stack.
[ 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
As the driver is backported to an older kernel, it doesn't offer
enough quality for its usage in production.
enough quality for its usage in production.
Use it with care.
Use it with care.
Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
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
80f93c7b0f4599ffbdac8d964ecd1162b8b618b9 [media] media: st-rc: Add ST remote control driver
8ab1aa87f3f7381be195efcabf08dbc74626f25d [media] gpio-ir-recv: Include linux/of.h header
8ab1aa87f3f7381be195efcabf08dbc74626f25d [media] gpio-ir-recv: Include linux/of.h header
b91670a0e924078521a838b9e707e42012c5e76a [media] tvp7002: 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.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.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.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.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.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.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.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.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.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.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.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.418175] i2c i2c-1: tuner_it913x: ITE Tech IT913X successfully attached
[ 10.431106] Registered IR keymap rc-empty
[ 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.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.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.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.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
[ 10.431468] usbcore: registered new interface driver dvb_usb_af9035

==External Links==

[http://www.leadtek.com/eng/product/6/622/intro.aspx Product page for the Leadtek WinFast DTV Dongle Dual]

Latest revision as of 04:08, 6 November 2013

A DVB-T USB device from Leadtek.

Overview/Features

  • Supplied with a remote control and antenna.

Components used

Identification

The USB ID is:

  • 0413:6a05

Driver Installation

Afatech AF9035 demodulator and USB bridge

By default the firmware driver for the Afatech AF9035 demodulator and USB bridge 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:

$ su
# cd /lib/firmware/
# wget -O dvb-usb-af9035-02.fw http://palosaari.fi/linux/v4l-dvb/firmware/af9035/dvb-usbaf9035-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.

Dual ITE Tech IT9135 tuners

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

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

Your dual ITE Tech IT9135 tuners are installed now!

Patching V4L-DVB to support the Leadtek WinFast DTV Dongle Dual

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.

$ mkdir dvb-git
$ cd dvb-git
$ 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, inside the "backports" directory, as below.

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

$ ./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:

$ 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:
$ 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:

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

Verifying the driver installation

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

External Links

Product page for the Leadtek WinFast DTV Dongle Dual