Android源码包配置文件修改
3G驱动移植的在底层给予支持,Android还需要启动pppd服务进程,并配置相应的文件。pppd是一个普通的用户进程,pppd与内核中的PPP协议处理模块之间采用最传统的内核空间与用户空间之间通信方式,用源码编译生成的pppd文件。
chat是pppd所需的辅助工具,Android源码没有提供相应的源码包,采用编译ppp-2.4.1.tar.gz生成的chat.
源码包配置文件修改
在rootfs_base/目录下是配置文件,在执行build_android.sh编译源码时将rootfs_base/目录下的文件复制android文件镜像相应的目录下
修改初始化启动脚本rootfs_base/init.rc
#cd /home/now/android/android-2.1_r2/rootfs_base/
#vi init.rc //添加如下:启动pppd进程
service pppd_gprs /system/etc/ppp/init.gprs-pppd debug file /data/ppp/options.gprs
user root
group radio cache inet misc
# disabled
# oneshot
建立拔号启动脚本rootfs_base/system/etc/ppp/init.gprs-pppd
#cd /home/now/android/android-2.1_r2/rootfs_base/system/etc/ppp/
#vi init.gprs-pppd
#!/system/bin/sh
# An unforunate wrapper script
# so that the exit code of pppd may be retrieved
PPPD_PID=
/system/busybox/sbin/route del default
/system/bin/setprop "net.gprs.ppp-exit" ""
/system/bin/log -t pppd "Starting pppd"
/system/bin/pppd call cmnet
PPPD_EXIT=$?
PPPD_PID=$!
/system/bin/log -t pppd "pppd exited with $PPPD_EXIT"
/system/bin/setprop "net.gprs.ppp-exit" "$PPPD_EXIT"
新建拨号配置文件rootfs_base/system/etc/ppp/peers/cmnet cmtc-isp
#cd /home/now/android/android-2.1_r2/rootfs_base/etc/ppp/
#mkdir peers
#cd peers
#vi cmnet //新建文件并输入以下内容
/dev/ttyUSB2
115200
nocrtscts
nocdtrcts
local
usepeerdns
defaultroute
noipdefault
ipcp-accept-local
ipcp-accept-remote
user cmnet
password cmnet
nodetach
connect "/system/etc/ppp/cdma/chat -v -s -f/system/etc/ppp/peers/cmtc-isp"
保存退出
#vi cmtc-isp //新建文件并输入以下内容
TIMEOUT 5 '' AT OK AT+CGDCONT=1,"IP","CMNET" OK AT OK ATE0V1 OK AT OK
ATS0=0 OK AT OK ATE0V1 OK AT OK ATDT*99***1# CONNECT ''
保存退出
添加DNS服务器地址
#cd /home/now/android/android-2.1_r2/rootfs_base/system/etc/
#vi resolv.conf
nameserver 10.64.64.64
保存退出
安装拔号辅助工具chat
#cd /home/now/android/android-2.1_r2/rootfs_base/system/etc/ppp/cdma/
#cp /home/now/ppp-2.4.1/chat/chat ./
或者
#cp /tftpboot/chat ./
#chat 777 chat //增加执行权限
编译文件系统
#cd /home/now/android/android-2.1_r2/
#./build_android.sh
生成镜像文件rootfs/android.tar.gz
将重新制作文件系统烧至开发板,烧写方法见“UP-CUP6410烧写手册”
测试现象
上电启动系统,装好SIM卡及开线,将3G模块插入USB口。进入超级终端,
ps 查看pppd进程
#ps
root 6909 6905 1824 732 c00b7f60 afe0cd04 S /system/bin/pppd
netcfg
lo UP 127.0.0.1 255.0.0.0 0x00000049
eth0 DOWN 192.168.1.20 255.255.255.0 0x00001002
ppp0 UP 172.26.184.96 255.255.255.255 0x000010d1
在终端下ping baidu.com
#ping baidu.com
PING baidu.com (220.181.111.86) 56(84) bytes of data.
64 bytes from 220.181.111.86: icmp_seq=1 ttl=50 time=125 ms
64 bytes from 220.181.111.86: icmp_seq=2 ttl=50 time=127 ms
64 bytes from 220.181.111.86: icmp_seq=3 ttl=50 time=133 ms
64 bytes from 220.181.111.86: icmp_seq=4 ttl=50 time=221 ms
打开浏览器上网