====== Chip rtl2832u ======
Tento návod popisuje zprovoznění DVB-T tunerů s chipem RTL2832u (idVendor=1d19, idProduct=110x), jako jsou např:
* **LifeView DVB-T USB LV5T** (idVendor=1d19, idProduct=1101)
* **DVB-T MSI DigiVOX micro HD** (idVendor=1d19, idProduct=1102)
* **MSI DigiVox mini II V3.0** (idVendor=1d19, idProduct=1101)
* **Leadtek Winfast DTV dongle mini** (idVendor=0413, idProduct=6a03)
* **Not Only TV LV5TDLX** (idVendor=1f4d idProduct=c803)
====== Architektura a použití ======
Chip rtl2832u byl navržen tak, aby jeho implementace byla kompaktní, levná, univerzálně použitelná a jednoduše softwarově rozšířitelná. Samotný TV dongle obsahuje pouze širokopásmový zesilovač a AD převodník, o frekvenční zpracování a dekódování se stará vždy až ovladač uvnitř PC. To určuje způsob jeho použití:
* Není úplně vhodný pro starší a pomalejší PC ( z dob Celeronů atd. ) v kombinaci s HD vysíláním
* Pokud nemá Váš dongle potlačeny netelevizní frekvence, dokáže zpracovat i FM a DAB rozhlasové vysílání
* Tento chipset je pilířem pro tzv. [[SDR|Software Defined Radio]] - aplikaci pro příjem a demodulaci radiových signálů v řádu od desítek MHz do jednotek GHz.
====== Funkčnost ve verzích ======
===== 12.10 32/64bit =====
odzkoušeno pro 3.5.0-21 (zjistí se uname -a)
git clone git://linuxtv.org/media_build.git
cd media_build
./build
Může chtít nainstalovat nějaké balíky. Po případné instalaci zadat znovu
./build
Pokud vše proběhlo bez chyb :
sudo make install
kontrola:
lsmod | grep rtl
při úspěchu vypíše zavedené moduly při neúspěchu nic
originálí návod: http://ubuntuforums.org/showthread.php?t=2078342.
===== 12.04 32bit =====
Návod a zdrojový kód pochází z git repository [[https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0|github.com/ambrosa]]. Před kompilací ovladačů je třeba mít naistalováno následující:
sudo apt-get install build-essential
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install git
Následuje stažení zdrojového kódu
git clone https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0.git
cd DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0
cd RTL2832-2.2.2_kernel-3.0.0
Teď je třeba v Makefile zakomentovat starší verzi jádra 3.0 a odkomentova novější
# kernel 3.0.0 / 3.1.0
#INCLUDE_EXTRA_DVB := include-300
# kernel 3.2.0
INCLUDE_EXTRA_DVB := include-320
Nakonec spustíme kompilaci, instalaci a zavedení modulu
make clean
make
sudo make install
modprobe dvb_usb_rtl2832u
===== 11.10 32bit =====
Ve verzi Ubuntu 11.10 32bit funguje díky uživateli Martin a jeho [[DigiVox|příspěvku]]:
Mě funguje **MSI DigiVox micro HD** (idVendor=1d19, idProduct=1104), která je také na čipu RTL2832u v Ubuntu 11.10 ve 32 bit verzi (jádro 3.0.0-13) podle návodu, který jsem dal do stránky o kartě (klik na DigiVox o řádek výše).
===== 11.10 64bit =====
Ve verzi Ubuntu 11.10 64bit funguje díky italskému uživateli Xgaz: [[http://xgazza.altervista.org/Linux/DVB/rtl2832u.html#|http://xgazza.altervista.org/Linux/DVB/rtl2832u.html#]]
==== Oranžový Leadtek Winfast DTV dongle mini ====
Návod uživatele Xgaz jsem zkusil na Xubuntu 11.10 64-bit verze. Mám zařízení s ID 0413:6a03 (oranžový Leadtek Winfast DTV dongle mini). V souboru rtl2832u.h jsem změnil na řádku 99 definici
#define USB_PID_LEADTEK_WARM_1 0x6680
na
#define USB_PID_LEADTEK_WARM_1 0x6A03
definice o řádek výš odpovídala. Přeložil jsem, nainstaloval a po znovuvložení karta naběhla.
===== 11.04 =====
Níže uvedený postup byl otestován na tuneru **DVB-T MSI DigiVOX micro HD USB** a **MSI DigiVox mini II V3.0**.
====== Příprava ======
V této fázi si připrav prostředí pro překlad V4L a nainstaluj jednoduchou DVB-T aplikaci.
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install patchutils libproc-processtable-perl git unrar
sudo apt-get install me-tv
====== Stažení poslední verze V4L ======
Tento postup provede stažení poslední verze V4L a jejího nainstalování (včetně jejích opravných balíčků).
mkdir ~/tuner ; cd ~/tuner
git clone git://linuxtv.org/media_build.git
cd ~/tuner/media_build/ ; ./build
====== Stažení zdrojového kódu RTL2832U ======
mkdir ~/tuner/rtl; cd ~/tuner/rtl
wget http://www.turnovfree.net/~stybla/linux/v4l-dvb/lv5tdlx/090730_RTL2832U_LINUX_Ver1.1.rar
unrar x -yep 090730_RTL2832U_LINUX_Ver1.1.rar ~/tuner/rtl/
cp ~/tuner/rtl/090730_RTL2832U_LINUX_Ver1.1/* ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/
====== Úprava zdrojového kódu RTL2832U ======
Tady je nutná trocha úprav popsaných v souboru readme.txt.
Dokopíruj na konec souboru ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/Makefile
gedit ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/Makefile
následující text:
dvb-usb-rtl2832u-objs = demod_rtl2832.o dvbt_demod_base.o dvbt_nim_base.o foundation.o math_mpi.o nim_rtl2832_mxl5007t.o nim_rtl2832_fc2580.o nim_rtl2832_mt2266.o rtl2832u.o rtl2832u_fe.o rtl2832u_io.o tuner_mxl5007t.o tuner_fc2580.o tuner_mt2266.o tuner_tua9001.o nim_rtl2832_tua9001.o
obj-$(CONFIG_DVB_USB_RTL2832U) += dvb-usb-rtl2832u.o
Dokopíruj na konec souboru ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/Kconfig
gedit ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/Kconfig
následující text:
config DVB_USB_RTL2832U
tristate "Realtek RTL2832U DVB-T USB2.0 support"
depends on DVB_USB
help
Realtek RTL2832U DVB-T driver.
Uprav soubor ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/rtl2832u.c
gedit ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/rtl2832u.c
uprav obsah řádku 12
//DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
na
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
uprav obsah řádku 41
adap->fe = rtl2832u_fe_attach(adap->dev);
na
adap->fe[0] = rtl2832u_fe_attach(adap->dev);
uprav obsah řádku 61-63
if ( ( 0== dvb_usb_device_init(intf,&rtl2832u_1st_properties,THIS_MODULE,NULL) )||
( 0== dvb_usb_device_init(intf,&rtl2832u_2nd_properties,THIS_MODULE,NULL) ) ||
( 0== dvb_usb_device_init(intf,&rtl2832u_3th_properties,THIS_MODULE,NULL) ))
na
if ( ( 0== dvb_usb_device_init(intf,&rtl2832u_1st_properties,THIS_MODULE,NULL,adapter_nr) )||
( 0== dvb_usb_device_init(intf,&rtl2832u_2nd_properties,THIS_MODULE,NULL,adapter_nr) ) ||
( 0== dvb_usb_device_init(intf,&rtl2832u_3th_properties,THIS_MODULE,NULL,adapter_nr) ))
Uprav soubor ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/tuner_tua9001.c
gedit ~/tuner/media_build/linux/drivers/media/dvb/dvb-usb/tuner_tua9001.c
uprav obsah řádku 951
#elif defined(CRYSTAL_19.2_MHZ)
na
#elif defined(CRYSTAL_19_2_MHZ)
uprav obsah řádku 957
#elif defined(CRYSTAL_20.48_MHZ)
na
#elif defined(CRYSTAL_20_48_MHZ)
====== Překlad aktualizovaného V4L ======
Přelož upravené V4L (sice podruhé, ale tentokrát s naším rtl2832u ovladačem)
cd ~/tuner/media_build/
make clean
make distclean
make
====== Instalace aktualizovaného V4L do systému ======
Nainstaluj všechny V4L moduly (včetně našeho rtl2832u) a restartuj stroj.
sudo make install
sudo reboot
====== Kontrola ======
Po restartu zkontroluj správné zavedení ovladačů
tail -f /var/log/syslog
Vlož kartu do USB, mělo by se objevit něco takového:
Aug 15 00:18:36 ubuntu kernel: [ 69.710072] usb 1-7: new high speed USB device using ehci_hcd and address 3
Aug 15 00:18:36 ubuntu kernel: [ 70.025083] WARNING: You are using an experimental version of the media stack.
Aug 15 00:18:36 ubuntu kernel: [ 70.025090] As the driver is backported to an older kernel, it doesn't offer
Aug 15 00:18:36 ubuntu kernel: [ 70.025095] enough quality for its usage in production.
Aug 15 00:18:36 ubuntu kernel: [ 70.025099] Use it with care.
Aug 15 00:18:36 ubuntu kernel: [ 70.025101] Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
Aug 15 00:18:36 ubuntu kernel: [ 70.025106] 9bed77ee2fb46b74782d0d9d14b92e9d07f3df6e [media] tuner_xc2028: Allow selection of the frequency adjustment code for XC3028
Aug 15 00:18:36 ubuntu kernel: [ 70.025113] ffd638e0e613578fbe82d5f2d9c1e5ec503a3a2b [media] v4l: Move event documentation from SUBSCRIBE_EVENT to DQEVENT
Aug 15 00:18:36 ubuntu kernel: [ 70.025119] 31ee95ec2d3dd3b6f68d7fa0f410045652895af2 [media] adp1653: check error code of adp1653_init_controls
Aug 15 00:18:36 ubuntu kernel: [ 70.069936] IR NEC protocol handler initialized
Aug 15 00:18:36 ubuntu kernel: [ 70.071819] WARNING: You are using an experimental version of the media stack.
Aug 15 00:18:36 ubuntu kernel: [ 70.071827] As the driver is backported to an older kernel, it doesn't offer
Aug 15 00:18:36 ubuntu kernel: [ 70.071832] enough quality for its usage in production.
Aug 15 00:18:36 ubuntu kernel: [ 70.071835] Use it with care.
Aug 15 00:18:36 ubuntu kernel: [ 70.071838] Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
Aug 15 00:18:36 ubuntu kernel: [ 70.071843] 9bed77ee2fb46b74782d0d9d14b92e9d07f3df6e [media] tuner_xc2028: Allow selection of the frequency adjustment code for XC3028
Aug 15 00:18:36 ubuntu kernel: [ 70.071849] ffd638e0e613578fbe82d5f2d9c1e5ec503a3a2b [media] v4l: Move event documentation from SUBSCRIBE_EVENT to DQEVENT
Aug 15 00:18:36 ubuntu kernel: [ 70.071854] 31ee95ec2d3dd3b6f68d7fa0f410045652895af2 [media] adp1653: check error code of adp1653_init_controls
Aug 15 00:18:36 ubuntu kernel: [ 70.116083] IR RC5(x) protocol handler initialized
Aug 15 00:18:37 ubuntu kernel: [ 70.148660] IR RC6 protocol handler initialized
Aug 15 00:18:37 ubuntu kernel: [ 70.172794] dvb-usb: found a 'DK mini DVBT DONGLE' in warm state.
Aug 15 00:18:37 ubuntu kernel: [ 70.172815] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
Aug 15 00:18:37 ubuntu kernel: [ 70.174581] DVB: registering new adapter (DK mini DVBT DONGLE)
Aug 15 00:18:37 ubuntu kernel: [ 70.180615] DVB: registering adapter 0 frontend 0 (Realtek RTL2832 DVB-T)...
Aug 15 00:18:37 ubuntu kernel: [ 70.181995] dvb-usb: DK mini DVBT DONGLE successfully initialized and connected.
Aug 15 00:18:37 ubuntu kernel: [ 70.182058] dvb-usb: found a 'DK mini DVBT DONGLE' in warm state.
Aug 15 00:18:37 ubuntu kernel: [ 70.182075] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
Aug 15 00:18:37 ubuntu kernel: [ 70.183851] DVB: registering new adapter (DK mini DVBT DONGLE)
Aug 15 00:18:37 ubuntu kernel: [ 70.188952] IR JVC protocol handler initialized
Aug 15 00:18:37 ubuntu kernel: [ 70.212636] DVB: registering adapter 1 frontend 0 (Realtek RTL2832 DVB-T)...
Aug 15 00:18:37 ubuntu kernel: [ 70.217317] IR Sony protocol handler initialized
Aug 15 00:18:37 ubuntu kernel: [ 70.221418] dvb-usb: DK mini DVBT DONGLE successfully initialized and connected.
Aug 15 00:18:37 ubuntu kernel: [ 70.225984] usbcore: registered new interface driver dvb_usb_rtl2832u
Aug 15 00:18:37 ubuntu kernel: [ 70.236932] IR MCE Keyboard/mouse protocol handler initialized
Aug 15 00:18:37 ubuntu kernel: [ 70.269353] lirc_dev: IR Remote Control driver registered, major 250
Aug 15 00:18:37 ubuntu kernel: [ 70.286256] IR LIRC bridge handler initialized
====== Použití ======
Pro začátek velmi jednoduchá aplikace s přímočarým ovládáním [[Me TV]]
me-tv
====== Odkazy ======
* [[https://build.opensuse.org/package/files?package=v4l-dvb&project=home%3Adirk-s&rev=6a3a60beeb74908fc041a6166e632aee|SUSE repository s rtl2832u kódem a kernel patchem]]
* [[http://ubuntuforums.org/showthread.php?t=1678094&page=4|Vlákno s podobným návodem na ubuntuforums.org]]
* [[http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers|Návod na kompilaci poslední V4L s posledními záplatami]]