Tuner dekoder DVB-T w Linuksie

Marx
Posty: 153
Rejestracja: 17 maja 2011, o 13:36
Odbiornik: pecet
Nadajnik - obiekt nadawczy: Kosztowy?

Re: Odp: Tuner DVB-T dla LINUX

Post autor: Marx »

Trzeba zgłosić błąd w sterowniku wraz że szczegółowym opisem, załączyć logi i liczyć na to że maintainer sterownika to poprawi.

Neonówka
Posty: 62
Rejestracja: 17 sierpnia 2012, o 20:46

Re: Tuner DVB-T dla LINUX

Post autor: Neonówka »

Problem rozwiązałem:

1. Zainstalowałem Minta 14
2. Zainstalowałem ten kernel:

Kod: Zaznacz cały

Linux userpc-desktop 3.7.0-030700-generic #201212102335 SMP Tue Dec 11 04:36:24 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Teraz działa bez żadnych kombinacji. Komputer mogę uruchamiać z włożonym tunerem.

Marx
Posty: 153
Rejestracja: 17 maja 2011, o 13:36
Odbiornik: pecet
Nadajnik - obiekt nadawczy: Kosztowy?

Re: Odp: Tuner DVB-T dla LINUX

Post autor: Marx »

Ja mam póki co tylko 3.6 ale dzięki za informację że 3.7 naprawia ten błąd.

Awatar użytkownika
JerzyG
Posty: 213
Rejestracja: 12 lutego 2011, o 19:27
Odbiornik: MSI DIGIvox mini3,
Overmax OV-TN-06
Samsung 46"
Instalacja antenowa: Siatka Ryniak + Symetryzator na 530, 610, 658 MHz
Nadajnik - obiekt nadawczy: Mikstat & Śrem

Re: Tuner DVB-T dla LINUX

Post autor: JerzyG »

takie info, nie trzeba zmieniać OS z Ubuntu z Unity na Mint żeby mieć normalny Pulpit.
wystarczy doinstalować środowisko Cinnamon http://cinnamon.linuxmint.com/
Ma dolny i górny pasek :D

Taki mały Offtop

Marx
Posty: 153
Rejestracja: 17 maja 2011, o 13:36
Odbiornik: pecet
Nadajnik - obiekt nadawczy: Kosztowy?

Re: Odp: Tuner DVB-T dla LINUX

Post autor: Marx »

Zainstalowałem 3.7 i faktycznie nie trzeba robić żadnych sztuczek z odłączeniem tunera na czas startu. To bardzo dobra informacja!

seanowen

Re: Tuner DVB-T dla LINUX

Post autor: seanowen »

Witam wszystkich serdecznie,

na początek chciałbym wszystkim podziękować za informacje jakie znalazłem na tym forum, które ułatwiły mi wybór tunera. Wybór padł na MT4168.

Tuner działa u mnie na systemie Arch.

Kod: Zaznacz cały

[user@myasus ~]$ uname -a
Linux myasus 3.6.11-1-ARCH #1 SMP PREEMPT Tue Dec 18 12:58:46 CET 2012 i686 GNU/Linux
Musiałem tylko zainstalować v4l-dvb.

Kod: Zaznacz cały

http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers
No i oczywiście należało przygotować firmware i wkopiować do /lib/firmaware.
Tak jak to pisał między innymi JerzyG.

Działa także dołączony do zestawu pilot. W tym celu użyłem LIRC'a.

Kod: Zaznacz cały

[monia@myasus ~]$ ls -l /dev/input/by-id/    
total 0
lrwxrwxrwx 1 root root 9 Jan 20 00:39 usb-ITE_Technologies__Inc._USB_Deivce-if01-event-kbd -> ../event4

Kod: Zaznacz cały

[monia@myasus ~]$ cat /etc/conf.d/lircd.conf 
#
# Parameters for lirc daemon
#

LIRC_DEVICE="/dev/input/by-id/usb-ITE_Technologies__Inc._USB_Deivce-if01-event-kbd"
LIRC_DRIVER="devinput"
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/lirc/lircd.conf"
Wykorzystałem dostępne w necie pliki konfiguracyjne.

Kod: Zaznacz cały

pobrałem http://lirc.git.sourceforge.net/git/gitweb.cgi?p=lirc/lirc;a=blob_plain;f=remotes/devinput/lircd.conf.devinput;hb=HEAD
i zapisałęm w /etc/lirc/lircd.conf
do tego

Kod: Zaznacz cały

[monia@myasus ~]$ sudo modprobe evdev
i start lirc'a
[monia@myasus ~]$ sudo /etc/rc.d/lircd start
a to przykładowe reakcje na naciskane klawisze na pilocie

Kod: Zaznacz cały

[monia@myasus ~]$ irw
000000008001002a 00 KEY_LEFTSHIFT devinput
00000000800100f0 00 KEY_UNKNOWN devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
00000000800100f0 00 KEY_UNKNOWN devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
00000000800100f0 00 KEY_UNKNOWN devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
00000000800100f0 00 KEY_UNKNOWN devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
00000000800100f0 00 KEY_UNKNOWN devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
000000008001001e 00 KEY_A devinput
000000008001008c 00 KEY_CALC devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
000000008001001e 00 KEY_A devinput
000000008001008c 00 KEY_CALC devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
0000000080010030 00 KEY_B devinput
00000000800100ad 00 KEY_REFRESH devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
0000000080010030 00 KEY_B devinput
00000000800100ad 00 KEY_REFRESH devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
0000000080010020 00 KEY_D devinput
000000008001008e 00 KEY_SLEEP devinput
000000008001002a 00 KEY_LEFTSHIFT devinput
000000008001002e 00 KEY_C devinput
0000000080010098 00 KEY_COFFEE devinput
pozdrawiam serdecznie!

Neonówka
Posty: 62
Rejestracja: 17 sierpnia 2012, o 20:46

Re: Tuner DVB-T dla LINUX

Post autor: Neonówka »

Do seanowen:
Jakim progrmem odtwarzasz tv? Próbowałeś używać pilota na xbmc?

seanowen

Re: Tuner DVB-T dla LINUX

Post autor: seanowen »

Używam VLC (sporadycznie kaffeine, gdy chcę jednocześnie nagrywać coś z drugiego tunera).

Poza tym używałem tvheadend, żeby na android'owych smartfonach też telewizję pooglądać, ale to raczej jako zaspokojenie swojej ciekawości jak to wszystko w praktyce działa.

Przy okazji wspomnę, że nie działa mi program w_scan tak jak powinien. (Objawia się to tym, że wyszukuje mi tylko stacje z dwóch mulitipleksów). Dlatego do stworzenia listy programów dla VLC wykorzystałem tvheadend. Dodałem do niego ręcznie częstotliwości mulitpleksów, pozostałe ustawienia na AUTO.

Następnie przy pomocy python'owego skryptu, wyciągnąłem z tvheadend wyszukane programy.

Kod: Zaznacz cały

#!/usr/bin/env python
#author: seanowen
import os
tvheadend_path = os.path.join(os.getenv("HOME"),
                              '.hts/tvheadend/')
data = {'dvbmuxes':[],'dvbtransports':[]}
for i, dir_name in enumerate(data.keys()):
    for r,d,files in os.walk(os.path.join(tvheadend_path, dir_name)):
        for f in files:
            a = eval( open(os.path.join(r,f)).read() )
            a['filename'] = f
            if i == 1:
                a['freq'] = f[-14:-5]
            data[dir_name].append(a)
d = set()
for channel in data['dvbtransports']:
    d.add('''#EXTINF:0,{channelname}
#EXTVLCOPT:program={service_id}
dvb-t://frequency={freq}'''.format(**channel))
out = open(os.path.join(os.getenv("HOME"),'tv.m3u'), 'w+')
out.write('#EXTM3U\n')
out.write("\n".join(d))
out.close()
w katalogu domowym powinien pojawić się plik tv.m3u

Co do XBMC, to nie używałem z pilotem.
Ale myślę, że skoro lirc dogaduje się z tunerem (pilotem), to kwestia tylko zmapowania klawiszy. W wolnym czasie sprawdzę to. W każdym bądź razie na wiki xbmc widziałem opis konfiguracji lirc + xbmc.
http://wiki.xbmc.org/index.php?title=How-to:Setup_Lirc

pozdrawiam

Neonówka
Posty: 62
Rejestracja: 17 sierpnia 2012, o 20:46

Re: Tuner DVB-T dla LINUX

Post autor: Neonówka »

Ja używam tvheadend+xbmc. Na starym kernelu w_scan też tylko wyszukiwał dwa muxy. Po tym, jak zainsalowałem nowszy kernel

Kod: Zaznacz cały

Linux userpc 3.7-1.slh.3-aptosid-amd64 #1 SMP PREEMPT Wed Jan 9 21:28:01 UTC 2013 x86_64 GNU/Linux
w_scan wyszukał wszystkie trzy muxy. W czasie oglądania filmu w xbmc mogę nagrywać drugi kanał, ale tylko z tego samego muxu.

Marx
Posty: 153
Rejestracja: 17 maja 2011, o 13:36
Odbiornik: pecet
Nadajnik - obiekt nadawczy: Kosztowy?

Re: Odp: Tuner DVB-T dla LINUX

Post autor: Marx »

Mam trochę inną konfigurację lirc w debianie. Na podstawie czego robiłeś konfigurację tego pilota?
No cóż, wszystko ustawiłem tak jak w opisie, pilot sygnał wysyła bo sprawdzałem aparatem kompaktowym, lirc się ładuje poprawnie, niestety co bym nie kliknął na pilocie - irw nic nie zwraca. Tak jakby czujnik w pilocie ten z boku był uszkodzony

seanowen

Re: Tuner DVB-T dla LINUX

Post autor: seanowen »

a skąd brałeś v4l-dvb? co do mojej konfiguracji, posiłkowałem się wiki arch'a
https://wiki.archlinux.org/index.php/LIRC

czujnik raczej nie jest uszkodzony, też miałem takie wrażenie początkowo u mnie, dopóki nie zaczęło wszystko ładnie działać

pzdr

giaur500
Posty: 1693
Rejestracja: 1 lipca 2011, o 13:42

Re: Tuner DVB-T dla LINUX

Post autor: giaur500 »

Ale po co wam ten lirc? Przecież tuner ma zdefiniowany keymap (przynajmniej it9135 ma, więc inne pewnie analogicznie) i odpowiednie zdarzenia są wysyłane od razu, jednym słowem pilot działa jak klawiatura. Dodatkowo keymap moze sobie zmodyfikować wg potrzeb - ja zrobiłem tak, że zmieniłem keymap w ten sposób, żeby pasowało to do skrótów klawiszowych w xbmc i wszystko obsługuję pilotem, działa bardzo dobrze. Nie potrzeba lirca żeby zmapować klawisze, wystarczy edytować plik keymap dostarczony ze sterownikiem tunera.

To, co działa bez żadnej konfiguracji to na pewno regulacja głośności i numery, zresztą - czy i jakie zdarzenia są wysyłane to można sobie evtestem sprawdzić.

seanowen

Re: Tuner DVB-T dla LINUX

Post autor: seanowen »

Mi osobiście po to aby zrezygnować z dostarczonego do zestawu MT4168 pilota http://www.eltkom.pl/res/foto/1209/Medi ... 4168-2.jpg i wykorzystać pilot uniwersalny Grundig 7 in 1 http://nokautimg3.pl/p-64-03-640355e5fb ... rc-7-7.jpg

pozdrawiam!

giaur500
Posty: 1693
Rejestracja: 1 lipca 2011, o 13:42

Re: Tuner DVB-T dla LINUX

Post autor: giaur500 »

Do tego tez nie potrzebujesz lirca. Ja nie korzystam z dołączonego pilota tylko z uniwersalnego, kody możesz wklepać od razu do konfiguracji keymaps

Marx
Posty: 153
Rejestracja: 17 maja 2011, o 13:36
Odbiornik: pecet
Nadajnik - obiekt nadawczy: Kosztowy?

Re: Odp: Tuner DVB-T dla LINUX

Post autor: Marx »

Gdzie te keymaps są i jakim programem to testować? Rozumiem że lirc mam wyłączyć?

giaur500
Posty: 1693
Rejestracja: 1 lipca 2011, o 13:42

Re: Tuner DVB-T dla LINUX

Post autor: giaur500 »

To bardzo proste. Po pierwsze, trzeba skonfigurować jakiej keymapy chcesz używać z twoim tunerem. Robisz to w pliku /etc/rc_maps.cfg, przykład dla ite9135 - dodany wpis do driver table (jeśli jeszcze go tam nie ma):

Kod: Zaznacz cały

*	rc-it913x-v2		 /lib/udev/rc_keymaps/it913x-v2
I potem przykładowy plik /lib/udev/rc_keymaps/it913x-v2 z mapowaniem klawiszy - u mnie wygląda mniej więcej tak (jak widać, mam tu skonfigurowaną obsługę 2 różnych pilotów):

Kod: Zaznacz cały

# table it913x-v2, type: NEC

0x807e09 KEY_TAB
0x807e42 KEY_E
0x807e04 KEY_C
0x807e05 KEY_BACKSPACE
0x807e08 KEY_PLAYPAUSE
0x807e07 KEY_X
0x807e02 KEY_COMMA
0x807e06 KEY_DOT
0x807e43 KEY_I
0x807e13 KEY_L
0x807e01 KEY_K
0x807e41 KEY_S
0x807e0f KEY_F
0x807e0a KEY_R
0x807e11 KEY_ENTER
0x807e14 KEY_MUTE
0x807e12 KEY_VOLUMEUP
0x807e15 KEY_VOLUMEDOWN
0x807e0b KEY_LEFT
0x807e0d KEY_RIGHT
0x807e0c KEY_UP
0x807e0e KEY_DOWN
0x807e10 KEY_ESC
0x807e03 KEY_HOMEPAGE
0x807e00 KEY_O
0x807e44 KEY_Z
0x807e16 KEY_1
0x807e17 KEY_2
0x807e18 KEY_3
0x807e19 KEY_4
0x807e1a KEY_5
0x807e1b KEY_6
0x807e1c KEY_7
0x807e1d KEY_8
0x807e1e KEY_9
0x807e1f KEY_0

0x80640d KEY_MUTE
0x806440 KEY_I
0x80641f KEY_O
0x806419 KEY_R
0x806416 KEY_PLAYPAUSE
0x806418 KEY_F
0x806417 KEY_X
0x806448 KEY_C
0x8064d3 KEY_E
0x80640e KEY_VOLUMEUP
0x80640f KEY_VOLUMEDOWN
0x806445 KEY_ENTER
0x806442 KEY_LEFT
0x806441 KEY_RIGHT
0x806410 KEY_UP
0x806411 KEY_DOWN
0x806401 KEY_1
0x806402 KEY_2
0x806403 KEY_3
0x806404 KEY_4
0x806405 KEY_5
0x806406 KEY_6
0x806407 KEY_7
0x806408 KEY_8
0x806409 KEY_9
0x806400 KEY_0
0x80644a KEY_ESC
0x8064cf KEY_V
0x806449 KEY_S
0x806450 KEY_GRAVE
0x8064df KEY_TAB
0x80640a KEY_UP
0x80640b KEY_DOWN
0x806415 KEY_T
Prawdopodobnie będziesz już miał w systemie plik z mapowaniem klawiszy, z ustawionymi kodami standardowego pilota. Możesz jednak sobie poustawiać kody i klawiszy takie jakie chcesz, pasujące do twojego pilota uniwersalnego - albo nawet nie uniwersalego, tylko jakiegokolwiek działającego z tunerem.

Kody twojego pilota możesz sprawdzić programem evtest. Uruchamiasz program, wybierasz urządzenie z listy, wciskasz klawisze pilota i spisujesz kody. U mnie tuner przedstawia się jako

Kod: Zaznacz cały

/dev/input/event5:      ITE 9135(9005) Generic 
Po wybraniu go z listy wciskając pilota widze kody które pilot wysyła, przykład:

Kod: Zaznacz cały

Event: time 1359309504.066771, type 4 (EV_MSC), code 4 (MSC_SCAN), value 80640e
CZyli przycisk miał kod 80640e. Jesli pilot dołączony do tunera działa, a uniwersalny nie, to wypróbuj różne ustawienia uniwersalnego - są różne protokoły transmisji i różne zakresy kodów, a czujnik IR w tunerze nie wszystkie obsługuje.

Marx
Posty: 153
Rejestracja: 17 maja 2011, o 13:36
Odbiornik: pecet
Nadajnik - obiekt nadawczy: Kosztowy?

Re: Odp: Tuner DVB-T dla LINUX

Post autor: Marx »

U mnie zima tak jak na lirc. Evtest się uruchamia, wskazuje mu event 3 czyli ite technologies, jakąś keymape domyślną wyświetla, ale jak naciskam na pilocie to nic się nie wyświetla, mimo iż zbliżam pilota do odbiornika nawet na styk.
Albo driver w kernelu 3.7 jest skopany albo odbiornik w tunerze.
Keymape w debianie też mam pewnie w innym miejscu, bo we wskazanych nie mam.

giaur500
Posty: 1693
Rejestracja: 1 lipca 2011, o 13:42

Re: Tuner DVB-T dla LINUX

Post autor: giaur500 »

Nie, bo ja też mam kernel 3.7 i też mam debiana. Jeżeli evtest nie reaguje to znaczy że albo pilot nie działa, albo czujnik w tunerze nie działa. Oczywiście uruchamiasz evtest jako root i testujesz oryginalnego pilota od tunera, a nie jakiegoś innego? Tak jak pisałem wcześniej, inny może być nie obsługiwany, bo jest kilka różnych protokołów, a tuner obsługuje tylko jeden z nich.

Jeśli nie masz keymapy ani pliku z konfiguracją keymaps, to zainstaluj pakiet ir-keytable, bez niego masz tylko domyślne mapowanie i nie możesz nic zmieniać. Jednak niezależnie od keymapy evtest powinien pokazywać kody pilota. Możesz oblukać sobie jak to działa wybierając inne urządzenie z listy, np klawiaturę albo mysz

Neonówka
Posty: 62
Rejestracja: 17 sierpnia 2012, o 20:46

Re: Tuner DVB-T dla LINUX

Post autor: Neonówka »

Potwierdzam to, co napisał Marx, że pilot nie reaguje. Zainstalowałem na Debianie tylko evtest i
oto wynik -> http://wklej.org/id/940828/. Żaden klawisz nie jest aktywny.
Kernel 3.7-1.slh.3-aptosid-amd64. Na starszej wersji kernela jest ta sama sytuacja. Pilot nie jest zepsuty,bo spawdzałem na wind.xp.

giaur500
Posty: 1693
Rejestracja: 1 lipca 2011, o 13:42

Re: Tuner DVB-T dla LINUX

Post autor: giaur500 »

Ciekawe. A jaki dokładnie masz tuner? Ja mam WandTV i tu nie ma problemów. Reaguje pilot fabryczny, pilot uniwersalny i niektóre inne piloty od innych urządzeń. Jeśli na xp działa to faktycznie kwestia sterownika - ja na waszym miejscu bym zapytał programistę, który rozwija sterownik. Kernel mam ten sam (też z aptosida).

A czy evtest reaguje na inne urządzenia? Np. na klawiaturę.

Zablokowany