分享
 
 
 

ZK-ID6USB红外线成功地用在了Linux中

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

相比于集成在各大厂商笔记本中的红外发射器,这个独立的 USB 口发射器在 Linux 下驱动起来比较麻烦,不过最终 还是成功了。以下是 IRDA 子系统的工作原理

1)首先,与预先猜测的不同,这款红外线收发器虽然用了 USB,但却并不属于 USB 设备类中规定的类型,因而无法使用 USB 通用驱动。在 Windows 上可以看出它属于串口类,型号是 MA-620

2)这个收发器内部其实是一个 USB 转串口线,型号是 PL2303,因此插入电脑后,能被最新的内核识别,并且映射成 USB 串口 /dev/ttyUSB0

3)在这个假冒串口的后面,才接着一个真正的红外线收发器,它的真正类型是 MA-600,因而可以通用 MA-600 的驱动。

4)因此,驱动这个USB红外,其实是在USB串口上安装tty层,其上再装IRDA协议栈。其图示如下:

ircomm 等应用层协议

linux-irda-stack

|

sir-dev

|

irtty-sir [ma600-sir]

|

tty-layer

|

usbserial [pl2303]

|

usb_hcd [ehci/ohci/uhci]

所使用的模块如下:

Module Size Used by

ma600_sir 3328 1

irtty_sir 7424 2

sir_dev 17452 2 ma600_sir,irtty_sir

irda 129468 2 ma600_sir,sir_dev

pl2303 16644 1

usbserial 27812 3 pl2303

uhci_hcd 30736 0

5)但是,实际情况总是没有分析得那么好。上述方案有以下限制:

首先,在USB转串口跑tty,在任何一个2.4版的kernel上都有严重的向题,会不定期的死锁

其次,pl2303 驱动在kernel 2.6.3 以前存在着bug,会让DMA传输冲掉堆栈。同时这个版本之前的 ma600 驱动不能正确处理错误,无法从出错状态中恢复出来

第三,直到最近版本,ma600都无法处理 ma620 的速度转换请求,一转速庋就出错,因此我们只能使用默认的9600这个速度。同时不要尝试 rmmod pl2303, 2.6.7 以前的内核版本会导致 oops

最后,你必须使用最新的 irda-utils 包 0.9.17-pre3 以上版本,旧版在特定情况下会崩溃

6)OK, 现在下面就是我们启动红外功能的脚本:

Start:

#!/bin/sh

#

# Minimal stuff required to get the MA620 USB IRDA dongle recognised by

# the kernel.

modprobe uhci_hcd

modprobe pl2303

modprobe irda

echo 9600

/proc/sys/net/irda/max_baud_rate

modprobe irtty-sir

modprobe ma600-sir

modprobe ircomm-tty

irattach /dev/usb/ttyUSB0 -d ma600 -s

exit 0

Stop:

#!/bin/sh

#

# Minimal stuff required to stop the MA620 USB IRDA dongle

killall irattach kIrDAd

modprobe -r ircomm-tty

modprobe -r ma600

modprobe -r ma600-sir

modprobe -r irtty-sir

# Not removing pl2303 since it causes a kernel oops

exit 0

将上述2段脚本存成文件,运行 start 开启 irda, stop 则关闭。启动后,将红外设备对准你的收发器,然后输入 irdadump 命令,如果看见设备被发现了,这就说明红外已经起来了。通过访问 /dev/ircomm0 可以访问红外串口模拟协议,如果该设备支持,你甚至可以起一个 minicom 来读写这个模拟串口。输入 cat /proc/net/irda/discovery,应该能看到你的设备的名字列在里面

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有