Portál AbcLinuxu, 24. dubna 2024 01:19


Dotaz: Dálkové ovládání od jiné TV karty, bude fungovat?

Prcek avatar 31.3.2020 22:24 Prcek | skóre: 43 | Jindřichův Hradec / Brno
Dálkové ovládání od jiné TV karty, bude fungovat?
Přečteno: 527×
Odpovědět | Admin
Ahoj.

Kvůli přechodu na DVB-T2 jsem si pořídil na Aliexpressu DVB-T2 kartu Astrometa (verze 2018). Ta má ale mizerné dálkové ovládání, tak bych ho chtěl nahradit dálkáčem od mé původní TV karty AVerMedia TV Volar HD Nano. Vypadá to, že je to MCE ovladač.

TL;DR Jde to vůbec?

Zkouším to pomocí LIRC na Gentoo. Moje dosavadní pokusy selhaly. Začal jsem spuštěním mode2, při mačkání tlačítek to vypisuje pulzy a mezery. To mě utvrzuje v tom, že senzor na TV kartě ten cizí ovladač vidí.

Dále jsem chtěl pomocí irrecord vytvořit konfigurační soubor pro LIRC. Jestli to dobře chápu, měl bych použít buď příkaz irrecord -H devinput -d /dev/input/event10, nebo irrecord -H default -d /dev/lirc0. Bohužel ani jedna verze nefunguje (nevypisuje tečky atd.).

Ale fungoval mi kříženec: irrecord -H devinput -d /dev/lirc0. Ten tečky vypisoval a vytvořil mi konfigurační soubor. Bohužel je tento soubor nejspíš k ničemu, protože většině tlačítek přiřadil stejný kód (na což si pak stěžuje v logu: Multiple values for same code):
begin remote

  name  aver
  driver devinput
  bits           64
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  gap          215914
  toggle_bit_mask 0x0
  frequency    38000

      begin codes
          KEY_RECORD               0x0000000000000000
          KEY_PAUSE                0x0000000000000000
          KEY_STOP                 0x058E0100030025E6
          KEY_FASTREVERSE          0x058E0100030025E6
          KEY_PLAY                 0x055B0100030025E6
          KEY_FASTFORWARD          0x058E0100030025E6
          KEY_PREVIOUS             0x058E0100030025E6
          KEY_NEXT                 0x055B0100030025E6
          BTN_START                0x058E0100030025E6
          KEY_BACK                 0x055B0100030025E6
          KEY_INFO                 0x055B0100030025E6
          KEY_LEFT                 0x058E0100030025E6
          KEY_UP                   0x055B0100030025E6
          KEY_RIGHT                0x058E0100030025E6
          KEY_DOWN                 0x058E0100030025E6
          KEY_OK                   0x058E0100030025E6
          KEY_VOLUMEUP             0x058E0100030025E6
          KEY_VOLUMEDOWN           0x058E0100030025E6
          KEY_MUTE                 0x058E0100030025E6
          KEY_CHANNELUP            0x05C10100030025E6
          KEY_CHANNELDOWN          0x055B0100030025E6
          KEY_1                    0x058E0100030025E6
          KEY_2                    0x055B0100030025E6
          KEY_3                    0x055B0100030025E6
          KEY_4                    0x058E0100030025E6
          KEY_5                    0x055B0100030025E6
          KEY_6                    0x05C10100030025E6
          KEY_7                    0x058E0100030025E6
          KEY_8                    0x058E0100030025E6
          KEY_9                    0x058E0100030025E6
          KEY_0                    0x055B0100030025E6
          KEY_NUMERIC_POUND        0x058E0100030025E6
          KEY_NUMERIC_STAR         0x058E0100030025E6
          KEY_CLEAR                0x055B0100030025E6
          KEY_TEXT                 0x055B0100030025E6
          KEY_CONTEXT_MENU         0x055B0100030025E6
          KEY_ENTER                0x058E0100030025E6
          KEY_RED                  0x058E0100030025E6
          KEY_GREEN                0x055B0100030025E6
          KEY_YELLOW               0x058E0100030025E6
          KEY_BLUE                 0x058E0100030025E6
      end codes

end remote
Zařízení /dev/lirc0 je vytvořené a když pustím cat /dev/lirc0 a mačkám tlačítka, tak to vypisuje nějaké blbosti do konzole. Když to stejné udělám se souborem /dev/input/event10, tak se nic nevypisuje (ale nevím, jestli je to chyba nebo ne).

Výpis příkazu mode2 --driver=default --device=auto
Using driver default on device auto
Trying device: /dev/lirc0
Using device: /dev/lirc0
Warning: Running as root.
space 16777215
pulse 1422
pulse 9702
space 1057609
pulse 1422
pulse 9702
space 850245
pulse 1422
pulse 9702
space 641158
pulse 1473
pulse 9702
space 225652
pulse 1371
pulse 9702
space 849827
pulse 1473
pulse 9702
space 849552
pulse 1473
pulse 9702
space 225772
pulse 1371
pulse 9702
space 1057945
pulse 1473
pulse 9702
Pro jistotu jsem to zkusil i pomocí mode2 --driver=devinput --device=/dev/input/event10, ale takto se nevypisuje vůbec nic. Ten kříženec mode2 --driver=devinput --device=/dev/lirc0 skončí předčasně s chybou:
Partial read 12 bytes on /dev/lirc0
Výpis dmesg:
[30241.329360] usb 1-1: new high-speed USB device number 4 using ehci-pci
[30241.356999] usb 1-1: New USB device found, idVendor=15f4, idProduct=0131, bcdDevice= 1.00
[30241.357007] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[30241.357011] usb 1-1: Product: dvbt2
[30241.357015] usb 1-1: Manufacturer: astrometadvbt2
[30241.364216] usb 1-1: dvb_usb_v2: found a 'Astrometa DVB-T2' in warm state
[30241.504780] usb 1-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[30241.504790] dvbdev: DVB: registering new adapter (Astrometa DVB-T2)
[30241.507935] i2c i2c-5: Added multiplexed i2c bus 6
[30241.507937] rtl2832 5-0010: Realtek RTL2832 successfully attached
[30241.507951] i2c i2c-5: cxd2841er_attach(): I2C adapter 000000000f346f6c SLVX addr 6e SLVT addr 6c
[30241.512169] i2c i2c-5: cxd2841er_attach(): attaching CXD2837ER DVB-C/T/T2 frontend
[30241.512170] i2c i2c-5: cxd2841er_attach(): chip ID 0xb1 OK.
[30241.512173] usb 1-1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[30241.512200] usb 1-1: DVB: registering adapter 0 frontend 1 (Sony CXD2837ER DVB-T/T2/C demodulator)...
[30241.512241] r820t 6-003a: creating new instance
[30241.522590] r820t 6-003a: Rafael Micro r820t successfully identified
[30241.522602] r820t 6-003a: attaching existing instance
[30241.557125] r820t 6-003a: Rafael Micro r820t successfully identified
[30241.573093] Registered IR keymap rc-astrometa-t2hybrid
[30241.573177] rc rc0: Astrometa DVB-T2 as /devices/pci0000:00/0000:00:12.2/usb1/1-1/rc/rc0
[30241.573259] rc rc0: lirc_dev: driver dvb_usb_rtl28xxu registered at minor = 0, raw IR receiver, no transmitter
[30241.573385] input: Astrometa DVB-T2 as /devices/pci0000:00/0000:00:12.2/usb1/1-1/rc/rc0/input21
[30241.573551] usb 1-1: dvb_usb_v2: schedule remote query interval to 200 msecs
[30241.582325] usb 1-1: dvb_usb_v2: 'Astrometa DVB-T2' successfully initialized and connected
[30241.623874] elogind-daemon[2773]: Watching system buttons on /dev/input/event10 (Astrometa DVB-T2)
Výpis ir-keytable:
Found /sys/class/rc/rc0/ with:
        Name: Astrometa DVB-T2
        Driver: dvb_usb_rtl28xxu
        Default keymap: rc-astrometa-t2hybrid
        Input device: /dev/input/event10
        LIRC device: /dev/lirc0
        Attached BPF protocols: Funkce není implementována
        Supported kernel protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp imon rc-mm 
        Enabled kernel protocols: lirc 
        bus: 3, vendor/product: 15f4:0131, version: 0x0100
        Repeat delay = 500 ms, repeat period = 125 ms
Máte někdo zkušenosti se zprovozněním dálkového ovládání na jiné TV kartě, než pro kterou bylo určeno? Může to vůbec fungovat?

Díky všem, co dočetli až sem :-).
Člověk je takový, jak vypadá... A já vypadám jako pravá, nefalšovaná děvka!!!
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.4.2020 09:32 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jiné ovladače DO fungují většinou.

Problém bývá když používá jiný kmitočet (modulaci) který přijímač třeba odfiltruje a pak to čte nekorektně a hází to chyby.

Takže jako první bych nakonfiguroval originál ovladač, třeba pouze pár tlačítek aby jsi ověřil že to funguje a máš lirc nastaven správně.

A potom bych skoušel ten cizí zda čte kody OK.

Další věc jaký konfigurák máš u lircd když jsem přecházel na novější verzi tak v lirc_options.conf jsem měl řádku:
device = auto
A s tou to nefungovalo i když se tvářilo vše OK musel jsem tam nastavit natvrdo zařízení. Než jsem na to přišel tak jsem se pěkně potrápil proč to nefunguje když to kody načetlo při konfiguraci OK a do aplikace to nic neposílalo.....
# These are the default options to lircd, if installed as
# /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8)
# manpages for info on the different options.
#
# Some tools including mode2 and irw uses values such as
# driver, device, plugindir and loglevel as fallback values
# in not defined elsewhere.

[lircd]
nodaemon        = False
driver          = default
device          = /dev/lirc0
output          = /var/run/lirc/lircd
pidfile         = /var/run/lirc/lircd.pid
plugindir       = /usr/lib/arm-linux-gnueabihf/lirc/plugins
permission      = 666
allow-simulate  = No
repeat-max      = 600
#effective-user =
#listen         = [address:]port
#connect        = host[:port]
#loglevel       = 6
#release        = true
#release_suffix = _EVUP
#logfile        = ...
#driver-options = ...

[lircmd]
uinput          = False
nodaemon        = False

# [modinit]
# code = /sbin/modprobe gpio_ir
# code1 = /usr/bin/setfacl -m g:lirc:rw /dev/uinput
# code2 = ...
Prcek avatar 1.4.2020 13:10 Prcek | skóre: 43 | Jindřichův Hradec / Brno
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Ten originální ovladač funguje, kódy tlačítek se vypisují. Ovládání hlasitosti dokonce funguje přímo s prostředím KDE, takže podobně jako když zmáčknu mute na klávesnici tak to funguje stejně i s tím originálním dálkáčem.

V konfiguraci LIRC mám /dev/lirc0, ale zkoušel jsem i to auto, popřípadě /dev/input/event10.

Mě trochu zaráží ten výpis mode2, kde je jedna mezera a dva pulzy - není to nestandardní? Čekal bych jeden pulz (i co jsem dohledal na googlu, tak lidi mívaj jen jeden pulz). Trochu to potvrzuje i výsledek irrecord, když mi většině tlačítek přiřadil stejný (zřejmě nesmyslný) kód.

Možná je ten Avermedia dálkáč tak jiný, že to rozjet nepůjde :-(.
Člověk je takový, jak vypadá... A já vypadám jako pravá, nefalšovaná děvka!!!
1.4.2020 17:12 LarryL | skóre: 27
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Také jsem zprovozňoval jiné DO v LibreElecu. Možná jen zopakuji co už víš, ale přece. Co vím tak jsou 2 cesty:

1) Použít již hotový konfigurák DO. V Gentoo by to měly být konfiguráky v balíčku v4l-utils. Po nainstalování by měly být v /usr/lib/udev/rc_keymaps/

Pokud něco z toho je tvůj DO ovladač, tak pak stačí zajistit, aby se daný configurák načetl (spároval s ovladačem v kernelu) při startu OS. V LE se to dělá příkazem:

ir-keytable -c -w /usr/lib/udev/rc_keymaps/avermedia_rm_ks

vloženým do souboru autostart.sh.

2) Vytvořit vlastní konfigurák pro DO (o to se snažíš ty). Na LE takto:

irrecord -d /dev/lirc0 /storage/.config/lircd.conf

Pokud při startu OS existoval lircd.conf, tak se automaticky spustil daemon lircd. Jinak se spustil jen eventlircd.

IR receiver by měl podporovat protokol, který používá tvůj DO - na LE zjišťuji příkazem ir-keytable

Bohužel je tento soubor nejspíš k ničemu, protože většině tlačítek přiřadil stejný kód (na což si pak stěžuje v logu: Multiple values for same code)
To je problém. Na LE je doporučováno, že se před zachytáváním tlačítek má vypnout kodi a eventlircd:

systemctl stop kodi

systemctl stop eventlircd

Tento návod je sice outdated, ale používají tam irw. Zkus jaké ti to bude zachytávat klávesy. Nebo zkus

ir-keytable -p rc-5 -t

(místo rc-5 dej správný protokol). Celý návod na LE zde, třeba pomůže. Pokud ti irw nebo ir-keytable bude zachytávat správné kódy, tak by mělo jen stačit je nakopírovat do toho zmršeného konfiguráku (lircd.conf).

Ovládání hlasitosti dokonce funguje přímo s prostředím KDE, takže podobně jako když zmáčknu mute na klávesnici tak to funguje stejně i s tím originálním dálkáčem.
Jo to se mi taky stávalo. Když jsem s tím tenkrát laboroval, tak po příkazu "killall eventlircd" fungovaly jen šipky a KEY_ENTER a možná pár dalších jako Volume, Mute, KEY_ESC. Ostatní klávesy nefungovaly. Vypadáto, že se ti načetl výchozí konfigurák pro originální DO a proto ti na tom Avermediovském DO fungují jen některé klávesy (ty nejzákladnější).
Prcek avatar 1.4.2020 17:58 Prcek | skóre: 43 | Jindřichův Hradec / Brno
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Díky za odpověď. Balíček v4l-utils mám nainstalovaný a ty keymapy také. Jenom jsem tam neviděl žádnou, která by odpovídala tomu mému Averu. Zkoušel jsem rc6_mce, protože ten dálkáč je očividně typu "Media Center Edition" (má ta 4 barevná tlačítka úplně dola a taky tlačítko s logem Windows). No pro jistotu zkusím všechny keymapy aver jednu po druhé, a taky všechny co obsahují v názvu mce, třeba nějaká bude fungovat.

Co se týká ir-keytable -t nebo irw, tak ani jeden mi s tím aver dálkáčem nic nevypisuje, jenom mode2 vypisuje ty pulzy a mezery.

No a ty multimediální klávesy mi fungují jen na tom originálním Astrometa ovladači. Na tom Avermedia ovladači nefunguje nic. No ještě tomu chvíli dám, ale už se s tím pachtím několik dní a pořád nic :-(.
Člověk je takový, jak vypadá... A já vypadám jako pravá, nefalšovaná děvka!!!
1.4.2020 18:19 LarryL | skóre: 27
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Na tom Avermedia ovladači nefunguje nic.
Aha, jo, to jsem si špatně přečetl.
Co se týká ir-keytable -t nebo irw, tak ani jeden mi s tím aver dálkáčem nic nevypisuje
Tohle neodpovídání je právě zmíněno u LE když se nevypne eventlircd:
If you miss to do this ir-keytable won't show any input events as Kodi or eventlircd have grabbed the input device (unfortunately ir-keytable doesn't print a warning in that case).
Takže pokud vypnutí eventlircd nepomůže, tak to vypadá, že tvůj IR receiver (Astrometa) nepodporuje protokol toho DO. Já teď mám napojenu Avermedia Volar Pro jako IR receiver a když dám příkaz ir-keytable tak v Supported kernel protocols mám pouze nec, tudíž jakýkoliv DO používající jiný protokol než nec fungovat nebude.
1.4.2020 20:08 LarryL | skóre: 27
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Až teď jsem si všiml, že podporované protokoly máš v úvodním příspěvku a jelikož tam máš asi všechny možné (rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp imon rc-mm), tak v tom problém nebude. DO by fungovat mělo.
1.4.2020 20:56 LarryL | skóre: 27
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Ještě jak jsem se díval do své wiki, tak jsem nezabil jen proces eventlircd, ale i lircd.

A až pak dát ir-keytable -c -p all -t

To "all" je prý dobré dát když neznáš jaký protokol používá DO.

Výpis mého ir-keytable na kterém funguje jiný DO než co byl dodán s NUC:
Found /sys/class/rc/rc0/ (/dev/input/event11) with:
	Name: Nuvoton w836x7hg Infrared Remote Transceiver
	Driver: nuvoton-cir, table: rc-rc6-mce
	lirc device: /dev/lirc0
	Supported protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp imon rc-mm 
	Enabled protocols: lirc nec rc-6 
	bus: 25, vendor/product: 1050:00c9, version: 0x0013
	Repeat delay = 1000 ms, repeat period = 125 ms
Víc už asi neporadím ;-)
Prcek avatar 1.4.2020 21:59 Prcek | skóre: 43 | Jindřichův Hradec / Brno
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Díky moc. Ten návod na LE stránkách je super. Vyzkoušel jsem všechny *aver* a všechny *mce* keymapy, ale žádná nezabrala. LIRC procesy mi žádné neběží, přesto testování pomocí ir-keytable -t nic nevypisuje. Zapnout všechny protokoly přes -p all jsem taky zkoušel.

No ještě se na to podívám, případně zkusím odinstalovat LIRC (jak radí všude možně na webu), ale moc tomu nevěřím... už jednou jsem to bez LIRC zkoušel :-).
Člověk je takový, jak vypadá... A já vypadám jako pravá, nefalšovaná děvka!!!
2.4.2020 15:02 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
Tak se na to vykašli a použij nějaký od vyhozeného settopboxu nebo TV určitě se nějaký v tvém okolí najde ne?
Prcek avatar 2.4.2020 16:00 Prcek | skóre: 43 | Jindřichův Hradec / Brno
Rozbalit Rozbalit vše Re: Dálkové ovládání od jiné TV karty, bude fungovat?
No to jsem chtěl, ale žádný jiný dálkový ovladač doma nemáme. Až bude po koronaviru, tak se zajedu mrknout k rodičům, jestli nějaký volný nemají :-).
Člověk je takový, jak vypadá... A já vypadám jako pravá, nefalšovaná děvka!!!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.