Android MID 3G 移植

来源:互联网 发布:c语言case语句用法 编辑:程序博客网 时间:2024/05/01 05:10
市面上大多数MID使用的3G模块一般都是使用中兴、华为的,
在项目中本人调试过中兴的MU301 TD模块、华为的EM770w WCDMA模块。
本文基于华为的EM770w WCDMA模块进行讲述。

Android的3g部分移植主要难点在于RIL层,
如果自己独立开发RIL需要对android的RIL、AT指令、通信流程等非常熟悉,
所以难度非常的大,请参考RIL源码。
现在买回来的3G模块,有些带有RIL库,放到适当位置即可。

1.修改init.rc
service ril-daemon /system/bin/rild -l libhuawei-ril.so -- -d /dev/ttyUSB2(PC UI Port name)
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio
启动rild的守护进程,指定的ril库进行通信,指定数据通信端口,如ttyUSB2。


2.修改执行权限
chmod 777 /dev/ttyUSB0 (拨号端口)
chmod 777 /dev/ttyUSB2 (数据端口)


3.修改拨号连接,
修改rild.c(in mydroid/hardware/ril/rild/rild.c),屏蔽以下语句:
// switchUser();
重新编译得到rild,并替换/system/bin/rild,

如果没有屏蔽这部分,3G模块上不了网。
注意:这步是华为特有的,其他模块不需要这样做。

4.添加ppp拨号脚本
拷贝“ip-up”,”ip-down”文件 到 /etc/ppp/目录下
这步注意是完成拨号后状态的记录,如IP,DNS等。
注意:两个文件的权限

5.添加临时文件夹
symlink /data/var /var
注意:这步也是华为特有的,主要是记录一下动态临时信息。

6.linux内核配置
请确认你的内核.config时候已经选中以下选项

# CONFIG_HIPPI is not set
CONFIG_ONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=y
CONFIG_PPP_MPPE=y
CONFIG_PPPOE=y
CONFIG_PPPOL2TP=y
#CONFIG_PPPOLAC is not set
# # CONFIG_PPPOPNS is not set
# # CONFIG_SLIP is not set
目的:开启ppp的支持。

7.最后启动android,设置APN即可上网。
TD:        46007 cmnet
WCDMA:46001 3gnet
注意:如果出现似:No APN found for carrier: 46xxx, 的错误,一般就是没有设置APN的缘故,请确认。

8.注意事项:
(1)华为的em770w 支持EDGE,WCDMA双模,所以可以用移动的卡调试,不同在于状态栏显示的标志为“E”和“3G”。
(2)如果上网出现问题,如没有显示“3G”等logo,请检查步骤3。
(3)如果没有netcfg没有出现ppp0,请检查步骤6。
(4)如果获取不到IP地址等信息,请检查步骤4。

原创粉丝点击