PC机和手机通过红外通信(互传文件)

CPU/显卡/打印机/USB设备等硬件问题
回复
leeyee
帖子: 723
注册时间: 2006-04-11 9:01

PC机和手机通过红外通信(互传文件)

#1

帖子 leeyee » 2006-07-01 18:19

在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,测试

代码: 全选

sudo irdadump
如果有类似这样的输出,那么就说明红外端口已经被正确激活了:

代码: 全选

   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,发送文件到手机

代码: 全选

irobex_palm3 文件路径
5,接受手机的文件

代码: 全选

irobex_palm3
文件将被自动放置在/tmp内。由于手机与电脑的文件编码有所不同,中文可能无法正确显示。
头像
happybombman
帖子: 28
注册时间: 2005-06-20 1:32
联系:

#2

帖子 happybombman » 2006-08-12 12:05

按照楼主的步骤,为什么我用sudo irdadump命令后终端没有任何输出?我的本本也是华硕m2,还有什么要注意的地方吗?
eyess
帖子: 9
注册时间: 2006-08-06 22:58

Re: PC机和手机通过红外通信(互传文件)

#3

帖子 eyess » 2006-08-18 10:11

按照搂主的方法,安装了相应的软件,软件工作正常!
并采用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

请问楼主可否遇到此现象,或是那位大虾知道这个是什么问题!
请帮助我!
谢谢!
leeyee
帖子: 723
注册时间: 2006-04-11 9:01

#4

帖子 leeyee » 2006-08-18 21:44

我的一切正常的啊,我做的一般都是笔记本向手机发文件,还没有出错过。你的问题有没有什么特别一点的特征?确定手机容量够吗?

2楼的兄弟,你看一下

代码: 全选

$ lsmod | grep irda
红外模块有没有加载好。输出什么?
头像
happybombman
帖子: 28
注册时间: 2005-06-20 1:32
联系:

#5

帖子 happybombman » 2006-08-19 16:55

用$ lsmod | grep irda命令输出如下:
irda 217980 2 irtty_sir,sir_dev
crc_ccitt 2240 1 irda

不知是否正确?
eyess
帖子: 9
注册时间: 2006-08-06 22:58

#6

帖子 eyess » 2006-08-19 18:35

我的也和楼上的输出类似!

eyess@eyesspro:~$ lsmod | grep irda
irda 217980 1 smsc_ircc2
crc_ccitt 2240 1 irda

红外模块应该是加载成功了,而且,我能够从手机向计算机里传数据,就是不能从计算机中向手机里传数据!

手机的容量一定没有问题,我的手机可以外插卡,并且已经插了一张64M的miniSD卡。

每次从计算机中向手机中传数据时,
计算机终端显示:
PUT failed!(这个PUT到底是什么意思呀?)
而手机则显示:
操作失败!

不知楼主的环境是怎么样的,你是使用高速红外设置,还是低速红外设置,已经传输的数据类型是什么的?
eyess
帖子: 9
注册时间: 2006-08-06 22:58

#7

帖子 eyess » 2006-08-19 19:19

问题解决!

可以采用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!
新的版本没有试过,有谁有兴趣试一试!如果成功!写一个安装手记给大家学习学习!
leeyee
帖子: 723
注册时间: 2006-04-11 9:01

#8

帖子 leeyee » 2006-08-27 8:10

呵呵,欢迎补充啊!
I would love to change the world, but they won't give me the source code.
http://hi.baidu.com/wienerlee
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#9

帖子 bones7456 » 2006-09-01 22:58

我的执行第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'
是怎么回事阿?是驱动没装好吗?
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#10

帖子 bones7456 » 2006-09-02 8:37

机子重启了一下以后就没有以上问题了。但是第3步 sudo irdadump 的时候就没有任何反映了怎么回事?也没有什么错误信息输出啊!
wolfg
帖子: 27
注册时间: 2006-08-18 22:49
来自: 梨树
联系:

#11

帖子 wolfg » 2006-09-02 11:21

我的笔记本是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传送文件
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#12

帖子 bones7456 » 2006-09-08 19:47

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传送文件
怎么按这样做了,还是没有任何反映呢?
syoleen
帖子: 65
注册时间: 2006-11-02 9:07

#13

帖子 syoleen » 2006-11-05 18:26

我的做法和楼主的一样,用lsmod | grep irda的结果如下

irda 187068 2 irtty_sir,sir_dev
crc_ccitt 2304 1 irda

但是,运行sudo irdadump却没有反应,和happybombman(5楼)的一样。

有解决方法了吗?
leeyee
帖子: 723
注册时间: 2006-04-11 9:01

#14

帖子 leeyee » 2007-02-17 15:05

上面的方法在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
I would love to change the world, but they won't give me the source code.
http://hi.baidu.com/wienerlee
peacezhu
帖子: 15
注册时间: 2007-01-31 9:05

#15

帖子 peacezhu » 2007-05-26 18:20

能从电脑接收文件,为何发送的时候说连接不上呢?
T43 6600
回复