九鼎创展论坛

标题: X4418上移植支持usb 3g dongle [打印本页]

作者: yubang    时间: 2015-7-30 20:01
标题: X4418上移植支持usb 3g dongle
目前X4418上支持的usb 3g dongle 是华为的E303,支持3G上网。

下面大概描述以下如何在X4418上支持E303:(以下只是大概的移植步骤,具体的还需各自去实践)
usb 3G dongle的移植过程:
1)内核中的改动:包括配置usb 转serial,支持gsm,
另外也要添加SCSI的配置
linux/kernel/kernel-3.4.39/arch/arm/configs/x4418_defconfig

添加所用的dongle的VID PID到
/linux/kernel/kernel-3.4.39/drivers/usb/serial/option.c

到此,kernel的改动完成;


android部分的改动
2)usb mode switch的添加

usb_modeswitch工具及脚本usb_modeswitch.sh的添加
etc中usb_modeswitch.d文件夹里面的对应VID_PID的文件的添加

到这里后,插入dongle,应该能看到dev下有usb转串口的节点了:
ttyUSB0
ttyUSB1
ttyUSB2
ttyUSB3

3)开始插入dongle,系统会把其识别为存储设备,而现在我们需要的并非存储设备,所以需要将其转换,涉及到的改动就是system/vold下面的文件了:
G3Dev.cpp
G3Dev.h
Misc.cpp
NetlinkHandler.cpp
MiscManager.cpp
main.cp
等文件;

这里面涉及到的系统的文件夹有sys/class/usb_device下的以usb的号命令的文件夹,这个和热插拔有关;

这样之后,usb的存储设备的转换就OK了;


4)那么接下来的就是要实现拨号上网了;
要实现这个,需要一个ril库,然后开这个服务;另外还有是ppp相关的脚本和工具
我们用的ril库是:libril-rk29-dataonly.so
工具及脚本:call-pppd,ip-down,ip-up,ppp-off,chat工具
其他:operator_table
另外和apn相关的文件:apns-full-conf.xml, spn-conf.xml

以上这些是复制过来即可,与此对应地,需要改动device.mk文件,init.rc文件,进行一些服务如ril-deamon的开启,一些文件的复制,另外是一些文件的属性的改动;
另外要改动的文件:
device/nexell/drone2/overlay/frameworks/base/core/res/res/values/config.xml
否则,系统虽然启动了ril服务,但是它不会去拨号。

接着改动hardware/ril/rild/rild.c,里面屏蔽switchuser函数的使用;否则它只能是去手动拨号,而不会去自动拨号。


到这里为止,需要做的工作基本完成。应该就能上网了。
这里面用的是usb dongle,需要做转换。而pci的3g,是直接焊接到板子上的,则不需要转换。


以上为大概的流程,具体的细节,可以上网查一下,进行实践,应该问题不大。






欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2