Portál AbcLinuxu, 15. července 2025 16:11

AverMedia Remote Control

Podpora: kompletní
Ovladač: v jádře

Identifikace pod Linuxem

Dálkové ovládání jsem získal jako součást DVB-T televizní karty AverTV DVB-T 771, nejspíš bude součástí i dalších produktů této značky.

Příkaz dmesg | grep remote by měl dát něco jako
[17179591.352000] bttv0: add subdevice "remote0"

Postup zprovoznění pod Linuxem

Následující postup jsem prováděl v Ubuntu Dapper, ale vše by mělo fungovat i v jiných modernějších distribucích.

Na mé televizní kartě je dálkové ovládání řízeno přes GPIO (General Purpose I/O), to lze identifikovat tím, že příkaz dmesg | grep gpio vypíše něco jako

[17190458.260000] bttv0: gpio: en=00000000, out=00000000 in=00d1870f [init]

Základem všeho je tedy zavedení modulu jádra příkazem

modprobe ir-kbd-gpio
Tento příkaz ve spolupráci s udev vytvoří device node /dev/input/eventX, kde X bude nějaké číslo.

Dálkové ovládání se od této chvíle chová jako klávesnice. Funkci dálkového ovládání můžeme otestovat pomocí programu evtest /dev/input/eventX (nutno spustit jako root), program je součástí linuxtv-dvb-apps (nejspíš budou k dispozici i jako balíček ve Vaší distribuci, v Ubuntu se jmenuje dvb-utils). Jelikož se teď dálkové ovládání chová jako klávesnice, je možné Xka nakonfigurovat tak, aby rozeznávalo kódy tlačítek na ovládání. Jedna možnost, která mě napadá, je programem xmodmap přiřadit každému tlačítku nějakou akci. Ale moc do toho nevidím, tak jsem se pustil do zprovoznění přes LIRC. Kdyby někdo věděl, jak používat ovládání bez LIRC, bylo by hezké se tu o tom dočíst.

V dalším kroku tedy nainstalujeme LIRC, určitě bude ve formě balíčku součástí Vaší distribuce. Až ho budeme mít nainstalovaný, je nutné vytvořit konfigurační soubor, kterým popíšeme naše dálkové ovládání. Na to jsem použil program irrecord (který je součástí lirc). Spusťte ho jako root příkazem

irrecord avermedia.conf -H 'dev/input' -d /dev/input/eventX
-H říká, jaký ovladač má lirc použít a -d jaký je device node našeho zařízení (X nahraďte příslušným číslem). Dál už je třeba jen následovat instrukce, mačkat tlačítka a dávat jim jména. Po ukončení budete mít soubor avermedia.conf, který zkopírujte do /etc/lirc/

V dalším kroku otevřete soubor /etc/lirc/hardware.conf a upravte ho tak, aby vypadal takto

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="dev/input"  # dulezitá řádka
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE="/dev/input/event3"   # 3 nahraďte příslušným číslem
MODULES=""

# Default configuration files for your hardware if any
LIRCD_CONF="/etc/lirc/avermedia.conf"   # to je soubor, který jste vytvořili pomocí irrecord
LIRCMD_CONF=""
Restartujte lirc, například pomocí
/etc/init.d/lirc restart
Prográmekm irw otestujte, zda Vám vše funguje (promačkejte postupně všechny tlačítka a zkontrolujte, jestli se správně detekují a zda jste je správně popsali).

V této fázi už máte dálkové ovládání plně zprovozněné, závisí pak už jen na aplikaci, v které ho chcete využívat. Na Gentoo Wiki je popsána konfigurace mplayeru, MythTV, VLC playeru a KDE. Jelikož jako nejužitečnější mi přijde používání dálkového ovládání pro sledování televize v Kaffeine pod KDE, popíšu tento postup podrobněji.

Pokud ho ještě nemáte nainstalovaný, nainstalujte si balíček kdelirc. Spusťte KDE Menu -> Utilities -> IRKick KDE LIRC Server. Měl by se Vám objevit v panelu a ikonka by při zmáčknutí tlačítka na ovládání měla bliknout. Klikněte na ní pravým tlačítkem, Configure ... a v levé části by se Vám mělo objevit Vaše dálkové ovládání tak, jak jste si ho pojmenovali v irrecord. V pravé části si postupně vytvořte vazby mezi jednotlivými tlačítky a funkcemi, které mají v tom kterém programu provádět.

Teď už zbývá jen nalít si plnou sklenici svého oblíbené nápoje, vyvalit se na pohovku a odměnit se za své úspěšné vítězství v boji s technologií.

Poznámka

Tento postup lze samozřejmě zobecnit na jakékoli dálkové ovládání ovládané modulem ir-kbd-gpio. Stejný postup lze použít i na dálková ovládání ovládaná modulem ir-kbd-i2c.

USB

U zařízení připojovaných přes USB je klasický problém, že jména device nodů závisí na pořadí připojení. Řešení spočívá ve vytvoření pravidla pro udev. Udev normálně vytvoří zařízení se jménem, jaké si určí on, my naším pravidlem pak na něj vytvoříme symlink s konstantním jménem, které pak použijeme v konfiguraci LIRC.

Postup bude pro každé zařízení jiný, takže nezbyde než se ta pravidla naučit psát. Jako užitečné tutoriály (v angličtině) vypadají tyto dva:
http://www.redhat.com/magazine/002dec04/features/udev/
http://reactivated.net/writing_udev_rules.html
Po přečtení určitě vhodné pravidlo dáte dohromady.


avermedia.conf

# brand:             AVerMedia
# model:             -
# supported devices: AVerTV DVB-T 771
#

begin remote
        name            avertv
        bits            16
        eps             30
        aeps            100
        one             0     0
        zero            0     0
        pre_data_bits   16
        pre_data        0x8001
        gap             132799
        toggle_bit      0

        begin codes
                AUDIO                0x0188
                BACKWARD             0x00a8
                BLUE                 0x0191
                CHANNELDOWN          0x0193
                CHANNELUP            0x0192
                DISPLAY              0x0189
                FORWARD              0x00d0
                FULLSCREEN           0x0174
                GREEN                0x018f
                0                    0x000b
                1                    0x0002
                2                    0x0003
                3                    0x0004
                4                    0x0005
                5                    0x0006
                6                    0x0007
                7                    0x0008
                8                    0x0009
                9                    0x000a
                LOOP                 0x00d9
                MUTE                 0x0071
                PAUSE                0x0077
                PLAY                 0x00cf
                POWER                0x0074
                PREVIEW              0x0166
                RECORD               0x00a7
                RED                  0x018e
                SOURCE               0x018b
                STOP                 0x0080
                TELETEXT             0x0184
                VOLUMEDOWN           0x0072
                VOLUMEUP             0x0073
                YELLOW               0x0190
        end codes
end remote

Dokument vytvořil: vch, 16.10.2006 14:14 | Poslední úprava: TomCat1, 27.2.2011 15:09 | Další přispěvatelé: vch | Historie změn | Zobrazeno: 3046×

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

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