自得其乐

EnjoySelf

Cubieboard红外遥控关机

2841_221214_365730.jpg
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

重启后,按遥控器上所设置的按键,即可关机。