Cubieboard红外遥控关机
Cubieboard每次关机都要登录上去关,比较麻烦。值得庆幸的是Cubieboard自带红外模块,那能不能利用红外来遥控关机呢?查了一些网上的资料,花了点时间尝试了一下,果然可行,这下方便多了。当然,你还可以自定义更多的命令,通过红外遥控器来执行。
1. 确保红外驱动能正常运行
# modprobe sun4i_ir # dmesg | grep sun4i-ir
一般结果如下:
input: sun4i-ir as /devices/virtual/input/input1
2. 使红外模块开机后自动加载,编辑/etc/modules,添加红外模块
sun4i_ir
3. 安装lirc
# apt-get install lirc
4. 配置lirc
4.1) 创建 udev rule
# vi /etc/udev/rules.d/10-meleir.rules
内容为:
SUBSYSTEM=="input", ACTION=="add", KERNEL=="event*", ATTRS{name}=="sun4i-ir", SYMLINK+="input/meleir"
4.2) 编辑 /etc/lirc/hardware.conf:
DRIVER="devinput" DEVICE="/dev/input/meleir"
4.3) 重启,或者运行以下命令
# rmmod sun4i_ir # /etc/init.d/udev restart # /etc/init.d/lirc restart # modprobe sun4i_ir
4.4) 查看是否配置成功
# ls -l /dev/input
一般结果为:
drwxr-xr-x 2 root root 60 Jan 11 13:44 by-path crw-r----- 1 root root 13, 64 Jan 11 13:44 event0 crw-r----- 1 root root 13, 65 Jan 11 15:19 event1 lrwxrwxrwx 1 root root 6 Jan 11 15:19 meleir -> event1 crw-r----- 1 root root 13, 63 Jan 11 13:44 mice
4.5) 创建文件/etc/lirc/lircd.conf,lircd.conf用来定义映射按键值
lircd.conf:
begin remote name devinput bits 16 eps 30 aeps 100 pre_data_bits 16 pre_data 0x0001 post_data_bits 32 post_data 0x00000001 gap 132799 toggle_bit 0 begin codes POWER 87 MUTE 92 HELP 5 PREFS 9 FAVS 21 R2C1 4 R2C2 8 R2C3 20 VOLUME+ 255 VOLUME- 93 INFO 16 MOUSE 17 ZOOM+ 12 ZOOM- 88 R5C1 84 R5C2 91 R5C3 23 MENU 22 HOME 71 BACK 79 LEFT 6 RIGHT 14 UP 67 DOWN 10 OK 2 STOP 19 PLAY 80 SEARCH 13 REV 7 FWD 3 PREV 15 NEXT 11 RED 85 GREEN 78 YELLOW 73 BLUE 72 1 26 2 1 3 69 4 89 5 77 6 64 7 82 8 83 9 65 0 90 AUDIO 68 SUBTITLE 70 end codes end remote
4.6) 启动 lirc
# /etc/init.d/lirc start
然后运行irw
# irw
运行irw后,按遥控器按键,可以查看相应的按键值,用来配置下面的button值。不过并不是所有遥控器都能用,IPTV电视机顶盒遥控器可用。
5. 配置关机脚本
5.1) 编辑 /etc/lirc/irexec.conf (其中button值按照实际所需按键值来配置)
begin prog = irexec button = POWER config = /usr/local/bin/powerctl.sh end
5.2) 编辑 /usr/local/bin/powerctl.sh (并确保其可执行chmod+x):
#!/bin/sh sudo shutdown -h now
5.3) 在文件/etc/rc.local中添加
irexec -d /etc/lirc/irexec.conf
重启后,按遥控器上所设置的按键,即可关机。