Obsługa tunerów DVB-T pod Linuksem

Sterowniki, firmware, aplikacje i anteny potrzebne do oglądania telewizji DVB-T na komputerze

Pojawienie się telewizji DVB-T w Polsce to lepsza jakość, więcej kanałów i różne możliwości odbioru sygnału. Jest to często powtarzane. Na rynku pojawiły się tunery DVB-T, czy nawet tablety z wbudowanym tunerem. Nie zabrakło także tunerów na USB z prostą antenką i oprogramowaniem ArcSoftu do nagrywania i oglądania telewizji z tunera. W przypadku Linuksa, przynajmniej na początku sprawa nie wyglądała najlepiej. Sterowniki dopiero powstawały, albo nie były kompatybilne z daną wersją chipsetu, czy nowym firmware urządzenia.

Od pewnego już czasu sterowniki dla tunerów DVB-T są pod opieką projektu LinuxTV, a najnowsze kernele (2.8, 2.9 i nowsze) w dopracowanych dystrybucjach pozwalają na użycie tunerów praktycznie od razu po połączeniu. Stare kernele mogą nie mieć sterowników, a te dostarczane przez LinuxTV zazwyczaj nie są w pełni zgodne ze znacznie starszymi wersjami kernela.

Oprócz obsługi tunera pod Linuksem trzeba zadbać o sygnał. Tunery USB wyposażone w proste antenki będą miały duże problemy z odbiorem sygnału jeżeli nie będą w pobliżu nadajnika. Anteny aktywne domowe wewnętrzne, a najlepiej zewnętrzne (na dachu, balkonie) zapewnią znacznie lepszą jakość odbioru.

W tym artykule zaprezentuję dwa tunery DVB-T na USB: Not Only TV LV5TDELUXE, Evolve Mars oraz oprogramowanie do obsługi telewizji DVB pod Linuksem.

Evolve Mars i Not Only TV LV5TDELUXE

Evolve Mars i Not Only TV LV5TDELUXE

Instalacja sterowników

Należy unikać stosowania starych tutoriali, gdyż zapewne są już nieaktualne (szczególnie tam, gdzie sugerują modyfikację kodu sterownika). W nowszych kernelach mamy nowe sterowniki i jedyne czego mogą wymagać to firmware. Po podłączeniu tunera do portu USB możemy podejrzeć logi systemowe za pomocą dmesg - na końcu będą wpisy dotyczące tunera. Jeżeli potrzebuje firmware to powinien pojawić się tam odpowiedni wpis. Jeżeli sterownik i firmware są dostępne to tuner zostanie zainicjalizowany i zobaczymy wpis typu (cośtam) successfully initialized and connected.

Pliki firmware można znaleźć na liście obsługiwanych tunerów. Pobieramy plik i umieszczamy go w /lib/firmware/ po czym ponownie podłączamy tuner.

Żeby odnaleźć firmware, czy nawet informacje o potrzebnym sterowniku trzeba określić chipset jaki jest obecny w naszym tunerze. Po podłączeniu w logach dmesg znajdziemy informacje o nim, np:

it913x: Unknown tuner ID applying default 0x60<6>[27901.631294] usb 2-1.1: dvb_usb_v2: found a 'ITE 9135(9006) Generic' in cold state
Chipset to ITE 9135 a sterownik to it913x.
[28232.180198] usbcore: registered new interface driver dvb_usb_rtl28xxu
[28232.257883] usb 2-1.1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
W tym przypadku sterownik to dvb_usb_rtl28xxu, a chipset to RTL2832.

Jeżeli system nie znajduje sterownika, albo nie chce on działać trzeba zainstalować paczkę najnowszych sterowników projektu LinuxTV. Przy okazji zyskujemy chyba także część plików firmware.

Instalacja sterowników z LinuxTV

Instalacja najnowszych sterowników polega na skompilowaniu ich dla posiadanego w systemie kernela. Potrzebne są więc pakiety kompilatora, oraz nagłówki kernela. W przypadku Ubuntu i jego pochodnych będzie to build-essential i linux-headers. Dodatkowo musimy zainstalować GITa by móc pobrać kod sterowników z repozytorium.

Proces pobierania i kompilacji wygląda następująco (wykonujemy w konsoli jako zwykły użytkownik):

git clone git://linuxtv.org/media_build.git
cd media_build
./build
Budowanie chwilę zajmie. Gdy już kompilacja zostanie zakończona instalujemy sterowniki poleceniem:
sudo make install
Jeżeli później dystrybucja zaktualizuje nam kernel będziemy musieli skompilować i zainstalować sterowniki ponownie. Po instalacji i ew. restarcie tuner powinien działać. Jeżeli nadal są z nim problemy warto zgłosić to do opiekunów LinuxTV, tak by naprawili problem.

Tunery DVB-T pod Linuksem

Decydując się na zakup tunera DVB-T na USB trzeba uwzględnić kilka parametrów. Pierwszy - musi mieć normalne wyjście antenowe (lub adapter w zestawie). Tunery z wbudowaną antenką zapewne nie odbiorą nic jeżeli nie będą blisko nadajnika (bardzo blisko!). Tunery ze złączem antenowym pozwalają na podłączenie dowolnej anteny DVB-T w zależności od potrzeb i sygnału. Muszą także obsługiwać MPEG4 jeżeli chcemy oglądać telewizję w Polsce (ważne gdy kupujemy tuner za granicą). Jeżeli planujemy często korzystać z tunera - nagrywać i oglądać warto zaopatrzyć się w podwójny (dwukanałowy) tuner. Warto też sprawdzić chipset - da się to określić np. po sterownikach do MS Windows, gdzie nazwa producenta, chipsetu będzie gdzieś w paczce lub w nazwach pliku.

Zaprezentowane poniżej tunery udało mi się uruchomić bez większych problemów pod Linuksem. Są to jedne z tańszych tunerów ze złączem antenowym. Oparte są o dwa popularne i często stosowane chipsety.

Evolve Mars

Tuner na chipsecie ITE 9135 i wymaga firmware dvb-usb-it9135-02.fw (o czym poinformuje w dmesg jeżeli go brakuje). Firmware można pobrać na kilka sposobów opisanych na wiki LinuxTV. Jednym z nich jest pobranie paczki z ite.com.tw i wydobycie potrzebnego firmware:

dd if=dvb-usb-it9135.fw ibs=1 skip=12866 count=5817 of=dvb-usb-it9135-02.fw
Plik firmware wrzucamy do /lib/firmware. Bardziej techniczne informacje są też dostępne na zolid.gpio.dk (ten sam tuner sprzedawany pod inną marką).

Przykładowy log w dmesg z poprawnego uruchomienia tunera wygląda następująco:

[27901.402855] usb 2-1.1: new high-speed USB device number 5 using ehci-pci
[27901.499446] usb 2-1.1: New USB device found, idVendor=048d, idProduct=9006
[27901.499458] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[27901.499464] usb 2-1.1: Product: USB Deivce
[27901.499470] usb 2-1.1: Manufacturer: ITE Technologies, Inc.
[27901.502835] input: ITE Technologies, Inc. USB Deivce as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input16
[27901.503140] hid-generic 0003:048D:9006.0005: input,hidraw4: USB HID v1.01 Keyboard [ITE Technologies, Inc. USB Deivce] on usb-0000:00:1d.0-1.1/input1
[27901.627430] usbcore: registered new interface driver dvb_usb_it913x
[27901.627777] it913x: Chip Version=02 Chip Type=9135
[27901.629282] it913x: Remote HID mode NOT SUPPORTEDit913x: Dual mode=0 Tuner Type=0
[27901.629778] it913x: Unknown tuner ID applying default 0x60<6>[27901.631294] usb 2-1.1: dvb_usb_v2: found a 'ITE 9135(9006) Generic' in cold state
[27901.640365] usb 2-1.1: dvb_usb_v2: downloading firmware from file 'dvb-usb-it9135-02.fw'
[27901.640774] it913x: FRM Starting Firmware Download
[27901.875037] it913x: FRM Firmware Download Completed - Resetting Deviceit913x: Chip Version=02 Chip Type=9135
[27901.912308] it913x: Firmware Version 52887808<6>[27901.982871] usb 2-1.1: dvb_usb_v2: found a 'ITE 9135(9006) Generic' in warm state
[27901.983002] usb 2-1.1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[27901.983243] DVB: registering new adapter (ITE 9135(9006) Generic)
[27902.025447] it913x-fe: ADF table value	:00
[27902.029463] it913x-fe: Crystal Frequency :12000000 Adc Frequency :20250000 ADC X2: 01
[27902.065304] it913x-fe: Tuner LNA type :60
[27902.310248] usb 2-1.1: DVB: registering adapter 0 frontend 0 (ITE 9135(9006) Generic_1)...
[27902.310437] usb 2-1.1: dvb_usb_v2: 'ITE 9135(9006) Generic' successfully initialized and connected
A lsusb zwróci:
Bus 002 Device 005: ID 048d:9006 Integrated Technology Express, Inc.

Not Only TV LV5TDELUXE

Tuner ten oparty jest o chipset Realtek RTL2832 i wymaga firmware dvb-usb-af9015.fw, które pobieramy i umieszczamy w /lib/firmware/.

Przykładowy log w dmesg z poprawnego uruchomienia tunera wygląda następująco:

[28231.985189] usb 2-1.1: new high-speed USB device number 6 using ehci-pci
[28232.089492] usb 2-1.1: New USB device found, idVendor=1f4d, idProduct=c803
[28232.089504] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[28232.089510] usb 2-1.1: Product: RTL2840U
[28232.089515] usb 2-1.1: Manufacturer: Realtek
[28232.089520] usb 2-1.1: SerialNumber: 00000001
[28232.180139] usb 2-1.1: dvb_usb_v2: found a 'Trekstor DVB-T Stick Terres 2.0' in warm state
[28232.180198] usbcore: registered new interface driver dvb_usb_rtl28xxu
[28232.221290] usb 2-1.1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[28232.221324] DVB: registering new adapter (Trekstor DVB-T Stick Terres 2.0)
[28232.257883] usb 2-1.1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[28232.278923] fc0013: Fitipower FC0013 successfully attached.
[28232.285495] Registered IR keymap rc-empty
[28232.285622] input: Trekstor DVB-T Stick Terres 2.0 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/rc/rc0/input17
[28232.285676] rc0: Trekstor DVB-T Stick Terres 2.0 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/rc/rc0
[28232.285681] usb 2-1.1: dvb_usb_v2: schedule remote query interval to 400 msecs
[28232.297998] usb 2-1.1: dvb_usb_v2: 'Trekstor DVB-T Stick Terres 2.0' successfully initialized and connected
A lsusb zwróci:
Bus 002 Device 006: ID 1f4d:c803 G-Tek Electronics Group

Oprogramowanie

Za pomocą tunera możemy oglądać telewizję na żywo, albo zlecić nagranie wybranych programów. Tunery dwukanałowe (podwójne - dwa tunery w jednym) pozwalają nagrywać i oglądać na raz. Tunery jednokanałowe (jak te powyżej) pozwalają tylko na jedną czynność na raz.

Szybko z tunera skorzystamy w aplikacji Kaffeine. Zlecanie i obsługę nagrywania programów obsługuje gnome-dvb-control (pakiet typu gnome-dvb-client). W sieci można wyszukać jeszcze inne mniej znane aplikacji specjalizujące się wyłącznie w DVB. Tych jak na razie nie testowałem.

Kaffeine

Po uruchomieniu wybieramy opcję Telewizja Cyfrowa:
Kaffeine po uruchomieniu
Pojawi się panel telewizji. Za pierwszym uruchomieniem wchodzimy do ustawień (ikonka w lewym dolnym rogu):
Panel telewizji cyfrowej w Kaffeine
W ustawieniach możemy nadać nazwę tunera oraz wybrać lokalizację nadajnika:
Konfiguracja tunera DVB T w Kaffeine
Wracamy do panelu telewizji cyfrowej, wybieramy drugą ikonę - "Kanały". Pojawi się okno wyszukiwania kanałów. Rozpoczynamy skanowanie a znalezione kanały dodajemy poprzez "dodaj filtrowany":
Wyszukiwanie kanałów telewizji DVB T
Dodane do listy kanały będą widoczne w lewej kolumnie. Po zamknięciu okna kanałów wystarczy kliknąć na kanał by po chwili zobaczyć obecnie emitowany program.
Wyszukane kanały z nadajnika w Raszynie albo z Pałacu Kultury
Szybko i bez większych problemów możemy oglądać telewizję na swoim komputerze

Szybko i bez większych problemów możemy oglądać telewizję na swoim komputerze

Przy słabym sygnale pojawią się artefakty lub nie zobaczymy nic

Przy słabym sygnale pojawią się artefakty lub nie zobaczymy nic

Evolve Mars szybciej przeprowadzał skanowanie, jak i pozwalał Kaffeine na wyświetlanie informacji o syngale i SNR. Tuner Not Only TV także działał, ale wyszukiwanie kanałów zajmowało mu więcej czasu.

Anteny DVB-T

Zestawowa mini antena

Zestawowa mini antena

Specjalistą od anten nie jestem, ale bazując na moich próbach z tunerami i komentarzach znajomych wynika że do dobrego odbioru telewizji DVB-T potrzeba porządnej anteny - zewnętrznej (jak możemy to kierunkowej w stronę nadajnika), lub ew. wewnętrznej - domowej aktywnej (zasilanej, ze wzmocnieniem odbieranego sygnału).

W różnych sklepach sprzedających tunery na USB znajdziemy wiele komentarzy narzekających na zestawowe małe pasywne antenki - one raczej nie pozwolą na odbiór sygnału o użytecznej jakości. W tych samych sklepach, szczególnie tych lepszych znajdziemy również różne anteny DVB-T - czy to domowe, czy zewnętrzne. W uproszczeniu efektywność anteny wyrażana jest w oferowanym przez nią wzmocnieniu. Aktywna "domowa" antena to jakieś 20 dB. Zewnętrzne większe pasywne anteny mogą oferować nawet i np. 40 dB. Wszystko zależy od danego modelu. Warto dokładnie przeczytać opis i ew. skonsultować się z ekspertem.

Testując opisywane tunery byłem w stanie na zestawowej małej antence złapać dość słaby sygnał tylko na balkonie. Wewnątrz domu całkowity brak sygnału. Nawet na balkonie sygnał był za słaby by pozwolić na bezproblemowe oglądanie telewizji. Prosta aktywna domowa antena DPM DTV-T1 dała lepszy sygnał, ale też nie zawsze był on stabilny.

DPM DTV-T1

Antena DPM DTV T1
Jest to jedna z tańszych aktywnych anten domowych dająca jakieś 25-30 dB wzmocnienia sygnału. W zestawie dostajemy zasilacz, a samą antenę podłączamy bezpośrednio do tunera. Lepiej zbiera sygnał i na balkonie dawała znacznie lepszy sygnał do tunera. Dało się oglądać telewizję, ale zdarzały się momenty, w których obraz się ciął. W domu tak jak zestawowa zawiodła i nie dała wystarczająco silnego sygnału (nadajnik z Pałacu Kultury po przeciwnej stronie bloku, a ten z Raszyna z boku - brak czystej prostej linii do nadajnika).
blog comments powered by Disqus

Kategorie

Strony