分页: 1 / 1
PC机和手机通过红外通信(互传文件)
发表于 : 2006-07-01 18:19
由 leeyee
在Linux系统中,如何实现笔记本电脑的红外端口与手机之间的通信呢?下面,我以ASUS M2+Ubuntu 6.06LTS+SonyEricsson K508c为例介绍一下实现方法。其他发行版本/手机类似。
1,安装操纵红外端口的必备工具:
代码: 全选
sudo apt-get install ircp irda-utils openobex-apps
在新立得的介绍里可以很清楚地知道,ircp是用来在电脑和手机间传输文件用的,而openobex-apps可以看作是像HTTP一样提供透明文件传输的协议(也就是说,传输将不局限于某一种文件格式),irda-util则是用来控制红外端口。
2,加载模块
代码: 全选
sudo modprobe irda irtty_sir sir_dev
如果想要开机就能够自动加载,可以修改/etc/modules文件,将irda,irtty_sir,sir_dev三个模块依次写在这个文件的末尾。
3,测试
如果有类似这样的输出,那么就说明红外端口已经被正确激活了:
代码: 全选
10:00:30.722182 xid:cmd db184d9f > ffffffff S=6 s=0 (14)
10:00:30.822833 xid:cmd db184d9f > ffffffff S=6 s=1 (14)
10:00:30.922145 xid:cmd db184d9f > ffffffff S=6 s=2 (14)
10:00:31.024133 xid:cmd db184d9f > ffffffff S=6 s=3 (14)
10:00:31.124770 xid:cmd db184d9f > ffffffff S=6 s=4 (14)
10:00:31.224099 xid:cmd db184d9f > ffffffff S=6 s=5 (14)
10:00:31.324736 xid:cmd db184d9f > ffffffff S=6 s=* myUbuntu hint=0400 [ Computer ] (24)
4,发送文件到手机
5,接受手机的文件
文件将被自动放置在/tmp内。由于手机与电脑的文件编码有所不同,中文可能无法正确显示。
发表于 : 2006-08-12 12:05
由 happybombman
按照楼主的步骤,为什么我用sudo irdadump命令后终端没有任何输出?我的本本也是华硕m2,还有什么要注意的地方吗?
Re: PC机和手机通过红外通信(互传文件)
发表于 : 2006-08-18 10:11
由 eyess
按照搂主的方法,安装了相应的软件,软件工作正常!
并采用irdadump检查通讯一些正常,
终端显示如下信息:
02:04:58.512111 xid:cmd fca20b98 > ffffffff S=6 s=0 (14)
02:04:58.594641 xid:rsp fca20b98 < 0000338d S=6 s=0 Nokia 6268 hint=b125 [ PnP Modem Fax Telephony IrCOMM IrOBEX ] (27)
02:04:58.598217 xid:cmd fca20b98 > ffffffff S=6 s=1 (14)
02:04:58.686263 xid:cmd fca20b98 > ffffffff S=6 s=2 (14)
02:04:58.774233 xid:cmd fca20b98 > ffffffff S=6 s=3 (14)
02:04:58.862229 xid:cmd fca20b98 > ffffffff S=6 s=4 (14)
02:04:58.950236 xid:cmd fca20b98 > ffffffff S=6 s=5 (14)
02:04:59.038240 xid:cmd fca20b98 > ffffffff S=6 s=* eyesspro hint=0400 [ Computer ] (24)
但发现手机发送文档到笔记本电脑可以,但从笔记本电脑发送文档到手机却不行!
终端显示如下信息:
eyess@eyesspro:~$ irobex_palm3 /data/1.mp3
Send and receive files to Palm3
name=/data/1.mp3, size=4050151
..
PUT failed
请问楼主可否遇到此现象,或是那位大虾知道这个是什么问题!
请帮助我!
谢谢!
发表于 : 2006-08-18 21:44
由 leeyee
我的一切正常的啊,我做的一般都是笔记本向手机发文件,还没有出错过。你的问题有没有什么特别一点的特征?确定手机容量够吗?
2楼的兄弟,你看一下
代码: 全选
$ lsmod | grep irda
红外模块有没有加载好。输出什么?
发表于 : 2006-08-19 16:55
由 happybombman
用$ lsmod | grep irda命令输出如下:
irda 217980 2 irtty_sir,sir_dev
crc_ccitt 2240 1 irda
不知是否正确?
发表于 : 2006-08-19 18:35
由 eyess
我的也和楼上的输出类似!
eyess@eyesspro:~$ lsmod | grep irda
irda 217980 1 smsc_ircc2
crc_ccitt 2240 1 irda
红外模块应该是加载成功了,而且,我能够从手机向计算机里传数据,就是不能从计算机中向手机里传数据!
手机的容量一定没有问题,我的手机可以外插卡,并且已经插了一张64M的miniSD卡。
每次从计算机中向手机中传数据时,
计算机终端显示:
PUT failed!(这个PUT到底是什么意思呀?)
而手机则显示:
操作失败!
不知楼主的环境是怎么样的,你是使用高速红外设置,还是低速红外设置,已经传输的数据类型是什么的?
发表于 : 2006-08-19 19:19
由 eyess
问题解决!
可以采用ircp来传输数据!
方法如下:
接收文件为:
ircp -r 目标路径
发送文件为:
ircp 路径/文件名
另外,到debian的网站,如下:
http://packages.debian.org/testing/comm/openobex-apps
看见这个程序已经升级到1.3.1了,而我安装的是1.0.0.rel 3,并且在起Bug report中看见1.0.0报告许多问题,
所以我觉得应该是这个版本的bug!
新的版本没有试过,有谁有兴趣试一试!如果成功!写一个安装手记给大家学习学习!
发表于 : 2006-08-27 8:10
由 leeyee
呵呵,欢迎补充啊!
发表于 : 2006-09-01 22:58
由 bones7456
我的执行第2步的时候输出如下:
代码: 全选
lly@LLY:~$ sudo modprobe irda irtty_sir sir_dev
FATAL: Error inserting irda (/lib/modules/2.6.15-26-386/kernel/net/irda/irda.ko): Unknown symbol in module, or unknown parameter (see dmesg)
dmesg的结果有:
代码: 全选
[17192404.448000] pcmcia: Detected deprecated PCMCIA ioctl usage.
[17192404.448000] pcmcia: This interface will soon be removed from the kernel; please expect breakage unless you upgrade to new tools.
[17192404.448000] pcmcia: see http://www.kernel.org/pub/linux/utils/kernel/pcmcia/pcmcia.html for details.
[17192541.352000] irda: Unknown parameter `irtty_sir'
[17192723.464000] irda: Unknown parameter `irtty_sir'
[17192832.756000] irda: Unknown parameter `irtty_sir'
是怎么回事阿?是驱动没装好吗?
发表于 : 2006-09-02 8:37
由 bones7456
机子重启了一下以后就没有以上问题了。但是第3步 sudo irdadump 的时候就没有任何反映了怎么回事?也没有什么错误信息输出啊!
发表于 : 2006-09-02 11:21
由 wolfg
我的笔记本是Thinkpad T43,装的是ubuntu dapper
/etc/modprobe.d/irda-utils里添加
alias irda0 nsc-ircc
options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=3
/etc/modules文件里添加
nsc-ircc
写一个shell脚本irda.sh
#!/bin/sh
sudo irattach irda0 -s
每次用红外前运行这个脚本,再用irobex_palm3或ircp传送文件
发表于 : 2006-09-08 19:47
由 bones7456
wolfg 写了:我的笔记本是Thinkpad T43,装的是ubuntu dapper
/etc/modprobe.d/irda-utils里添加
alias irda0 nsc-ircc
options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=3
/etc/modules文件里添加
nsc-ircc
写一个shell脚本irda.sh
#!/bin/sh
sudo irattach irda0 -s
每次用红外前运行这个脚本,再用irobex_palm3或ircp传送文件
怎么按这样做了,还是没有任何反映呢?
发表于 : 2006-11-05 18:26
由 syoleen
我的做法和楼主的一样,用lsmod | grep irda的结果如下
irda 187068 2 irtty_sir,sir_dev
crc_ccitt 2304 1 irda
但是,运行sudo irdadump却没有反应,和happybombman(5楼)的一样。
有解决方法了吗?
发表于 : 2007-02-17 15:05
由 leeyee
上面的方法在dapper下一切正常,但我升级到Edgy后irdadump也没有反应了。解决方法是:在menu.lst文件的启动选项里加入一个参数:pnpacpi=off, 然后irda就可以用了。我在我的blog里会给个详细的解释。关于pnpacpi的效用还在研究中,目前系统没有任何不良反应。
给大家看一下我的menu.lst的内核设置行:
代码: 全选
kernel /vmlinuz-2.6.17-11-generic root=/dev/hda7 ro vga=791 pnpacpi=off quiet splash
发表于 : 2007-05-26 18:20
由 peacezhu
能从电脑接收文件,为何发送的时候说连接不上呢?
T43 6600