Obsługa pilota NOT LV5T Deluxe w Linuksie
Ostatnio pisałem o popularnym tunerze DVB-T Not Only TV i jego działaniu w systemie Linux. Zaraz po podłączeniu dongla nie działa jedynie pilot. Uruchomienie obsługi tego jakże przydatnego urządzenia zawarłem poniżej. Opis jest dość uniwersalny i można go użyć w przypadku innych tunerów DVB-T jak i innych pilotów. Pracy nie jest dużo, a możliwość przełączania kanałów czy regulacji głośności bez ruszania się z wygodnej kanapy – bezcenna :).
Układ rtl28xxu i pilot
Chip tunera LV5T Deluxe to RTL2832U firmy Realtek posiadający obsługę pilotów w wielu standardach, m.in: RC6, RC-5, NEC, Sony, SIRC. Na bocznej części obudowy zmajduje się dioda odbierająca sygnały z pilota nadawane w podczerwieni. Linux Mint posiada niezbędny sterownik, który zapewnia obsługę części DVB-T jak i odbiornika podczerwieni. Brakuje tylko przypisanej mapy klawiszy, czyli komend pilota emulujących wciśnięcie klawisza. Mówi o tym komunikat:
Registered IR keymap rc-empty
Nie jest to wielki problem, a zaleta taka, że można skorzystać z jakiegokolwiek pilota nadającego w standardzie obsługiwanym przez chip.
Na kłopoty ir-keytable
Generalnie monopol na obsługę pilotów w linuksie ma lirc, ale coraz częściej można się obyć bez niego. Tak też będzie w naszym przypadku. Prace zaczynamy od zainstalowania ir-keytable, czyli:
sudo apt-get install ir-keytable
Teraz można sprawdzić, jak jest widziany nasz wbudowany odbiornik pilota:
sudo ir-keytable
U mnie wyglądało to tak:
W tej chwili interesuje mnie to, że mój odbiornik to rc0. Teraz sprawdzimy, czy działa pilot dołączony do zestawu, wpisujemy w terminalu:
sudo ir-keytable -s rc0 -t
i wciskamy guziki na pilocie, celując mniej więcej w tuner, powinny pokazać się odbierane kody:
Naciskamy ctrl+c by wyjść z trybu odbierania komend. Teraz poszukamy gotowych map klawiszy z kodami nadawanymi przez naszego pilota:
sudo grep -i 2bd18 /lib/udev/rc_keymaps/*
czyli szukamy ciągu 2bd18 we wszystkich plikach znajdujących się w /lib/udev/rc_keymaps/. Wynik poszukiwań to:
Do dołączonego wraz z tunerem pilota pasują dwie mapy: terratec_slim i total_media_in_hand. Otworzyłem sobie obydwa pliki w edytorze tekstu: terratec_slim zawiera mapę 28 klawiszy, total_media_in_hand ma 35 definicji – dokładnie tyle ile posiada mój pilot. Wystarczy więc przypisać tę mapę do naszego odbiornika:
sudo ir-keytable -s rc0 -w /lib/udev/rc_keymaps/total_media_in_hand
Wynik działania powinien wyglądać mniej więcej tak:
I już teraz działa np. regulacja głośności w systemie. By nasze działania były trwałe, trzeba przypisać tabelę kodów do sterownika rtl28xxu. W tym celu edytujemy plik rc_maps.cfg znajdujący się w /etc/, na końcu dopisujemy linijkę:
dvb_usb_rtl28xxu * total_media_in_hand #jakiś komentarz
W prosty sposób można sprawdzić, przypisanie klawiszy do przycisków pilota, wystarczy wpisać:
sudo ir-keytable -s rc0 -t
Naciskając guziki na pilocie otrzymamy kod jak i przypisany do niego klawisz. Np. KEY_ESC zostanie zinterpretowane jako wciśnięcie escape, KEY_RIGHT to strzałka w prawo, KEY_S to s itd. Pewien standard nazw klawiszy wyznacza Microsoftowy RC6, by je podejrzeć, wystarczy otworzyć plik /lib/udev/rc6_mce.
Teraz wystarczy skonfigurować skróty klawiaturowe w naszej ulubionej aplikacji, tak by nasz pilot poprawnie nią sterował, lub zmodyfikować (albo utworzyć nową) mapę klawiszy, przypisując te, zdefiniowane w aplikacji.
Mój pilot zaczął działać pod linuksem dzięki opisowi, jaki znalazłem na stronach wiki linuxtv.org.
Szkoda iż pilot, steruje tylko VOL systemu, a nie samej aplikacji. Czy to może da się gdzieś definiować?
Da się – przedostatnie zdanie we wpisie.
Wpisuję: “Registered IR keymap rc-empty” i otrzymuję: “Registered: nie znaleziono polecenia”
Co mam nie tak?
Bo tego się nie wpisuje, to fragment loga.
Cześć,
mam taki komunikat:
wojtek@wojtek-linux /etc $ sudo ir-keytable -s rc0 -w /lib/udev/rc_keymaps/dtt200u
Read dtt200u table
Wrote 18 keycode(s) to driver
/sys/class/rc/rc0//protocols: Invalid argument
Couldn’t change the IR protocols
Coś jest nie tak?
wpisz w google Couldn’t change the IR protocols, raczej znajdziesz rozwiązanie
Cześć. Dlaczego wszystkie polecenia które dodaję są w porządku, jak u Ciebie, a pilot w ogóle nie reaguje z systemem? Pod terminalem dostaje zwrot, że sygnał dociera, ale np. volume+ nie reaguje w systemie, w sensie, że nie podgłasza się dźwięk. Niemniej bardzo dziękuję za Twoje artykuły, zarówno skonfigurowałem kartę TV dzięki Twoim poradą jak i pilot w 70%. 🙂
Już wszystko ok, wystarczyło uruchomić ponownie komputer. Bardzo dziękuję, pilot działa. 🙂