玩转GDK8之让遥控器动起来

欢迎进入GDK8的世界,这个小试验将和大家一起来安装和配置lirc (Linux Infrared Remote Control)软件(https://www.lirc.org/ ),让GDK8的遥控器动起来。

主要步骤

  1. 使用MobaXterm连接GDK8,如有困难,请参考上手教程。
  2. 在MobaXterm的终端窗口,输入如下命令来安装lirc (Linux Infrared Remote Control)
    sudo apt install lirc
  3. 接下来先要配置lirc如何找到GDK8的红外接收硬件,请执行如下命令从lirc的模板复制出一个新的配置文件。
    sudo cp /etc/lirc/lirc_options.conf.dist
    /etc/lirc/lirc_options.conf
  4. 然后执行如下命令开始编辑配置文件:
    sudo vi /etc/lirc/lirc_options.conf
    先按i进入INSERT状态,再移动光标到device行,将device行修改为:
    device = /dev/input/event0
    修改成功后,先按ESC键推出INSERT状态,再按:wq保存文件和退出vi。
  5. 执行如下命令重启lirc的服务:
    sudo systemctl restart lircd
  6. 执行如下命令测试遥控器:
    irw
    如果按下遥控器的“按键6”,irw有信息输出,那么则证明lirc可以接收到遥控器的按键数据了。
    root@gdk8:/etc/lirc# irw
    000000008001006a 00 KEY_RIGHT devinput-32
    000000008001006a 00 KEY_RIGHT devinput-32
    000000008001006a 00 KEY_RIGHT devinput-32
    000000008001006a 00 KEY_RIGHT devinput-32
    000000008001006a 00 KEY_RIGHT devinput-32
    000000008001006a 00 KEY_RIGHT devinput-32
    000000008001006a 00 KEY_RIGHT devinput-32
    000000008001006a 00 KEY_RIGHT devinput-32
    不然,可以执行如下命令来打开内核驱动的调试信息输出:
    sudo su
    echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/dbg_level
    echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print
    按遥控器的按键6,再
    dmesg
    或者
    dmesg | grep RMC
    root@gdk8:/etc/lirc# dmesg | grep RMC
    [ 5243.750246] RMC_GETDATA=ee
    [ 5244.066643] RMC_GETDATA=ee
    [ 5244.532814] RMC_GETDATA=ee
  7. 接下来再配置lirc的执行命令服务——irexec,这个服务可以根据遥控器按键来执行shell命令,比如关机。
    先编辑irexec的配置文件
    sudo vi /etc/lirc/irexec.lircrc
    在末尾找到KEY_RIGHT的配置,将其修改为:
    begin
    prog   = irexec
    button = KEY_RIGHT
    config = echo "this file is generated by remote controller" > /tmp/a.txt #echo "KEY_RIGHT"
    end
    再增加一个KEY_VOLUMEDOWN的动作:
    begin
    prog   = irexec
    button = KEY_VOLUMEDOWN
    config = logger -t "power off by remote controller" && shutdown
    end
    注意:由于固件层的问题,遥控器上电源键被映射为KEY_VOLUMEDOWN,所以我们暂时先用KEY_VOLUMEDOWN来做试验
    再打开rc.local
    sudo vi /etc/rc.local
    在exit 0前面,增加下面一行,目的是添加irexec服务
    /usr/bin/irexec -d /etc/lirc/irexec.lircrc
    保存后,执行如下命令启动irexec服务:
    sudo systemctl start irexec
  8. 先执行ps -A | grep irexec确认irexec进程已经在运行:
    root@gdk8:/etc/lirc# ps -A | grep irexec
    3612 ?        00:00:00 irexec
  9. 再尝试按遥控器上的“6”,根据上面的定义应该产生一个临时文件
    root@gdk8:/etc/lirc# cat /tmp/a.txt
    this file is generated by remote controller
  10. 接下来尝试按遥控器的红色电源按钮,如果顺利的话,可以看到如下消息:
  11. GDK8关机后,如果希望再开机,可以先拔下电源,过1-2秒钟后,再插上电源即可
作者:admin  创建时间:2021-11-12 10:00
最后编辑:admin  更新时间:2024-09-14 11:25