e680i手机嵌入式linux 研究 --安恒网管员手记
2005-03-13      
打印自: 安恒公司
地址: HTTP://tcpdump.anheng.com.cn/news/article.php?articleid=715
e680i手机嵌入式linux 研究 --安恒网管员手记

e680i的手机,使用linux做操作系统,
对于搞linux的人来说,首先要做到的是能够进入telnet,才可以进一步研究e680i的linux.
telnet的tcpip网络是这样搭建的,将e680i的usb设置到motnet模式,所谓的motnet就是usbnet,
通过一个设备把2个usb口联起来进行通讯就是用的usbnet模式,是一种点对点的tcpip通道.

在网上查到的切换usb模式的方式,都是e680的,不适用于e680i,
通过研究手机文件系统的内容,发现用modem方式的at+mode=99来切换手机的usb到usblan模式
的方法不能使用,modem文件的反编译发现at+mode=99这个at命令参数已经被去掉.这样.只能通
过对/proc/motusbd进行直接写入来切换usb状态,写/proc/motusbd网上查到有2种方法.都是想
办法执行一个定制的shell脚本,第一种是建立一个脚本文件,把它的打开方式改为一个图标是笑脸
的程序,估计这个程序是/bin/bash, 这个笑脸程序在e680i中已经被取消了.第二种是在mmc卡建立
一个特定文件名的文件.这个文件会在开机的时候,被作为脚本运行.在e680下,这个文件叫
acmattch.txt, 但是在e680i中,这个文件不起作用了.

通过分析e680i的启动脚本,可以看到,这个自启动文件名被改成了startup.txt,可以放在sd卡/下,
也可以放在内存的/diska/preload/startup.txt.
这样就好了,我们建立一个shell脚本,让它自动打开motnet模式.脚本内容如下
#!/bin/bash
echo MotNet>/proc/motusbd
 重新开机,e680i的usb模式就换成MotNet了.切换成功的标志是,e680i的设备号变成了600c,可以在win下看
设备的属性来确认.在linux下,执行lsusb来看,e680i有不下10个设备号,在不同的状态,
e680i切换到MotNet模式后,使用的ip是169.254.142.2(pc是windows)或者192.168.1.2(pc是linux)
并且打开了samba服务,提供了2个文件共享目录,
[system] 是系统的根目录, [diska]是系统内存目录/diska,通过修改它的/etc/samba/smb.conf
还可以添加一些别的共享名,比如sd卡的目录等等.
要想通过usb口联接到e680i,pc端需要装usbnet的驱动, 在网上可以下载到win的usblan.rar这个程序
和一个针对e680(i)的设备号是22b8-600c的inf文件.安装后把inf文件放进usblan安装路径,就可以了.
telnet 169.254.142.2 或者直接看网上邻居 \\169.254.142.2\system \\169.254.142.2\home

在linux下,也有usblan程序,最新的版本是1.0.0.7,只能运行在2.4内核下,
如果你的pc的内核是2.6.12,问题就简单多了.在2.6.12以后,内核中增加了一个usbnet模块,可以直接用来
联接e680i,这时,e680i的ip是192.168.1.2,这跟win的pc端不同.
只要执行 ifconfig usb0 192.168.1.1配上ip,就可以对192.168.1.2进行telnet了,还可以用smbclient
联接\\192.168.1.2\system和\\192.168.1.2\home.

这是在linux下联接上手机,手机在usblan模式下的正确的信息:
# lsusb
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 007: ID 22b8:600c Motorola PCS e680i GSM Phone
Bus 001 Device 001: ID 0000:0000

#ifconfig usb0 192.168.1.1
# telnet 192.168.1.2
Trying 192.168.1.2...
Connected to 192.168.1.2.
Escape character is '^]'.

MontaVista Linux Consumer Electronics Edition 3.0
Linux/armv5tel 2.4.20_mvlcee30-mainstone


(none) login: root
Linux 192.168.1.11 2.4.20_mvlcee30-mainstone #7 Fri Feb 13 15:39:51 CST 2004 armv5tel unknown

MontaVista Linux Consumer Electronics Edition 3.0

No directory /root!

# cat /proc/cpuinfo
Processor       : Intel XScale-Bulverde rev 7 (v5l)
BogoMIPS        : 291.63
Features        : swp half thumb fastmult edsp
CPU implementor : 0x69
CPU architecture: 5TE
CPU variant     : 0x0
CPU part        : 0x411
CPU revision    : 7
Cache type      : undefined 5
Cache clean     : undefined 5
Cache lockdown  : undefined 5
Cache unified   : harvard
I size          : 32768
I assoc         : 32
I line length   : 32
I sets          : 32
D size          : 32768
D assoc         : 32
D line length   : 32
D sets          : 32

Hardware        : Motorola Ezx Platform
Revision        : 0000
Serial          : 0000000000000000
# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                 54M   55M     0 100% /
/dev/root              54M   55M     0 100% /
/dev/tffsa             16M   16M     0 100% /usr/language
/dev/roflash2         408k  408k     0 100% /usr/setup
/dev/mtdblock2        5.2M  1.6M  3.5M  31% /ezxlocal
/dev/mmca1            488M  161M  327M  33% /mmc/mmca



责任编辑: 刘世伟