VDR w Gentoo
1.
Ogólne informacje o DVB
Czym jest DVB?
DVB jest skrótem od Digital Video Broadcasting. DVB opisuje metody
przesyłu danych cyfrowych z telewizji, radia, interaktywnych serwisów takich jak
MHP, EPG czy teletekst. Dzięki kompresji danych przy użyciu MPEG-2 lub H.246 do
HDTV, możliwa jest transmisja kilku kanałów na jednej częstotliwości. Im większa
kompresja danych, tym większa ilość transmitowanych kanałów. Niestety, kosztem
utraty jakości.
DVB może być transmitowane na kilka sposobów. Litera po myślniku rozpoznaje
znaczenie metody transmisji, na przykład DVB-T dla transmisji naziemnej.
Istnieje kilka typów sposobu przekazu:
- DVB-S dla transmisji satelitarnej
- DVB-C dla transmisji kablowej
- DVB-H dla transmisji dla urządzeń mobilnych (naziemna)
- DVB-IPI dla transmisji poprzez sieci bazujące na IP, na przykład internet
-
DVB-RC(S/C/T) odesłanie kanału dla transmisji serwisów internetowych, na
przykład broadband internet
Typy i wymagania kart DVB
Pomiędzy różnymi metodami dostępu do strumieni DVB, karty są sklasyfikowane
poprzez typ wyjścia. Istnieją karty z zaimplementowanym dekoderem, oferujące
bezpośredni dostęp do strumienia poprzez urządzenie /dev/video. Są
to kosztowne karty. Inne karty nie posiadają zaimplementowanego dekodera,
wymagają więc programowego dekodowania w komputerze i nazywane są kartami
budżetowymi. Implikuje to wyższe wymagania sprzętowe. Konieczne jest
posiadanie procesora taktowanego na przynajmniej 600MHz i 256MB RAM-u.
Ta lista
może być użyteczna, by zidentyfikować swoją kartę.
2.
Przygotowywanie systemu
Konfigurowanie jądra
Na początku należy upewnić się, że posiadane jądro wspiera DVB i posiadane
urządzenia DVB. Od wersji jądra 2.6 wymagane sterowniki są zawarte w nim
zawarte. Należy sprawdzić konfigurację jądra i upewnić się, że poniższe opcje są
wkompilowane w jądro na stałe lub jako moduły.
Listing 2.1: Wymagane opcje jądra |
Input Device Support --->
* Event Interface
Device Drivers --->
Multimedia Devices --->
Digital Video Broadcasting Devices --->
[*] DVB For Linux
* DVB Core Support
M [Sterownik do posiadanej karty]
|
Dodatkowo należy wybrać odpowiedni sterownik do posiadanego sprzętu. By znaleźć
właściwy moduł dla swojej karty, każdy sterownik należy zaznaczyć jako moduł.
W przypadku posiadania karty na złączu PCI należy zainstalować pciutils,
oczywiście tylko w przypadku, gdy nie zostało to zrobione wcześniej.
W przypadku, gdy użytkownik chce sterowniki wbudowane w jądro, bądź nie posiada
karty na złączu PCI, można opuścić lekturę tego kroku i przejść do
sprawdzania komunikatów jądra.
Listing 2.2: Instalacja pciutils |
# emerge pciutils
|
Po uruchomieniu nowego jądra należy uruchomić pcimodules, by otrzymać
listę wymaganych modułów.
Listing 2.3: Wylistowanie wymaganych modułów |
# pcimodules
ohci-hcd
ehci-hcd
sis900
snd-emu10k1
b2c2-flexcop-pci
nvidia
nvidiafb
|
W powyższym wypadku należy załadować moduł b2c2-flexcop-pci. Można go
dodać do /etc/modules.autoload.d/kernel-2.6.
Listing 2.4: Dodawanie modułu |
# echo b2c2-flexcop-pci >> /etc/modules.autoload.d/kernel-2.6
|
Sprawdzanie komunikatów jądra
Zalecane jest, by oznaczyć każdy sterownik jako moduł, dzięki czemu możliwe jest
dodawanie wymaganych modułów dynamicznie, szczególnie gdy użytkownik nie zna
nazwy danego modułu. Jeśli nazwa modułu jest znana, obsługę sterownika należy
wkompilować w jądro na stałe. Następnie trzeba już tylko skompilować jądro,
zainstalować moduły i włączyć komputer z nowym jądrem systemu. Korzystając
z dmesg można też sprawdzić czy jądro prawidłowo wykryło typ posiadanej
karty.
Listing 2.5: Sprawdzanie komunikatów jądra |
# dmesg | grep DVB
DVB: registering new adaptor (TerraTec/qanu USB2.0 Highspeed DVB-T Receiver).
input: TerraTec/qanu USB2.0 Highspeed DVB-T Receiver remote control as
/class/input/input2
|
3.
Instalacja VDR
By zainstalować VDR należy po prostu użyć emerge.
Listing 3.1: Instalacja VDR |
# emerge vdr
|
Kolejny etap instalacji to instalacja zdalnego
sterowania.
4.
Instalacja zdalnego sterowania
Sa przynajmniej dwa sposoby na kontrolowanie VDR poprzez zdalne sterowanie.
W przypadku, gdy posiadana karta ma wbudowany odbiornik IR należy skorzystać z
vdr-remote. W przeciwnym wypadku większość użytkowników skorzysta z LIRC.
Instalacja vdr-remote
Najpierw należy zainstalować wtyczkę korzystając z portage:
Listing 4.1: Instalacja vdr-remote |
# emerge vdr-remote
# eselect vdr-plugin enable remote
|
W przypadku użycia wtyczki do obsługi portu IR na posiadanej karcie DVB wszystko
powinno działać w oparciu o domyślną konfigurację. Wtyczka korzysta wtedy
z urządzenia posiadającego w swej nazwie "dvb". Dla bardziej zaawansowanych
ustawień należy przyjrzeć się plikowi /etc/conf.d/vdr.remote.
Kolejny etap instalacji to opis metod wyjścia
video.
Alternatywnie: instalacja LIRC
Jeśli posiadana karta może być kontrolowana zdalnie, ale użytkownik nie może
bądź nie chce korzystać z vdr-remote, można użyć LIRC. LIRC interpretuje
przyciskane klawisze i jako wynik zwraca nazwę każdego z nich. Program
wspierający LIRC czeka na polecenia i uruchamia akcję opisaną w pliku
konfiguracyjnym, najczęściej znajdującym się w katalogu konfiguracyjnym
uruchamianego programu (na przykład mplayer ładuje konfigurację z pliku
~/.mplayer/lircrc). Zanim LIRC zostanie zainstalowany, należy dodać
lirc do flag USE oraz dodatkowy wpis w /etc/make.conf:
LIRC_DEVICES. Można użyć tej listy by znaleźć
odpowiednie argumenty dla powyższej opcji.
Listing 4.2: Instalacja LIRC |
# nano -w /etc/make.conf
LIRC_DEVICES="devinput"
USE="lirc"
# emerge lirc
|
Na początku należy zdefiniować każdy kod klawisza za pomocą nazwy. Większość
wspieranych pilotów jest już odpowiednio skonfigurowana. Ich listę można znaleźć
tutaj. Należy tylko
pobrać odpowiedni plik i zapisać go jako /etc/lircd.conf. Następnie
trzeba znaleźć dostęp do posiadanego pilota. W tym celu konieczne jest
uruchomienie polecenia, które wyświetli wszystkie urządzenia wejścia. Warto
upewnić się, że urządzenie zdalnego sterownia jest podłączone i uruchomione.
Listing 4.3: Lista urządzeń wejścia |
# cat /proc/bus/input/devices
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="TerraTec/qanu USB2.0 Highspeed DVB-T Receiver remote control"
P: Phys=usb-0000:00:1d.7-1/input0
S: Sysfs=/class/input/input2
H: Handlers=kbd event1
B: EV=100003
B: KEY=108fc210 2043 0 0 0 0 8000 2080 1 9e1680 0 0 ffc
|
W powyższym przypadku podłączone jest urządzenie Terratec Cinergy T2, więc
dostęp jest możliwy poprzez /dev/input/event1. Należy zastąpić
event1 odpowiadającym urządzeniem wyświetlonym w komunikacie.
lircd musi wiedzieć, z którego urządzenia korzystać. Należy dodać
poniższą linię do /etc/conf.d/lirc.conf. Warto zapamiętać, by
zamienić devinput nazwą sterownika do posiadanej karty, a
event1 aktualnym urządzeniem.
Listing 4.4: Dodawanie opcji do lircd |
LIRCD_OPTS="-H devinput -d /dev/input/event1"
|
Teraz należy uruchomić lircd:
Listing 4.5: Uruchamianie lircd |
# /etc/init.d/lircd start
|
W tym momencie powinna być możliwa obserwacja jak lircd
przechwytuje i dekoduje przyciskane klawisze. Wystarczy jedynie uruchomić
polecenie irw. Zatrzymać je można kombinacją klawiszy Ctrl+C.
Listing 4.6: Testowanie LIRC |
# irw
0000000000001aa2 00 Exit Technisat_TTS35AI.conf
0000000000001a8d 00 Mute Technisat_TTS35AI.conf
0000000000000a97 00 OK Technisat_TTS35AI.conf
0000000000000a97 01 OK Technisat_TTS35AI.conf
0000000000000a92 00 Menu Technisat_TTS35AI.conf
|
Następnie należy dodać LIRC do domyślnego poziomu uruchomieniowego, by włączał
się podczas startu systemu.
Listing 4.7: Dodawanie lircd do domyślnego poziomu uruchomieniowego |
# rc-update add lircd default
|
Aby możliwe było użycie zdalnego sterownia, konieczne jest włączenie w VDR
wsparcia dla LIRC. W tym celu należy dopisać poniższą linię do pliku
/etc/conf.d/vdr:
Listing 4.8: Włączanie wsparcia dla LIRC |
# nano -w /etc/conf.d/vdr
IR_CTRL="lirc"
|
5.
Metody wyjścia video
Należy zdecydować się na jedno (i tylko jedno!) z wymienionych poniżej urządzeń
wyjść video, które pokazują obraz poprzez OSD (On Screen Display).
Dekodowanie sprzętowe: karty DVB z wyższej półki
Użytkownicy tych kosztownych kart nie potrzebują instalować niczego więcej,
należy więc kontynuować z
konfiguracją listy kanałów.
Dekodowanie sprzętowe: karty DXR3/Hollywood+
Do użycia w VDR karty DXR3 konieczna jest wtyczka vdr-dxr3.
Listing 5.1: Instalacja wtyczki |
# emerge vdr-dxr3
# echo em8300 >> /etc/modules.autoload.d/kernel-2.6
|
Moduł em8300 potrzebuje dodatkowej konfiguracji zależnej od rewizji posiadanej
karty.
Kontynuowanie z konfiguracją listy kanałów.
Dekodowanie sprzętowe: karty PVR350
Karty PVR350 wyposażone są w wbudowany dekoder MPEG, więc warto byłoby zrobić
z tego użytek. W tym celu konieczne jest zainstalowanie wtyczki
vdr-pvr350. Jeśli ivtv-driver nie jest jeszcze zainstalowany,
emerge automatycznie go zainstaluje. Aby moduł ivtv był ładowany automatycznie
podczas startu systemu należy dopisać go do
/etc/modules.autoload.d/kernel-2.6:
Listing 5.2: Instalowanie wtyczki PVR350 |
# emerge vdr-pvr350
# echo ivtv >> /etc/modules.autoload.d/kernel-2.6
|
Kontynuowanie z konfiguracją listy kanałów.
Dekodowanie programowe: vdr-softdevice
Aby zainstalować wystarczy proste emerge vdr-softdevice. Należy również
pamiętać, by włączyć wtyczkę.
Listing 5.3: Instalowanie wtyczki softdevice |
# emerge vdr-softdevice
# eselect vdr-plugin enable softdevice
|
Aby wybrać odpowiednie wyjścia video i audio, należy edytować plik
/etc/conf.d/vdr.softdevice.
Na chwilę obecną opisany zostanie jedynie sposób wykorzystania shm ("pamięci
współdzielonej"). Jest ona domyślnie włączona w zainstalowanym pliku
konfiguracyjnym (Ustawienie SOFTDEVICE_VIDEO_OUT). Następnie konieczne jest
uruchomienie ShmClient w celu uzyskania okna z obrazem.
Uwaga:
W przypadku gdy użytkownik nie ma ochoty na osobny układ klawiatury do kontroli
VDR, istnieją gotowe pliki konfiguracyjne dostępne na
stronie
developera Matthiasa Schwarzotta. Można tam znaleźć pliki dla
softdevice/shm i xineliboutput (więcej wkrótce). Potrzebny będzie odpowiedni
plik /etc/vdr/remote.conf i wykonanie na nim chown vdr:vdr,
aby zmusić go do działania.
|
Kontynuowanie z konfiguracją list kanałów.
Dekodowanie sprzętowe: vdr-xineliboutput
Niektórzy mogą chcieć skorzystać z vdr-xineliboutput, ponieważ on również
niesie za sobą możliwość zdalnego sterowania. Poniżej został przedstawiony
sposób jak skonfigurować vdr-xineliboutput zarówno na komputerze hosta
jak i klienta. Najpierw konfiguracja hosta:
Listing 5.4: Instalowanie vdr-xineliboutput |
# emerge vdr-xineliboutput
# eselect vdr-plugin enable xineliboutput
|
Dodanie opcji wiersza poleceń w tym miejscu decyduje to tym czy xineliboutput
będzie działał. Aby zobaczyć więcej opcji, należy wykonać vdr --help.
Listing 5.5: Dodawanie opcji wiersza poleceń do /etc/conf.d/vdr.xineliboutput |
_EXTRAOPTS="--local=none --remote=37890"
|
Kolejnym krokiem jest edycja pliku /etc/vdr/svdrphosts.conf.
Opisuje on ilość adresów hosta, które mogą się połączyć z portem SVDRP
uruchomionego VDR w systemie hosta.
Listing 5.6: Edytowanie /etc/vdr/svdrphosts.conf |
192.168.1.0/24
#204.152.189.113
#0.0.0.0/0
|
Jeśli użytkownik chce jedynie korzystać z vdr-xineliboutput by wyświetlić
obraz na tym samym komputerze, na którym jest zainstalowany i uruchomiony VDR
należy przejść do konfigurowania listy kanałów.
W przeciwnym wypadku należy wykonać
emerge media-plugins/vdr-xineliboutput w swoim kliencie:
Listing 5.7: Konfiguracja klienta |
# emerge vdr-xineliboutput
|
Następnie (po uruchomieniu VDR) należy wykonać polecenie vdr-sxfe
xvdr://hostname aby połączyć się z VDR oraz wyświetlić obraz i OSD.
Kontynuowanie z konfiguracją listy kanałów.
Uwaga:
Istnieje również wtyczka symulująca prawdziwe urządzenia wyjściowe
(vdr-dummydevice) dla takich zastosowań jak serwery nagrywania,
ale jest to znaczenie bardziej zaawansowane niż zwykła konfiguracja
VDR.
|
6.
Tworzenie liisty kanałów
Aby uczynić VDR naprawdę użytecznym konieczne jest stworzenie odpowiedniej listy
kanałów. Istnieje przynajmniej jeden sposób, by stworzyć działającą listę
kanałów (pomijając pobranie jej z internetu). Lista kanałów instalowana
domyślnie odbiera poprzez DVB-S z satelity Astra znajdującej się na 19.2°E.
Użycie dvbscan z linuxtv-dvb-apps
Listing 6.1: Instalacja linuxtv-dvb-apps |
# emerge linuxtv-dvb-apps
|
Należy znaleźć listę odpowiednich częstotliwości dla swojego regionu i typ
połączenia. Pliki te umieszczone są w /usr/share/dvb/scan.
Dla połączenia DVB-T w Niemczech, region Norymberga należy skorzystać z pliku
/usr/share/dvb/scan/dvb-t/de-Nuernberg.
Listing 6.2: Skanowanie przy użyciu dvbscan |
$ dvbscan -o vdr /usr/share/dvb/scan/dvb-t/de-Nuernberg > /etc/vdr/channels.conf
|
Użycie vdr-reelchannelscan
Na początki należy usunąć wszelkie istniejące listy kanałów.
Listing 6.3: Usuwanie starych list kanałów |
# rm /etc/vdr/channels.conf
|
Listing 6.4: Instalowanie i aktywacja vdr-reelchannelscan |
# emerge vdr-reelchannelscan
# eselect vdr-plugin enable reelchannelscan
|
Kanały dla systemów korzystających z vdr-analogtv
W przypadku gdy użytkownik chce skonfigurować kanały dla wyjścia analogowego,
projekt VDR dostarcza przykładowych plików, które znajdują się w
/usr/share/doc/vdr-analogtv-$version/examples/, zakładając
oczywiście, że użytkownik posiada zainstalowany pakiet
>=media-plugins/vdr-analogtv-1.0.00-r1.
7.
Uruchamianie VDR
Po zainstalowaniu wszystkich podstawowych składników VDR w systemie konieczne
jest skonfigurowanie go wraz z OSD.
W przypadku korzystania ze sprzętowego dekodera dla wyjścia video, konieczne
jest przełączenie się na podłączony telewizor. W przypadku korzystania z wyjścia
programowego klient musi zostać uruchomiony po starcie VDR.
Na początku warto nauczyć się swoich własnych definicji klawiszy, czyli powiązać
klawisze z wbudowanymi poleceniami VDR.
Uwaga:
Na wszelki wypadek należy edytować konfigurację klawiatury albo (znacznie
lepiej) usunąć ją, by powrócić do nauki klawiszologii. VDR przechowuje definicje
klawiszy w /etc/vdr/remote.conf.
|
Teraz można uruchomić VDR:
Listing 7.1: Uruchamianie VDR |
# /etc/init.d/vdr start
* Preparing start of vdr:
* config files ... [ ok ]
* Waiting for prerequisites (devices nodes etc.) ... [ ok ]
* Starting vdr ... [ ok ]
* First start of vdr: No check for running vdr possible
* until control device (remote/keyboard) keys are learnt!
|
Uwaga:
Użytkownicy programowych dekoderów powinni teraz uruchomić program klienta,
który otworzy okno z obrazem telewizyjnym i OSD.
|
Listing 7.2: Aktywowanie programowego dekodera w kliencie |
# ShmClient
# vdr-sxfe xvdr://hostname
|
Najbardziej użyteczne klawisze w VDR:
- Klawisze kursorów (Lewy/Prawy/Góra/Dół)
- Menu/Wyjście/Ok
- Kolory (Czerwony/Zielony/Żółty/Niebieski)
- Klawisze numeryczne (0-9)
Ważne:
Jeśli nie posiada się wielu klawiszy należy upewnić się, że przypisano powyższe.
(Niektóre piloty posiadają Play/Pause/itp. na tych samych klawiszach, na których
są kolory. Należy więc użyć ich do kolorów.
|
W tym momencie podstawowa instalacja jest zakończone, konieczne jest tylko
skonfigurowanie VDR. Należy więc przełączyć się na obraz wyjścia i podążać za
wskazówkami na ekranie. VDR poprosi o wciśnięcie różnych przycisków na pilocie,
by nauczyć się prawidłowych kodów klawiszy. W przypadku, gdy nie posiada się
pilota można użyć klawiatury.
Teraz można dodać skrypt startowy VDR do domyślnego poziomu uruchomieniowego, by
uruchamiał się podczas każdego startu komputera.
Listing 7.3: Dodawanie vdr do domyślnego poziomu uruchomieniowego |
# rc-update add vdr default
|
8.
Problemy
Uwaga:
W przypadku problemów zawsze można zapytać kogoś na kanale #gentoo-vdr lub rozejrzeć się na
forum.
|
Zawartość tego dokumentu jest rozpowszechniana na podstawie licencji Creative Commons -
Attribution / Share Alike.
|