银河麒麟操作系统需通过USB红外接收器(如智云U3、睿因RM-218)搭配LIRC服务实现红外遥控,要求设备被识别为rc-core而非仅hid-generic模式,否则无法学习与发射信号;安装LIRC后需正确配置驱动与设备路径,录制红外码值并测试发送成功即表明通路打通。

银河麒麟操作系统需通过USB红外接收器(如智云U3、睿因RM-218)搭配LIRC服务实现对空调、电视等红外设备的遥控功能,要求硬件已插入USB口且系统识别为hid-generic或rc-core设备,否则无法加载驱动完成信号收发。
确认红外接收器已被系统识别
打开终端,执行命令:lsusb | grep -i infrared,若返回类似“Bus 002 Device 005: ID 1934:5168 Beijing E-World Co., Ltd. IR Receiver”的结果,说明USB红外设备已物理连接并被枚举;若无输出,更换USB口或检查接收器指示灯是否亮起。
继续执行:dmesg | tail -20 | grep -i "rc\|ir\|hid",观察是否有“rc_core: loaded”、“hid-generic 0003:1934:5168.0005: input,hidraw0: USB HID v1.11 Keyboard [IR Receiver]”类日志。出现“rc0”或“rc1”设备节点即代表内核已启用遥控子系统。
若只显示“hid-generic”但无“rc”前缀,说明该设备仅被识别为键盘模式,【无法用于红外学习与发射,必须更换支持RC协议的型号】。
安装并配置LIRC服务
方法一:使用apt安装稳定版(推荐新手)
执行:sudo apt update && sudo apt install lirc。安装过程会自动弹出配置向导,选择“USB UIRT”或“None”均可,后续手动覆盖配置;关键点是确保安装后生成了/etc/lirc/lirc_options.conf和/etc/lirc/lircd.conf.d/目录。
方法二:手动适配非标设备(适用于睿因RM-218等)
先停用默认服务:sudo systemctl stop lircd;再编辑主配置:sudo nano /etc/lirc/lirc_options.conf,将driver修改为“devinput”,device修改为“/dev/input/by-path/platform-ff300000.usb-usb-0:1.2:1.0-event-kbd”(路径需用ls /dev/input/by-path/ | grep -i ir实际确认);保存后执行sudo systemctl daemon-reload。
注意:部分国产红外棒在ARM平台需额外加载固件,执行sudo apt install linux-firmware可补全。
录制并测试红外码值
第一步:停止LIRC服务并清空缓存:sudo systemctl stop lircd && sudo rm -f /var/run/lirc/lircd。
第二步:启动原始模式监听:sudo mode2 -d /dev/lirc0(设备名用ls /dev/lirc*确认),此时对准接收器按下遥控器任意键,终端应实时滚动显示pulse/space数值序列;若无反应,检查接收器朝向与距离(建议≤3米、无遮挡)。
第三步:录制具体按键:sudo irrecord -d /dev/lirc0 ~/myremote.lircd.conf,按提示依次输入遥控器品牌名、按键名(如power、volume_up),每按一次键需保持1秒以上,连续录制10个键后保存退出。
第四步:加载新配置并重启服务:sudo cp ~/myremote.lircd.conf /etc/lirc/lircd.conf.d/ && sudo systemctl start lircd。
第五步:发送测试指令:irsend SEND_ONCE myremote power,若对应电器响应,说明红外通路已打通;若报错“Failed to connect to socket”,运行sudo systemctl restart lircd再试。











