3.10. 手机连接

据我所知,一些手机使用 IrCOMM 标准,例如 Ericsson SH888 和 NOKIA 6110(我不确定 NOKIA 8110)。一些手机(Ericsson T68)使用 IrOBEX 标准或 IrMC。有关 Linux 和手机的更多通用信息,请参阅 TuxMobil。您可以使用 IrCOMM 设置 PPP 调制解调器连接,并使用 OpenOBEX 发送或检索文件(例如,地址簿条目、徽标、铃声)。

3.10.1. 通用说明

本章介绍如何通过 IrDA 将您的手机与 Linux 电脑连接。它基于 Matthias Schmidt 的报告。已使用以下手机进行测试

按照上述说明配置 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)

3.10.1.1. PPP 拨号软件

3.10.1.1.1. minicom

有几种连接到 ISP 的方法。最简单(有时也是唯一)的方法是使用像 minicom 这样的终端程序。

3.10.1.1.2. wvdial

如果您喜欢更舒适的方式,可以使用 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

3.10.1.1.3. PPP 工具

wvdial 出现问题(见以上解释)?恕我直言,最好的方法是使用标准的 PPP 工具。您可以通过 pppconfig 配置它们,使用 pon 启动,并使用 poff 停止连接。

名为以下连接的 PPP 示例文件irda: /etc/ppp/pap-secrets

# username	connection-name	password
test	irda		test
/etc/ppp/peers/irda
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
/etc/chatscripts/irda
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

3.10.1.2. 徽标、声音、短信,...

如果您的手机通过红外线工作,您可以用它做一些有趣的事情。您可以保存您的电话簿或短信,发送短信,在手机上放置新的徽标(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.

3.10.2. OBEX 连接

请参阅下面的 OpenOBEX 章节。有关与手机的 OBEX 连接的详细信息将在稍后提供,希望如此。另请参阅 Palm III 部分,了解有关设置连接的信息。

3.10.3. 特定手机

3.10.3.1. 摩托罗拉

Michael McConnell 在 他的网站 上发布了关于 Motorola Timeport GSM 手机和 Linux-IrDA 通信的初始版本指南。

3.10.3.2. 爱立信

T39 用户(也可能是 T300)请注意。请查看 Jean Tourrilhes 的网页,您将需要应用内核补丁并调整/proc/sys/net/irda/max_tx_window

1. 配置 要启动与/dev/ircomm0的通信会话,例如,请说

dip -t
> port ircomm0
> term
您可能也可以使用 cuxc 代替 dip,例如 cu -l /dev/ircomm0xc -l /dev/ircomm0。还有关于 Ericsson GF768 和 IR Modem DI 27 的一些努力的报告。

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
2. /etc/conf.modules
alias tty-ldisc-11 irtty
alias char-major-161 ircomm-tty
3. /etc/irda/drivers: irattach /dev/ttyS0 -s # (SIR 模式下的 IrDA 端口) 4. /etc/chatscripts/sh888
<ABORT stuff>
"" \d\d\d\d\d\dATZE0
OK ATD<phone number to call)
CONNECT \d\c
5. /etc/ppp/peers/sh888
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 命令进行操作。太棒了!而且看起来很稳定!

3.10.3.2.1. 工具

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 找到。

3.10.3.3. NOKIA

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
0 是 PC/95,1 是手机。通信以一连串的 'U' (0x55) 和 DSR/DTR 开关开始。手机以 '0x18 0x00 ...' 回答。此对话持续一段时间,仿佛两者都是聋子,最终手机崩溃,唯一的重置方法是取出电池!

我猜发生的事情是手机正在尝试找到正确的波特率,但由于 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
我还设法查询了诺基亚的 PNP 设备。它有一个 PNP 设备。它是 PNPC100,相当于 9600 波特调制解调器。我删除了查询,如果有人可以给我一个提示来恢复它。类似于 IrDA:<dunno>:PNP:Comp#01 相同的查询 IrDA:<dunno>:PNP:CompCnt 给出了诺基亚中可用的 PNP 设备数量。这里只有一个。”

还有关于 gsmlib 用于发送和接收短信消息,更新地址簿等的报告。这些功能正在工作,除了轻微的字符集问题。

3.10.3.3.1. 推荐工具

gnokii 是一个 Linux/Unix 工具套件,很快将成为诺基亚 (GSM) 手机的调制解调器/传真驱动程序。支持的手机包括 3110、3810、8110、5110、6110 及其衍生型号。

3.10.3.4. 西门子

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
现在加载 ircomm 和 ircomm-tty,通常 (tm) 您应该能够连接到正确的 /dev/ircomm,并且您可以轻松地拨号并加载/备份电话簿等...”,例如使用 minicom。

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 拨出即可正常工作。

3.10.3.4.1. 推荐工具

SCMxx 可以将文件复制到西门子手机和从西门子手机复制文件,还可以删除存储的文件。文件可以从给定文件或通过 stdin 读取,并存储到给定文件或 stdout。短信也可以直接发送或接收,而无需存储在手机中。SCMxx 已使用西门子制造的几款手机(仅限 S25 及更高版本)进行测试。

3.10.4. 德国 e-plus

给德国 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 ""
对于名称服务器,您可以使用 192.76.144.66。用户名或密码不是必需的。