快速瀏覽

支持 Ubuntu 18.04 自定義遙控器


 
  • [步驟 1] 安裝 LIRC 包
  • 【步驟二】配置LIRC和驅動模塊
  • 【步驟3(1)】案例1:註冊Hardkernel遙控器
  • 【步驟3(2)】案例2:註冊自定義遙控器
  • 【第四步】重啟lircd服務

$ sudo  apt-get install lirc

現在您需要設置lirc_options.conf來指定作為守護進程運行的配置。

$ sudo vi /etc/lirc/lirc_options.conf

lirc_options.conf是安裝lirc時默認生成的,
需要修改以下部分。

(1) 驅動程序和設備
driver          = default
device          = /dev/lirc0
(2) 模塊初始化
[modinit]
code = /sbin/modprobe meson-ir
(3) 輸入事件
[lircd-uinput]
add-release-events = True
release-timeout    = 50
release-suffix     = _EVUP

所有必要的配置都完成了,您可以簡單地通過命令行啟動服務lirc或重新啟動設備。

$ sudo service lircd restart
$ sudo systemctl enable lircd-uinput

然後,您可以在 /dev/ 下找到lirc0節點。

$ ls /dev/lirc*
/dev/lirc0

請注意,lirc_options.conf 中的某些部分取決於工具鏈版本,
因此請根據您的板子在以下參考中選擇正確的 conf 文件。

lirc_options.conf
[lircd]
nodaemon        = False
driver          = default
device          = /dev/lirc0
output          = /var/run/lirc/lircd
pidfile         = /var/run/lirc/lircd.pid
plugindir       = /usr/lib/aarch64-linux-gnu/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 meson-ir
 
[lircd-uinput]
add-release-events = True
release-timeout    = 50
release-suffix     = _EVUP

如果要調整按鍵釋放時間,請更改[lircd-uinput] 類別下的release-timeout


如果你使用Hardkernel遙控器,你可以使用下面的lircd.conf。
或者,如果您使用其他遙控器,請參考下一節。

$ sudo vi /etc/lirc/lircd.conf.d/hk.lircd.conf
begin remote
 
name odroid
bits 16
flags SPACE_ENC|CONST_LENGTH
eps  30
aeps 100
 
header 9000 4500
one 563 1688
zero 563 564
ptrail 563
pre_data_bits 16
pre_data 0x4DB2
repeat 9000 2250
repeat_gap 96187
toggle_bit_mask 0x0
    begin codes
        KEY_LEFT  0x9966
        KEY_RIGHT  0x837C
        KEY_UP  0x53AC
        KEY_DOWN  0x4BB4
        KEY_ENTER  0x738C
        KEY_HOME  0x41BE
        KEY_MUTE  0x11EE
        KEY_MENU  0xA35C
        KEY_BACK  0x59A6
        KEY_VOLUMEDOWN  0x817E
        KEY_VOLUMEUP  0x01FE
        KEY_POWER  0x3BC4
    end codes
end remote

在啟動ircord之前,請先檢查lircd服務是否正在運行並停止服務。

$ sudo service lircd stop

如果加載了 lircd 服務,您將收到來自irrecord 的以下錯誤消息。

Warning: Running as root.
Using driver default on device /dev/lirc0
Could not init hardware (lircd running ? --> close it, check permissions)

Lirc包提供了一個工具,irrecord,幫助註冊自己的遙控器按鈕。例如,一旦該工具啟動,您將被要求按下按鈕,它會分析您的遙控器的信號,如協議類型或標頭。分析完之後就可以開始一一註冊按鈕了。

$ sudo irrecord --device /dev/lirc0 lircd.conf

完成信號分析後,系統會提示您輸入以下消息,輸入要註冊的按鈕名稱並按下適用的按鈕。在這一步中,您可以註冊盡可能多的按鈕。如果完成,只需在提示中按 Enter 鍵即可。

Please enter the name for the next button (press <ENTER> to finish recording)

該工具會要求您執行更多步驟來完成並存儲帶有以下消息的配置文件。

Successfully written config file.

例如,如果您使用 Hardkernel 的庫存遙控器成功完成了所有步驟,您將非常相似地擁有如下配置文件。

現在您必須將配置文件lircd.conf複製到/etc/lirc/以便lirc服務可以識別該按鈕。

$ sudo cp lircd.conf /etc/lirc/lircd.conf.d/hk.lircd.conf

然後,您需要重新啟動lircdlircd-uinput

$ sudo service lircd restart 
$ sudo systemctl enable lircd-uinput 
$ sudo service lircd-uinput restart

現在,您可以運行irw以確認您的 ODROID-C2 已準備就緒。

odroid @ odroid64:〜# IRW 
000000004db29966 00 KEY_LEFT lircd.conf 
000000004db2837c 00 KEY_RIGHT lircd.conf 
000000004db253ac 00 KEY_UP lircd.conf 
000000004db24bb4 00 KEY_DOWN lircd.conf 
000000004db2738c 00 KEY_ENTER lircd.conf

您可以檢查守護進程是否正常運行。

$ ps -ax | grep lirc
root       536  0.0  0.0   4804  1400 ?        Ss   09:39   0:00 /usr/sbin/lircmd --nodaemon
root       580  0.0  0.0   4720  1296 ?        Ss   09:39   0:00 /usr/bin/irexec /etc/lirc/irexec.lircrc
root       727  0.1  0.2   7456  4056 ?        Ss   09:39   0:00 /usr/sbin/lircd --nodaemon
root       728  0.0  0.0   4808  1376 ?        Ss   09:39   0:00 /usr/sbin/lircd-uinput
odroid    1216  0.0  0.0   2704   664 ttyS0    S+   09:40   0:00 grep --color=auto lirc

以及加載必要的驅動程序。

$ lsmod 
Module                  Size  Used by
ir_lirc_codec           4934  3
lirc_dev               10879  1 ir_lirc_codec
ir_mce_kbd_decoder      3402  0
ir_jvc_decoder          1725  0
ir_sanyo_decoder        1657  0
ir_sony_decoder         1663  0
ir_rc6_decoder          2010  0
ir_nec_decoder          1789  0
ir_rc5_decoder          1586  0
meson_ir                3356  0
快速瀏覽

ODROID-C4

四核ARM CORTEX-A55 |4GB RAM |4 USB3 PORTS