^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Idea behind the dvb-usb-framework
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) =================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #) This documentation is outdated. Please check at the DVB wiki
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) at https://linuxtv.org/wiki for more updated info.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #) **deprecated:** Newer DVB USB drivers should use the dvb-usb-v2 framework.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) In March 2005 I got the new Twinhan USB2.0 DVB-T device. They provided specs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) and a firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Quite keen I wanted to put the driver (with some quirks of course) into dibusb.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) After reading some specs and doing some USB snooping, it realized, that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) dibusb-driver would be a complete mess afterwards. So I decided to do it in a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) different way: With the help of a dvb-usb-framework.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) The framework provides generic functions (mostly kernel API calls), such as:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) - Transport Stream URB handling in conjunction with dvb-demux-feed-control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) (bulk and isoc are supported)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) - registering the device for the DVB-API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - registering an I2C-adapter if applicable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - remote-control/input-device handling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - firmware requesting and loading (currently just for the Cypress USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) controllers)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) - other functions/methods which can be shared by several drivers (such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) functions for bulk-control-commands)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - TODO: a I2C-chunker. It creates device-specific chunks of register-accesses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) depending on length of a register and the number of values that can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) multi-written and multi-read.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) The source code of the particular DVB USB devices does just the communication
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) with the device via the bus. The connection between the DVB-API-functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) is done via callbacks, assigned in a static device-description (struct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) dvb_usb_device) each device-driver has to have.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) For an example have a look in drivers/media/usb/dvb-usb/vp7045*.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) Objective is to migrate all the usb-devices (dibusb, cinergyT2, maybe the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) ttusb; flexcop-usb already benefits from the generic flexcop-device) to use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) the dvb-usb-lib.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) TODO: dynamic enabling and disabling of the pid-filter in regard to number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) feeds requested.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) Supported devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) -----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) See the LinuxTV DVB Wiki at https://linuxtv.org for a complete list of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) cards/drivers/firmwares:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) https://linuxtv.org/wiki/index.php/DVB_USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 0. History & News:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 2005-06-30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) - added support for WideView WT-220U (Thanks to Steve Chang)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 2005-05-30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) - added basic isochronous support to the dvb-usb-framework
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) - added support for Conexant Hybrid reference design and Nebula
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) DigiTV USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) 2005-04-17
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) - all dibusb devices ported to make use of the dvb-usb-framework
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 2005-04-02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) - re-enabled and improved remote control code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 2005-03-31
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) - ported the Yakumo/Hama/Typhoon DVB-T USB2.0 device to dvb-usb.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) 2005-03-30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) - first commit of the dvb-usb-module based on the dibusb-source.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) First device is a new driver for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) TwinhanDTV Alpha / MagicBox II USB2.0-only DVB-T device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) - (change from dvb-dibusb to dvb-usb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) 2005-03-28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) - added support for the AVerMedia AverTV DVB-T USB2.0 device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) (Thanks to Glen Harris and Jiun-Kuei Jung, AVerMedia)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) 2005-03-14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) - added support for the Typhoon/Yakumo/HAMA DVB-T mobile USB2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) 2005-02-11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) - added support for the KWorld/ADSTech Instant DVB-T USB2.0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) Thanks a lot to Joachim von Caron
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 2005-02-02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) - added support for the Hauppauge Win-TV Nova-T USB2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 2005-01-31
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) - distorted streaming is gone for USB1.1 devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 2005-01-13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) - moved the mirrored pid_filter_table back to dvb-dibusb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) first almost working version for HanfTek UMT-010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) found out, that Yakumo/HAMA/Typhoon are predecessors of the HanfTek UMT-010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 2005-01-10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) - refactoring completed, now everything is very delightful
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) - tuner quirks for some weird devices (Artec T1 AN2235 device has sometimes a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) Panasonic Tuner assembled). Tunerprobing implemented.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) Thanks a lot to Gunnar Wittich.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 2004-12-29
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) - after several days of struggling around bug of no returning URBs fixed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 2004-12-26
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) - refactored the dibusb-driver, split into separate files
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) - i2c-probing enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 2004-12-06
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) - possibility for demod i2c-address probing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) - new usb IDs (Compro, Artec)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 2004-11-23
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) - merged changes from DiB3000MC_ver2.1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) - revised the debugging
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) - possibility to deliver the complete TS for USB2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 2004-11-21
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) - first working version of the dib3000mc/p frontend driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 2004-11-12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) - added additional remote control keys. Thanks to Uwe Hanke.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 2004-11-07
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) - added remote control support. Thanks to David Matthews.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 2004-11-05
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) - added support for a new devices (Grandtec/Avermedia/Artec)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) - merged my changes (for dib3000mb/dibusb) to the FE_REFACTORING, because it became HEAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) - moved transfer control (pid filter, fifo control) from usb driver to frontend, it seems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) better settled there (added xfer_ops-struct)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) - created a common files for frontends (mc/p/mb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 2004-09-28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) - added support for a new device (Unknown, vendor ID is Hyper-Paltek)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 2004-09-20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) - added support for a new device (Compro DVB-U2000), thanks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) to Amaury Demol for reporting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) - changed usb TS transfer method (several urbs, stopping transfer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) before setting a new pid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 2004-09-13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) - added support for a new device (Artec T1 USB TVBOX), thanks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) to Christian Motschke for reporting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 2004-09-05
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) - released the dibusb device and dib3000mb-frontend driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) (old news for vp7041.c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 2004-07-15
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) - found out, by accident, that the device has a TUA6010XS for PLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 2004-07-12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) - figured out, that the driver should also work with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) CTS Portable (Chinese Television System)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 2004-07-08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) - firmware-extraction-2.422-problem solved, driver is now working
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) properly with firmware extracted from 2.422
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) - #if for 2.6.4 (dvb), compile issue
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) - changed firmware handling, see vp7041.txt sec 1.1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 2004-07-02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) - some tuner modifications, v0.1, cleanups, first public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 2004-06-28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) - now using the dvb_dmx_swfilter_packets, everything runs fine now
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 2004-06-27
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) - able to watch and switching channels (pre-alpha)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) - no section filtering yet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 2004-06-06
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) - first TS received, but kernel oops :/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 2004-05-14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) - firmware loader is working
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 2004-05-11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) - start writing the driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) How to use?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) Firmware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) ~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) Most of the USB drivers need to download a firmware to the device before start
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) working.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) Have a look at the Wikipage for the DVB-USB-drivers to find out, which firmware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) you need for your device:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) https://linuxtv.org/wiki/index.php/DVB_USB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) Compiling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) ~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) Since the driver is in the linux kernel, activating the driver in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) your favorite config-environment should sufficient. I recommend
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) to compile the driver as module. Hotplug does the rest.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) If you use dvb-kernel enter the build-2.6 directory run 'make' and 'insmod.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) load' afterwards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) Loading the drivers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) ~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) Hotplug is able to load the driver, when it is needed (because you plugged
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) in the device).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) If you want to enable debug output, you have to load the driver manually and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) from within the dvb-kernel cvs repository.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) first have a look, which debug level are available:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) .. code-block:: none
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) # modinfo dvb-usb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) # modinfo dvb-usb-vp7045
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) .. code-block:: none
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) modprobe dvb-usb debug=<level>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) modprobe dvb-usb-vp7045 debug=<level>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) should do the trick.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) When the driver is loaded successfully, the firmware file was in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) the right place and the device is connected, the "Power"-LED should be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) turned on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) At this point you should be able to start a dvb-capable application. I'm use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) (t|s)zap, mplayer and dvbscan to test the basics. VDR-xine provides the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) long-term test scenario.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) Known problems and bugs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) -----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) - Don't remove the USB device while running an DVB application, your system
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) will go crazy or die most likely.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) Adding support for devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) ~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) TODO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) USB1.1 Bandwidth limitation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) ~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) A lot of the currently supported devices are USB1.1 and thus they have a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) maximum bandwidth of about 5-6 MBit/s when connected to a USB2.0 hub.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) This is not enough for receiving the complete transport stream of a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) DVB-T channel (which is about 16 MBit/s). Normally this is not a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) problem, if you only want to watch TV (this does not apply for HDTV),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) but watching a channel while recording another channel on the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) frequency simply does not work very well. This applies to all USB1.1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) DVB-T devices, not just the dvb-usb-devices)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) The bug, where the TS is distorted by a heavy usage of the device is gone
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) definitely. All dvb-usb-devices I was using (Twinhan, Kworld, DiBcom) are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) working like charm now with VDR. Sometimes I even was able to record a channel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) and watch another one.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) Comments
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) ~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) Patches, comments and suggestions are very very welcome.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 3. Acknowledgements
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) -------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) Amaury Demol (Amaury.Demol@parrot.com) and Francois Kanounnikoff from DiBcom for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) providing specs, code and help, on which the dvb-dibusb, dib3000mb and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) dib3000mc are based.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) David Matthews for identifying a new device type (Artec T1 with AN2235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) and for extending dibusb with remote control event handling. Thank you.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) Alex Woods for frequently answering question about usb and dvb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) stuff, a big thank you.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) Bernd Wagner for helping with huge bug reports and discussions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) Gunnar Wittich and Joachim von Caron for their trust for providing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) root-shells on their machines to implement support for new devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) Allan Third and Michael Hutchinson for their help to write the Nebula
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) digitv-driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) Glen Harris for bringing up, that there is a new dibusb-device and Jiun-Kuei
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) Jung from AVerMedia who kindly provided a special firmware to get the device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) up and running in Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) Jennifer Chen, Jeff and Jack from Twinhan for kindly supporting by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) writing the vp7045-driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) Steve Chang from WideView for providing information for new devices and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) firmware files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) Michael Paxton for submitting remote control keymaps.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) Some guys on the linux-dvb mailing list for encouraging me.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) Peter Schildmann >peter.schildmann-nospam-at-web.de< for his
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) user-level firmware loader, which saves a lot of time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) (when writing the vp7041 driver)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) Ulf Hermenau for helping me out with traditional chinese.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) André Smoktun and Christian Frömmel for supporting me with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) hardware and listening to my problems very patiently.