据我所知,一些手机使用 IrCOMM 标准,例如 Ericsson SH888 和 NOKIA 6110(我不确定 NOKIA 8110)。一些手机(Ericsson T68)使用 IrOBEX 标准或 IrMC。有关 Linux 和手机的更多通用信息,请参阅 TuxMobil。您可以使用 IrCOMM 设置 PPP 调制解调器连接,并使用 OpenOBEX 发送或检索文件(例如,地址簿条目、徽标、铃声)。
本章介绍如何通过 IrDA 将您的手机与 Linux 电脑连接。它基于 Matthias Schmidt 的报告。已使用以下手机进行测试
Ericsson T39m
Siemens S25
Siemens S35i
Siemens ME45
Nokia 6110
Nokia 6210
按照上述说明配置 IrDA 基础知识(内核配置、/etc/modules.conf、irattach、PPP)(有关 PPP 的详细信息,另请参阅 PPP-HOWTO)。现在检查是否已找到您的手机
# irdadump xid:rsp be1eb736 > 08666644 S=6 s=4 SIEMENS S35 hint=9024 [ Modem IrCOMM IrOBEX ] (28) # irdadump xid:rsp be1eb736 > 35450000 S=6 s=4 Nokia 6100 hint=8101 [ PnP Telephony ] (28) # irdadump xid:rsp be1eb736 > 04489982 S=6 s=5 SIEMENS ME45 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (29) |
如果您喜欢更舒适的方式,可以使用 wvdial。它易于配置,并且适用于许多漫游提供商和德国的 Tante T。gh0st 和我昨天做了一些测试,我们无法使用 wvdial 连接到 HRZ 的拨入服务器。wvdial 总是因“密码错误”而失败,因为服务器响应速度比手机软调制解调器发送登录名和密码字符串的速度更快。请参阅下面的标准 ppp 配置。/etc/wvdial.conf:
[Dialer Defaults] Modem = /dev/ircomm0 Baud = 9600 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Password = internet Username = internet Phone = 00393492002800 ISDN = 0 Modem Type = Analog Modem [Dialer shh] Init3 = ATM0 |
wvdial 出现问题(见以上解释)?恕我直言,最好的方法是使用标准的 PPP 工具。您可以通过 pppconfig 配置它们,使用 pon 启动,并使用 poff 停止连接。
名为以下连接的 PPP 示例文件irda: /etc/ppp/pap-secrets
# username connection-name password test irda test |
hide-password noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/irda" debug /dev/ircomm0 9600 defaultroute noipdefault user test remotename irda ipparam irda usepeerdns |
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED '' ATZ # dial-in number of the ISP OK-AT-OK ATDT<YOUR_ISP_PHONE_NUMBER> CONNECT \d\c |
如果您的手机通过红外线工作,您可以用它做一些有趣的事情。您可以保存您的电话簿或短信,发送短信,在手机上放置新的徽标(BMP 格式),将旧徽标保存到您的硬盘,并对您的铃声(MIDI)执行相同的操作。要完成所有这些有趣的事情,您需要以下内容
支持 OBEX 的手机,例如 Siemens 手机
可用的红外连接
scmxx 工具
gscmxx(可选)
将您的手机绑定到 IrDA 服务
# irattach /dev/ttyS1 -s IrDA: Registered device irda0 |
检查连接
# irdadump xid:cmd 9d5dcefa < ffffffff S=6 s=3 (14) xid:cmd 9d5dcefa < ffffffff S=6 s=4 (14) xid:rsp 9d5dcefa > 08666644 S=6 s=3 SIEMENS S35 hint=9024 [ Modem IrCOMM IrOBEX ] (28) |
显示有关您手机的常规信息
# scmxx -i Accessing device /dev/ircomm0 OK, a modem device is present. Vendor: SIEMENS Model: S35i Revision: 20 Serial (Phone): xxxxxxxxxxxxxxx Serial (SIM): xxxxxxxxxxxxxxx SIM-ID: xxxxxxxxxxxxxxxxxxxxx Operator: D2 SMS Server: +491722270333 Charset: GSM Battery: 40% Signal/BER: -79 dBm/? Time: 02/10/07,11:48:49 Readable Slots: bmp: 0-1, mid: 0, vcs: 1-30 Phonebooks: FD, SM, ON, ME, LD, MC, RC, OW, MS, CD, BL, RD, CS SMS storages: SM |
将您的电话簿保存到磁盘
# scmxx -g -PSM -f phonebook Accessing device /dev/ircomm0 OK, a modem device is present. Detected SIEMENS S35i phonebook created. Receiving: 1 2 3 4 5 6 7 8 9 [...] Received all gettable entries |
显示您的短信(此处为插槽 3)
# scmxx -g -S3 -f - Accessing device /dev/ircomm0 OK, a modem device is present. Detected SIEMENS S35i Looking for SMS of specified type... Receiving incoming, read SMS from slot 3. Slot: 3 From: xxxxxxxxxxxxxx Date: 2002-10-03 23:11:47 (GMT+0) SMSC number: xxxxxxxxxxxxxxxx PDU type: SMS-DELIVER MMS Data Coding Scheme: 7bit-GSM Message length: 160 Message: xxxxxxxxxxxxxxxxxxxxxxxxxx |
将您当前的徽标保存到磁盘
# scmxx -g -B0 -f logo.bmp Accessing device /dev/ircomm0 OK, a modem device is present. Detected SIEMENS S35i Slot 0... Receiving packet 1 of 5... logo.bmp created. Receiving packet 2 of 5... Receiving packet 3 of 5... Receiving packet 4 of 5... Receiving packet 5 of 5... File transfer complete. |
将您当前的铃声保存到磁盘
# scmxx -g -M0 -f sound.mid Accessing device /dev/ircomm0 OK, a modem device is present. Detected SIEMENS S35i Slot 0... Receiving packet 1 of 1... sound.mid created. File transfer complete. |
Michael McConnell 在 他的网站 上发布了关于 Motorola Timeport GSM 手机和 Linux-IrDA 通信的初始版本指南。
T39 用户(也可能是 T300)请注意。请查看 Jean Tourrilhes 的网页,您将需要应用内核补丁并调整/proc/sys/net/irda/max_tx_window
1. 配置 要启动与/dev/ircomm0的通信会话,例如,请说
dip -t > port ircomm0 > term |
Benny Amorsen 写道:当您使用串行电缆连接 SH888 时,它会模拟一个 IRDA 端口。我不明白为什么有人会想到这样奇怪的事情,但这就是它在 Windows 中工作的方式。虽然我从未设法让它在 Windows 中工作。
Ales Dryak 发送了这份调查(看起来像 Debian/GNU Linux 发行版,请相应地修改您的配置)。手机 Ericsson SH888 ati1 = 980408 1035 PRGCXC125101
mknod /dev/ircomm0 c 161 0 mknod /dev/ircomm1 c 161 1 |
alias tty-ldisc-11 irtty alias char-major-161 ircomm-tty |
<ABORT stuff> "" \d\d\d\d\d\dATZE0 OK ATD<phone number to call) CONNECT \d\c |
noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/sh888" /dev/ircomm 115200 defaultroute noipdefault user <your username> # don't forget to add your password to chap secrets or chat script |
执行 pppd call sh888 几秒钟(大约 30 秒)后,我连接到我们的内联网/互联网,具有完整的 IP 连接(已测试 telnet、ftp、www、icmp)。此外,我可以连接到/dev/ircomm使用 minicom 并使用 AT 命令进行操作。太棒了!而且看起来很稳定!
Gerhard Gonter 报告:列表中的几位成员正在成功地将 Ericsson 手机 SH888 与 Linux-IrDA 软件一起使用,通常用作调制解调器。该软件对于使用 AT 命令访问手机的其他部分也非常有用。内置电话簿是一个有趣的目标。
在互联网(FreshMeat、Deja、YAHOO)上快速搜索后,我没有找到任何适用于 Linux(或另一个 Unix)的电话簿工具。为了解决这个问题,我编写了一个小的 Perl 脚本和一个相关的模块。由于现在它对我来说可以接受地工作,我决定将其打包并在开发的早期阶段发布它。tarball 可以从 此处 检索。
在邮件列表 gsmlib 中也推荐了它,尽管...我无法通过红外线使用它,无法与我的 sh888 连接。Florian Lohoff 报告:适用于 S25(某种程度上)。我需要更改一个 ifdef,因为 S25 似乎没有用 CR LF 响应。但是设置从 /dev/mobilephone -> /dev/ircomm 的链接让我可以通过 S25 发送短信,没有问题。电话簿备份不起作用,因为 S25 对可能为空的电话簿做出了一些愚蠢的响应。
短信消息和电话簿的规范可以免费下载(免费,不是 FSF 免费 ;-) 来自 ETSI。搜索 GSM 07.07(您可能还需要 GSM 07.05)。您必须先注册才能下载它。标准是 Acrobat PDF 格式。S25 支持的命令可以在 Siemens 网站上以 PDF 格式免费获得。
SH888 的 AT 命令调查可在 Ericsson 找到。
Carlos Vidal 写道:如果我错了请纠正我,但在我看来,诺基亚电话似乎不包含真正的硬件调制解调器,而是类似于 PC 的 WinModem 的东西。每当诺基亚写到调制解调器通信时,他们都会使用名称“Windows 软件调制解调器”(或类似的东西)。这实际上得到了使用特殊的诺基亚 Windows 软件(称为 Nokia Cellular Data Suite)的支持。
Joonas Lehtinen 写道:这对于 61xx 型号是正确的。型号:8810、9000(i) 和 9110 应该可以正常工作。(它们内置了调制解调器)。我的 Nokia 9000 报告 IrCOMM 与 linux。
Carlos Vidal carlos_at_tarkus.se 的一些建议:“我正在做一些测试,试图看看我的 Nokia 6110 在 Linux 上能走多远。我刚刚编译了 gnokii-0.2.4 [ gnokii 是一个用于通过串行电缆连接的诺基亚手机的 Linux/*BSD 工具集,WH],但它不起作用 [请检查当前的 gnokii,行为应该已经改进,还有关于手机 IrDA 连接的有用文档,WH]。由于我有 Nokia Data Suite,我做了以下连接
Nokia 6110 <-- 诺基亚电缆 --> PC/Linux <-- 空调制解调器电缆 --> PC/W95
在 PC/Linux 中,我运行了程序 snooper(由 Jun-ichiro itojun Itoh 编写,抱歉找不到 URL,也许其他一些嗅探器也可以,例如 sniffit,另请参阅关于串行嗅探器的附录,WH),并进行了一些修改以正确配置串行端口。
通常,如果 snooper 具有正确的波特率,则手机和 PC/W95 应该像没有 snooper 在中间一样进行通信。当我破解我的美能达相机的协议时,这效果很好。这里的问题是手机不响应或过一会儿挂起。
似乎时序在通信的初始阶段非常重要。我获得的日志是
0>1: UUUUUUUUUUUUUUUUUUUUUUUU line 0: LE *DTR *RTS ST SR CTS CD RI *DSR line 1: LE *DTR *RTS ST SR CTS CD RI *DSR 0>1: UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUU\x1e\x00\x0c\x02\x00\x09\x00\x01\x00\x0d\x00\x00\x02\x01@\x00P\x 06 1>0: \x18\x00\x00\x00\xfc\x18\x00\x00\x00\x00\x00\x00\xc0\xf0 0>1: \x1e\x00\x0c\x02\x00\x09\x00\x01\x00\x0d\x00\x00\x02\x01@\x00P\x06 1>0: \x18\x00\x00\x00\x18\x00\x00\xc0\xf0\x18\x00\x00\x00\x00\x00\x00\xc0\xf0 0>1: \x1e\x00\x0cd\x00\x06\x00\x01\x00\x10\x01`\x13\x13 1>0: \x18\x00\x00\xf0\x00\x00\xfc 0>1: \x1e\x00\x0cd\x00\x06\x00\x01\x00\x10\x01`\x13\x13 |
我猜发生的事情是手机正在尝试找到正确的波特率,但由于 snooper 引入的延迟而失败。这可能与也用于红外连接的某些 IrDA 协议有关。”
Wessel de Roode “我设法获得了 Discovery IR 提示位(使用我的 Palm Pilot)
Discover: 0:xxxxxxxx:81.01 01 IR_HINT_PNP 01 IR_HINT_TELEPHONY (IrMC ?) 80 IR_HINT_EXT Device info query: \006Device\012DeviceName 4e 6f 6b 69 61 20 36 31 30 30 Nokia 6100 |
还有关于 gsmlib 用于发送和接收短信消息,更新地址簿等的报告。这些功能正在工作,除了轻微的字符集问题。
gnokii 是一个 Linux/Unix 工具套件,很快将成为诺基亚 (GSM) 手机的调制解调器/传真驱动程序。支持的手机包括 3110、3810、8110、5110、6110 及其衍生型号。
Florian Lohoff 的配置:“逐步进行 - 让您的 irda 工作 irattach /dev/ttySx 等。然后看看/proc/net/irda/discovery是否找到类似这样的内容
(flo@paradigm)~# cat /proc/net/irda/discovery IrLMP: Discovery log: nickname: SIEMENS S25, hint: 0x9024, saddr: 0x4286ce23, daddr: 0x04295741 |
Timo Felbinger 描述了东芝和西门子 S25 之间的连接
内核 2.2.12 和 patch-2.2.12-irda3,内核中的 IrDA 支持,ircomm 和 ircomm-tty 作为模块
mknod /dev/ircomm0 c 161 0
modprobe ircomm, modprobe ircomm-tty
在 /etc/irda/drivers 的启动部分使用 modprobe toshoboe 启动 irattach。注意:不要在 irattach 之前加载 toshoboe,这可能会导致设备或资源繁忙
在 dip -t 和命令端口 ircomm0 之后,S25 显示连接。注意:当然必须激活 S25 的 IR 端口,两个设备之间的距离似乎并不重要。
在 term 之后,S25 的行为类似于通常的 Hayes 调制解调器,并且可以与 AT 命令一起使用。
使用 pppd 拨出即可正常工作。
SCMxx 可以将文件复制到西门子手机和从西门子手机复制文件,还可以删除存储的文件。文件可以从给定文件或通过 stdin 读取,并存储到给定文件或 stdout。短信也可以直接发送或接收,而无需存储在手机中。SCMxx 已使用西门子制造的几款手机(仅限 S25 及更高版本)进行测试。
给德国 e-plus 用户的注意事项
每份 e-plus 合同(Free&Easy 除外)都包含到 WWW 的 PPP 连接(无需单独注册)。这项服务在德国各地均可使用,电话号码为 123100。这也开箱即用。
pppd 配置
/dev/ircomm0 defaultroute netmask 255.255.255.0 debug mtu 552 crtscts noauth connect '/usr/sbin/chat -v -f /etc/ppp/eplus.chat' chat script /etc/ppp/eplus.chat: |
ABORT "BUSY" ABORT "ERROR" ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "NO ANSWER" SAY "initializing modem..." "" "AT" "OK" "ATZ" SAY "dialing..." "OK" "ATDT123100" SAY "waiting for CONNECT..." "CONNECT" "" SAY "connected!" SAY "" |