QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 543|回复: 1

linux IRDA 实验报告

[复制链接]
发表于 2003-12-17 10:48:08 | 显示全部楼层 |阅读模式
linux IRDA 实验报告  


环境:  
笔记本Twinheader slim 600  
RedFlag Desktop 3.0 beta  
Kernel : 2.4.7-2 ----> 2.4.18-1  
irda-utils 0.9.4 ----> 0.9.14  
升级内核是由于经过测试,在2.4.7上红外设备虚拟网卡的驱动irlan不能正常运转,而且会造成其中一台机器死机  
查阅文档,得到如下描述:  
* The latest big update was in kernel 2.4.16, which fixed various race conditions, memory leaks and endianess issues. I don't even want to hear about version prior to that. And don't mention 2.2.X   
* Kernel 2.4.18 (when it will be released) has essential fixes for IrLAN and IrLPT. I don't normally use them, but they now seem to work. Get one of the "pre" version.  


所以,我们升级内核到2.4.18  

配置过程:  
查看BIOS中Infrared设备,一般是ttyS0或者ttyS1,  
设置tty的中断为3,使用的io为 0x3f8,如果有FIR/SIR的选项,设置为FIR  


*******升级irda-utils到0.9.14, 安装openobex-0.9.8和ircp-0.2******  


启动linux,执行如下命令:  
findchip -v  
能看到红外芯片类型,我们用的是nsc pc87338  
如果不是nsc,配置过程不一样,这里只先考虑nsc,其他参见附件  

编辑/etc/modules.conf  
增加如下行:*  

# IrDA stuff...  
alias tty-ldisc-11 irtty  
alias char-major-161 ircomm-tty # if you want IrCOMM support  

# NSC FIR chipset  
alias irda0 nsc-ircc  
options nsc-ircc dongle_id=0x09  

# IrNET module...  
alias char-major-10-187 irnet # Official allocation of IrNET  
options irlan access=2  

保存以后退出,然后让ttyS1不占用资源:  
setserial /dev/ttyS1 uart none  

irattach irda0 -s 1  

可以通过dmesg查询系统日志,看设备是否正常驱动  
当有红外邻居的时候,还可以看 /proc/net/irda :  

> cat /proc/net/irda/discovery  
IrLMP: Discovery log:  

nickname: Jean Tourrilhes, hint: 0x8220, saddr: 0x913b1bbc, daddr: 0x5619b45e  

这个时候可以使用irdaping来调试,使用discovery文件中的saddr  
irdaping 0x913b1bbc  
这个命令可以模仿ping来测试是否红外通讯链接。  

也可以使用irdadump来监听irda的传输消息。  

这个时候需要调节红外传输的最大速率:  

sysctl -w net.irda.max_baud_rate=115200  

然后就可以使用ircp进行红外文件传输了!  
让机器接收文件,执行:  
ircp -r  

发送文件cqst.txt用  
ircp cqs.txt  

这个命令可以和windows的红外传输程序通讯,我测试了这个传送。  
也可以是linux->linux的传输。其中linux->linux文件传输的速度大概是9k/s  

下面说的是红外设备模拟TCP/IP的使用,TCP/IP Over IRDA有两中方法,irnet和irlan,  
我没有测试传统的irnet,只测试了irlan。  

irlan在Desktop3.0的kernel 2.4.7-2有致命问题,升级到2.4.18才正常!  

按照前面说到的方法配置结束以后,  
insmod irlan access=2  
killall ifconfig  

非常奇怪的就是当插入irlan模块以后.按照/etc/sysconfig/network-scripts/ifcfg-irlan0  
中的配置,系统配置irlan0设备网络地址的命令ifconfig就死在那了,需要用killall ifconfig  
来中断这个进程。然后再用ifconfig就能看见虚拟的irlan0设备和它的网络配置了。  
当网络配置结束,两个笔记本就已经能相互ping/telnet/ftp了。操作完全和网卡一样,但是速度比较慢。  

关于irnet,我没有测试。相信也可以通。参见irnet.html
发表于 2003-12-17 12:00:22 | 显示全部楼层
好!我只用过ircomm,其它没用过。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 14:29 , Processed in 0.081026 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表