# How-to Lifeview LV5TDLX "Deluxe" # 2010/Mar/08 @ Zdenek Styblik < stybla /at\ nospam.turnovfree \dot/ net > # http://www.turnovfree.net/~stybla/linux/v4l-dvb/lv5tdlx/ # # Changelog: # 2011/Jan/21 @ Zdenek Styblik # fix - fixed link to wiki # 2011/Jan/16 @ Zdenek Styblik # moved - moved to wiki.zeratul.org # 2010/Nov/15 @ Zdenek Styblik # updat - Genius TVGo DVB-T03 info # 2010/Nov/12 @ Realtek # added - new version; version is v2.0.1 now # 2010/Nov/12 @ Zdenek Styblik # added - outdoor antenna results # added - LV5TDLX has new HW revision # added - patch from Pavel Moravec for v1.4.2 and kernel panics # added - Genius TVGo DVB-T03 works with v1.4.2, reported by Petr Jakubec # 2010/Oct/27 @ Zdenek Styblik # added - patch for DigitalNow Quad DVB-T Receiver from Alan Forbes # 2010/Jul/13 @ Zdenek Styblik # added - patch for RTL2838, Terratec Cinergy T Black # 2010/Apr/18 @ Zdenek Styblik # added - tips section # edited - foreword # 2010/Mar/21 @ Zdenek Styblik # added - merging with different branch # 2010/Mar/11 @ Zdenek Styblik # fixed - RTL2831 driver instead of RTL2832U # ### NOTICE ### AS OF 16th January 2011 THIS README HAS BEEN MOVED TO: http://wiki.zeratul.org/doku.php?id=linux:v4l:realtek:start AND WILL BE MAINTAINED THERE! ### NOTICE ### ~~~! NOTE !~~~ Please, note I'm no developer of presented driver, but I've just put together this small and humble how-to. Developer behind driver is, and always has been, Realtek or somebody close to it. I've tried to contact them, but unsuccessfully. So was contacting Dexatek. No corporation want to talk with me :^-( If you want, I can help you with English translation/correction and you can try to mail them. I should be glad and happy for being given credit, but I'm not. Credit belongs to other people and should be given to them. Ok, I'm willing to take credit for this how-to :-) I'm happy though this how-to is useful to some of you. I thank you all for your responses. ~~~! NOTE !~~~ This readme is about how-to make LV5TDLX and possibly other DVB-T USB sticks based on RTL2832U chip working. There is not much to it, although - we will see later. Let me say thanks to member of Croatian Ubuntu community which goes under nickname 'mrle' for providing me with newer version of drivers which speeded up the process. I've also used couple forums to gather information and links can be found at the end of this document. I also thank to people whom contacted me regarding this chipset. I'm somewhat sorry I couldn't be more help. However, all that seemed to be somewhat useful, I put here. I don't know why RTL doesn't provide drivers straight or why they aren't in v4l/v4l-dvb. Yet since I read about kernel development from time to time, I can imagine why. I'm not going to write down any theories here. Anyway, it's probably good idea to contact Realtek from time to time about newer driver version. What I've heard so far, their approach is great and they're trying to help, which I've been glad to hear. (note: I've e-mailed RTL couple times without reply so far :-\ ; note2: still no reply and same thing with Dexatek) Let's do it. First of all, forget all perpetuated, well copy-pasted, how-to's around the internet. These which are built on driver version 1.1 do not work. You get devices /dev/dvb/adapterX created, yeah, but that's all. They are blind and they do not work. Version 1.4.2 fixes it. Note: following part is not true anymore! --- To this day, I haven't tested tuners with big antenna, only with small antenna that comes in the package. Distance from DVB-T tower is approx 14km, thus signal quality was - well, low. It's hard to say if it's hw/sw problem or insufficient antenna. --- So, we've finally put big antenna on the roof and hooked-up LV5TDLXs to it. And it just works. Tower is 20-30km away. Picture is pristine and server seems to be stable so far. However, signal strength reporting(tzap) doesn't "work". It works alright, but the output [of tzap] is non-sense. Reported signal is low and what not. ## Hardware info ### rev. #1 * Demodulator RTL2832U * Tuner TUA9001 ### rev. #2 * Realtek RTL2832U * Fitipower FC0012 & Afatech AF9015 * MaxLinear MXL5007T dual tuner note: However, this might actually be LifeView LV52T which has dual HD turner note: source of everything regarding rev. #2 is: http://www.spinics.net/lists/linux-media/msg24890.html ## Device identification in GNU/Linux ### rev. #1 --- # dmesg usb 1-1.1: new high speed USB device using ehci_hcd and address 4 usb 1-1.1: New USB device found, idVendor=1f4d, idProduct=b803 usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1.1: Product: RTL2838UHIDIR usb 1-1.1: Manufacturer: Realtek usb 1-1.1: SerialNumber: 00000001 usb 1-1.1: configuration #1 chosen from 1 choice dvb-usb: found a 'USB DVB-T Device' in warm state. dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. DVB: registering new adapter (USB DVB-T Device) DVB: registering adapter 0 frontend 0 (Realtek RTL2832 DVB-T RTL2836 DTMB)... dvb-usb: USB DVB-T Device successfully initialized and connected. dvb-usb: found a 'USB DVB-T Device' in warm state. dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. DVB: registering new adapter (USB DVB-T Device) DVB: registering adapter 1 frontend 0 (Realtek RTL2832 DVB-T RTL2836 DTMB)... dvb-usb: USB DVB-T Device successfully initialized and connected. usbcore: registered new interface driver dvb_usb_rtl2832u --- --- # lsusb Bus 001 Device 007: ID 1f4d:b803 --- --- # lsmod | grep dvb dvb_usb_rtl2832u 147072 0 dvb_usb 21388 1 dvb_usb_rtl2832u dvb_core 99732 1 dvb_usb --- ### rev. #2 --- # lsusb: Bus 002 Device 002: ID 1f4d:b803 G-Tek Electronics Group Lifeview LV5TDLX DVB-T [RTL2832U] Bus 001 Device 002: ID 15a4:9016 Afatech Technologies, Inc. AF9015 DVB-T USB2.0 stick --- ## One card or cards of the very same brand 1] unpack '091207_RTL2832U_LINUX_Ver1.4.2.rar' eg. % rar x 091204_RTL2832U_Linux_Ver1.4.2.rar; note: 'linux_install_package_091207' is original file, yet the filename seem a bit - non-saying. % cd linux_install_package_091207; and eg. % tar -vjxf v4l_rtl2832_install.tar.bz2; 2] % cd v4l-dvb-e0cd9a337600; 3] 3-a] I suggest to: % make distclean && make menuconfig && make \ && make install; during % make menuconfig; choose: --- Multimedia support -> DVB/ATSC adapters -> Support for various USB DVB devices Realtek RTL2832U DVB-T USB2.0 support --- 3-b] this should be also sufficient: % make && make install; 4] Reboot, although this must be necessary. You can try to % modprobe; modules manually. 5] And enjoy. To my knowledge there is no extra firmware needed. --- % lsmod | grep dvb dvb_usb_rtl2832u 147072 0 dvb_usb 21388 1 dvb_usb_rtl2832u dvb_core 99732 1 dvb_usb --- And there should be two adapters per stick in /dev/dvb/ The first one (adapter0) is DVB-T tuner and the second one is (probably) DAB (radio) tuner. ## Many cards, different brands => merge with v4l-dvb You have to extract modified or specific RTL files and copy them into your favourite 'branch' of v4l-dvb. You can use script like this: --- SNIP --- for FILE in `find ../linux_install_package_091207/v4l-dvb-e0cd9a337600/ \ -printf "%h/%f\t%t\n" | grep Dec | awk '{ print $1 }'`; do FILENEW=`echo ${FILE} | \ sed 's/..\/linux_install_package_091207\/v4l-dvb-e0cd9a337600\///g'` echo $FILENEW cp -i ${FILE} ./v4l-dvb-export/${FILENEW}; done --- SNIP --- It has its limits. You could use % diff; and such - whatever works. May be even mercurial itself it could be used, but I'm not familiar with it. I've found only two differences - Kconfig and Makefile. The rest is same as in the beginning. Pick the cards, compile stuff, works :) ## Not tested/ToDo * remote control [won't test, no need] * field test with proper antenna [will test, will be updated] ## Tips ### Newer kernels D.Palamarchuk -[A|T]- seznam.cz suggested it's required to modify 'v4l/dvbdev.c' in order to get RTL2832U driver working with newer kernels (in his case, 2.6.31). -- SNIP -- #if LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 31) dvb_class->nodename = dvb_nodename; #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 31) dvb_class->devnode = dvb_devnode; #endif -- SNIP -- ### Other DVB-T sticks fermio.kll -[A|T]- hotmail.com suggested it's possible to use this driver with other [unknown] DVD-T sticks. All is required is to change identificator in code "1f4d:b803 in my case is af4d:a803". Kernel version is unknown. This has been confirmed by cqhl12 -[A|T]- gmail.com as it seems this driver somewhat supports even MSI DIGIVOX Micro HD. However, after using % w_scan -X; kernel Opps! appears. As you can see, kernel version is 2.6.23. -- SNIP -- [ 2224.099037] BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 2224.099049] printing eip: [ 2224.099052] 00000000 [ 2224.099055] *pde = 00000000 [ 2224.099062] Oops: 0000 [#1] [ 2224.099065] SMP [ 2224.099070] Modules linked in: cx18 ivtv pvrusb2 gspca_m5602 adv7175 wm8739 gspca_t613 bt856 cx25840 adv7170 gspca_sonixb gspca_sq905c gspca_spca508 tea6415c gspca_sunplus ov7670 pwc uvcvideo gspca_jeilinj gspca_sq905 gspca_sn9c20x gspca_spca561 radio_maestro tuner gspca_stk014 dvb_usb_umt_010 dvb_usb_nova_t_usb2 et61x251 tda9875 gspca_etoms radio_gemtek_pci vpx3220 cpia_usb saa6588 vp27smpx konicawc zc0301 upd64031a gspca_spca505 tvaudio radio_mr800 bt819 saa7110 gspca_conex gspca_mars gspca_finepix quickcam_messenger cs53l32a dvb_usb_dibusb_mc tvp5150 cx2341x gspca_stv0680 usbvision m52790 gspca_spca506 gspca_spca501gspca_ov534 w9968cf saa7185 ks0127 cpia2 zr36067 dvb_usb_dibusb_mb hdpvr gspca_sonixj gspca_ov519 saa6752hs cs5345 cafe_ccic saa5249 upd64083 ultracam mt9v011 radio_maxiradio gspca_spca500 gspca_pac7311 saa7115 dsbr100 au8522 cpia_pp wm8775 dvb_usb_a800 tda9840 gspca_stv06xx tlv320aic23b saa717x ovcamchip ibmcam radio_usb_si470x saa7127 msp3400 sn9c102 saa7191 bt866 gspca_tv8532 tea6420 gspca_pac7302 gspca_zc3xx gspca_pac207 gspca_vc032x radio_sf16fmr2 gspca_mr97310a gspca_gl860 saa5246a tda7432 dvb_usb_ec168 budget_patch ov511 dvb_usb_dw2102 stradis snd_tea575x_tuner se401 dvb_usb_anysee dvb_usb_rtl2832u bw_qcam stv680 b2c2_flexcop_usb dvb_usb_cinergyT2 dvb_usb_au6610 dvb_usb_m920x dvb_usb_dib0700 dvb_usb_vp702x v4l2_common stkwebcam dvb_usb_cxusb dvb_usb_opera c_qcam radio_terratec dvb_usb_dtv5100 dvb_usb_vp7045 vicam dvb_usb_gl861 dvb_usb_dtt200u dvb_usb_digitv dvb_usb_friio budget usbvideo budget_ci dvb_usb_gp8psk gspca_main dvb_usb_ce6230 b2c2_flexcop_pci meye cpia dvb_usb_af9005 dvb_usb_af9015 dvb_usb_ttusb2 dvb_usb_dibusb_common w9966 lgdt3305 budget_core stv0299 pluto2 dib7000m dib7000p tcm825x dm1105 b2c2_flexcop zr36050 lgdt330x smsusb zr36016 or51132 videodev ttusb_dec zr36060 smsdvb dib3000mc dib8000 tuner_simple dvb_usb dvb_ttusb_budget ir_kbd_i2c or51211 stb0899 stv0288 sp887x s5h1409 mt2266 ds3000 tuner_types tda10023 tua6100 mt20xx btcx_risc tda18271 cx22702 videocodec tda10086 tea5767 mt312 s921 dvb_dummy_fe tda8261 qt1010 af9013 cx88_vp3054_i2c tda1004x nxt200x ves1820bcm3510 isl6423 zl10036 mxl5007t drx397xD sp8870 cx24113 tda8290 l64781 ir_common cx24110 tda827x dabusb saa7146 ttpci_eepromstb6100 tda10048 tda826x ttusbdecfe s5h1411 lgdt3304 ves1x93 stv0297 dib3000mb tda8083 zl10039 lnbp21 dibx000_common snd_bt87x tda9887 isl6421 mt2060 zl10353 tda10021 dvb_usb_af9005_remote cx22700 lgs8gxx s5h1420 mt352 v4l1_compat dvb_core isl6405 xc5000 ec100 tea5761 stv6110x mxl5005s dvb_pll stb6000 v4l2_int_device mt2131 tveeprom stv0900 lgs8gl5 stv6110 mc44s803 cx24116 cx24123 stv090x dib0070 si21xx tuner_xc2028 nxt6000 itd1000 smsmdtv sony_laptop video_buf i2c_algo_bit nls_cp437 ipv6 af_packetlm85 hwmon_vid ndiswrapper kqemu vboxdrv snd_seq_oss parport_pc snd_seq_midi_event snd_seq_dummy snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss ppdev osst 8250_pnp nvidia(P) snd_intel8x0 r8169 lp snd_ac97_codec ac97_bus 8250 parport cp2101 usbserialloop snd_pcm snd_timer serial_core snd soundcore snd_page_alloc iTCO_wdt iTCO_vendor_support fuse capability commoncap tsdev floppy st sg binfmt_misc raid456 async_xor async_memcpy async_tx xor raid1 raid0 multipath linear md_mod pata_platform pata_pcmcia pcmcia pcmcia_core pata_isapnp sata_vsc sata_via sata_uli sata_sx4 sata_svw sata_sis sata_sil24 sata_qstor sata_promise sata_nv sata_mv sata_inic162x pdc_adma pata_via pata_triflex pata_sl82c105 pata_sis pata_sil680 pata_serverworks pata_sc1200 pata_rz1000 pata_radisys pata_pdc202xx_old pata_pdc2027x pata_opti pata_optidma pata_oldpiix pata_ns87410 pata_netcell pata_mpiix pata_marvell pata_jmicron pata_it821x pata_it8213 pata_hpt3x3 pata_hpt3x2n pata_hpt37x pata_hpt366 pata_efar pata_cs5535 pata_cs5530 pata_cs5520 pata_cypress pata_cmd64x pata_cmd640 pata_atiixp pata_artop pata_amd pata_ali scsi_wait_scan ahci sr_mod cdrom sd_mod shpchp pci_hotplug sata_sil i2c_i801 i2c_core ata_piix ata_generic libata aic7xxx scsi_transport_spi scsi_mod usbhid hid ff_memless ohci_hcd uhci_hcd ehci_hcd usbcore [ 2224.099524] CPU: 0 [ 2224.099526] EIP: 0060:[<00000000>] Tainted: P VLI [ 2224.099527] EFLAGS: 00010282 (2.6.23.9-1 #1) [ 2224.099606] EIP is at 0x0 [ 2224.099612] eax: f540c3ac ebx: f540c3ac ecx: d000be86 edx: 000000ac [ 2224.099617] esi: d000be86 edi: f540c3e0 ebp: d000be7c esp: d000be6c [ 2224.099623] ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068 [ 2224.099628] Process kdvb-ad-0-fe-0 (pid: 4798, ti=d000a000 task=d002e590 task.ti=d000a000) [ 2224.099632] Stack: f96fc4ca 00000002 f540c3cc f540c3e0 d000be8c f970523b 0000bea6 f540ce48 [ 2224.099643] d000bed0 f9705f8a 00004000 00000001 00000003 00000008 d000be18 f9703810 [ 2224.099653] f540c418 00000001 00000001 d000bed0 f96fdc5e 00000003 f540ce48 000003e8 [ 2224.099663] Call Trace: [ 2224.099665] [] show_trace_log_lvl+0x1a/0x2f [ 2224.099680] [] show_stack_log_lvl+0x9b/0xa3 [ 2224.099688] [] show_registers+0x1b8/0x28a [ 2224.099696] [] die+0x117/0x1fa [ 2224.099703] [] do_page_fault+0x539/0x60c [ 2224.099711] [] error_code+0x72/0x80 [ 2224.099721] [] fc2580_i2c_write+0x1d/0x29 [dvb_usb_rtl2832u] [ 2224.099765] [] fc2580_set_init+0x1a/0x1a8 [dvb_usb_rtl2832u] [ 2224.099795] [] fc2580_Initialize+0x2c/0x38 [dvb_usb_rtl2832u] [ 2224.099824] [] rtl2832_fc2580_Initialize+0x2d/0x12c [dvb_usb_rtl2832u] [ 2224.099853] [] rtl2832_init+0x1155/0x1360 [dvb_usb_rtl2832u] [ 2224.099885] [] dvb_usb_fe_wakeup+0x2a/0x30 [dvb_usb] [ 2224.099918] [] dvb_frontend_init+0x46/0x80 [dvb_core] [ 2224.099968] [] dvb_frontend_thread+0x71/0x4bb [dvb_core] [ 2224.100019] [] kthread+0x3b/0x61 [ 2224.100031] [] kernel_thread_helper+0x7/0x10 [ 2224.100041] ======================= [ 2224.100044] Code: Bad EIP value. [ 2224.100056] EIP: [<00000000>] 0x0 SS:ESP 0068:d000be6c -- SNIP -- Gilzad Barvar Hamuni sent me patch for Terratec Cinergy T Stick (0CCD:00A9). This confirms the possibility to use RTL2832U driver as base for other RTL chips as well. You can find patches for RTL2838 in rtl2838 directory or in rtl2838.tar. Thanks Gilzad! I've received patch for DigitalNow Quad DVB-T Receiver from Alan Forbes. Please, be aware that system lock-up happens when you try to watch anything, by Alan. Scanning works fine though. I've contacted DigitalNow and the official reply is they're working at Linux driver, yet they're not finished with it. Well, at least some reply after all :) Pavel Moravec has sent a patch which should address kernel panics at 64bit machines. It can be found in 'kernel-panic-64bit-patch/' directory. Please note, this patch is not necessary for v2.0.1. Petr Jakubec has reported v1.4.2 also works with Genius TVGo DVB-T03. This card has new hardware revision which utilises RTL2832U. I've also bought these tuners, actually to replace RTL-based ones, however I've learned this truth too late. I've decided to give them a go, so more info on my side about these later on. Peter has created page, in Czech, about this USB stick. You can find it at abclinuxu.cz(see Sources). UPDATE - update is a positive one. These cards work just fine with v2.0.1 and probably even with an older version of RTL driver. I haven't tested remote control though, as usual. They [cards] keep up with Volar X pretty much. Broadcast tower is ~ 65 km away, we have some regular antenna (12dBi I think), active amplifier and signal is just fine. ## Sources * http://www.realtek.com.tw/ * http://forum.ubuntuusers.de/topic/dvb-t-key-msi-digivox-mini-ii-v3-0-aktuell-vo/1/ * http://www.ubuntu-hr.org/forum/index.php?PHPSESSID=912ddf9c9363063b3c0a671f14264932&topic=5842.15 * http://www.spinics.net/lists/linux-media/msg24890.html * http://www.abclinuxu.cz/hardware/pridavne-karty/televizni-karty/dvb-t/usb/genius-tvgo-dvb-t03-wiremote-hw-z-2010