chuang 发表于 2014-11-1 12:02:54

ct调试中兴3G dongle(MF210V2)

ct调试中兴3G dongle(MF210V2)

1.驱动版本说明:
1.1目录结构
   script
   so
   userguide
1.2 文件说明
    驱动版本中文件说明:
    /script    拨号脚本
             /源文件编译结果
              chat
              ip-down-ppp0
              ip-up-ppp0
              readme.txt
             chat.c
             init.gprs-pppd
             ip-down-ppp0.c
             ip-up-ppp0.c
   /so    要移植的ril库
            /Android4.x   android4.0版本以上
                        libreference-ril.so
   /userguide    使用说明参考文档
                Android系统RIL适配用户参考-V0.8.pdf
        额外说明.pdf

2.添加内核模块
2.1 添加驱动
模块驱动的添加需要配置系统android系统内核,配置方法如下:cd linux-3.4/
make ARCH=arm menuconfig
device drivers--->usb support--->usb serial converter support选中如下组件:USB driver for GSM and CDMA modems2.2 添加设备 VID 和 PID
找到内核源码文件 option.c(一般情况下,路径在..\linux-3.4\drivers\usb\serial\option.c)
在源码中查找如下代码(蓝色部分),查找到后,添加红色部分驱动代码:<font color="#0000ff">static struct usb_device_id option_ids[] = {</font>
<font color="#ff0000">{ USB_DEVICE(0x19d2, 0x0117},</font>0x19d2 为ZTE厂商ID
0x0117为MF210V2 设备ID
上面的ID根据具体的模块来定,不同的模块ID不同。
2.3 PPP组件添加
Ril驱动联网功能底层使用ppp协议创建数据链路,因此需要在内核中配置对ppp
协议的支持。配置方法如下:cd linux-3.4/
make ARCH=arm menuconfig
device drivers--->network device support--->ppp surport选中如下组件:ppp filtering
ppp support for async serial ports
ppp support for sync tty ports
ppp deflate compression
ppp BSD-compress compression3集成驱动文件
   3.1 集成拨号脚本
3.1.1拷贝文件
将编译好的chat,ip-down-ppp0,ip-up-ppp0,libreference-ril.so拷贝到../device/third_part/zte (此目录没有,需要新建)目录下
3.1.2打包文件到系统中
修改device/softwinner/sugar-cubietruck/sugar_cubietruck.mk#      Bluetooth
#      TSCalibration2

+PRODUCT_PACKAGES += \
+      ip-up-ppp0\
+      chat\
+       Stk\
+       rild \
+       pppd   \
+      ip-down-ppp0
+
+PRODUCT_COPY_FILES += \
+      device/third_part/zte/init.gprs-pppd:system/etc/init.gprs-pppd\
+      device/third_part/zte/ip-up-ppp0:system/etc/ppp/ip-up-ppp0\
+      device/third_part/zte/chat:system/bin/chat\
+      device/third_part/zte/ip-down-ppp0:system/etc/ppp/ip-down-ppp0\
+      device/third_part/zte/libreference-ril.so:system/lib/libreference-ril.so
+
# wifi & bt config file
PRODUCT_COPY_FILES += \ 注意:当系统编译后,应该在 out 目录下对应平台的 system/etc/下找到 init.gprs-pppd;
在 out 目录下对应平台的 system/etc/ppp 下找到 ip-up-ppp0 和 ip-down-ppp0;在 out 目录下对应平台的 system/lib 下找到 libreference-ril.so。如果文件未找到说明相关文件未打包到系统中去,请检查相关配置是否正确。
3.2 修改系统配置
3.2.1 打开系统语音电话权限diff --git a/device/softwinner/sugar-cubietruck/overlay/frameworks/base/core/res
index e321075..b7365f0 100755
--- a/device/softwinner/sugar-cubietruck/overlay/frameworks/base/core/res/res/va
+++ b/device/softwinner/sugar-cubietruck/overlay/frameworks/base/core/res/res/va
@@ -45,7 +45,7 @@
          PackageManager.FEATURE_TELEPHONY system feature, which is
          available on *any* device with a telephony radio, even if the
          device is data-only. -->
-    <bool name="config_voice_capable">false</bool>
+    <bool name="config_voice_capable">true</bool>
   <!-- List of regexpressions describing the interface (if any) that represen
          bluetooth interfaces.If the device doesn't want to support tethering
          should be empty. -->
3.2.2 指定系统rild库路径及修改系统语言diff --git a/device/softwinner/wing-common/ProductCommon.mk b/device/softwinner/wing-common/Pro
index 1e2483f..85a8bb5 100755
--- a/device/softwinner/wing-common/ProductCommon.mk
+++ b/device/softwinner/wing-common/ProductCommon.mk
@@ -117,15 +117,15 @@ PRODUCT_COPY_FILES += \
PRODUCT_PROPERTY_OVERRIDES += \
ro.kernel.android.checkjni=0 \
persist.sys.timezone=Asia/Shanghai \
- persist.sys.language=en \
- persist.sys.country=US \
+ persist.sys.language=zh \
+ persist.sys.country=CN \
wifi.interface=wlan0 \
wifi.supplicant_scan_interval=15 \
debug.egl.hw=1 \
ro.display.switch=1 \
ro.opengles.version=131072 \
rild.libargs=-d/dev/ttyUSB2 \
- rild.libpath=/system/lib/libsoftwinner-ril.so \
+ rild.libpath=/system/lib/libreference-ril.so \
keyguard.no_require_sim=true \
persist.sys.strictmode.visual=0 \
persist.sys.strictmode.disable=1 \3.2.3修改驱动设备文件的权限、添加 rild 服务,-d 表示模块接收 AT 服务的端口参数,-u 表示 DATA 端口,diff --git a/device/softwinner/wing-common/init.rc b/device/softwinner/wing-common/init.rc
index 7f1105f..652452e 100755
--- a/device/softwinner/wing-common/init.rc
+++ b/device/softwinner/wing-common/init.rc
@@ -339,6 +339,24 @@ on boot
   setprop net.tcp.buffersize.hspa    4094,87380,262144,4096,16384,262144
   setprop net.tcp.buffersize.edge    4093,26280,35040,4096,16384,35040
   setprop net.tcp.buffersize.gprs    4092,8760,11680,4096,8760,11680
+
+       setprop service.down.firmwarefalse
+ setprop service.ap.infoget   false
+ setprop service.bp.infoget   false
+on property:service.down.firmware=true
+   stop ril-daemon
+chmod 777 /dev/ttyUSB0
+   chmod 777 /dev/ttyUSB1
+   chmod 777 /dev/ttyUSB2
+   chmod 777 /dev/ttyUSB3
+   chmod 777 /dev/ttyUSB4
+on property:service.down.firmware=false
+   start ril-daemon
+chmod 777 /dev/log/radio
+   chmod 777 /dev/log/system
+   chmod 777 /dev/log/events
+   chmod 777 /dev/log/main
+

# Set this property so surfaceflinger is not started by system_init
   setprop system_init.startsurfaceflinger 0
@@ -437,12 +455,21 @@ service netd /system/bin/netd
service debuggerd /system/bin/debuggerd
   class main

-service ril-daemon /system/bin/rild
+service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so
+    ---d   /dev/ttyUSB2   -u /dev/ttyUSB1
   class main
   socket rild stream 660 root radio
   socket rild-debug stream 660 radio system
   user root
   group radio cache inet misc audio sdcard_rw log
+   ###添加重启 rild 的机制###
+    on property:ril.reset.rild=1
+    stop ril-daemon
+    start ril-daemon
+    setprop ril.reset.rild    0
###添加重启模块的机制,其中 ResetModem ()为用户自己实现的重启模块的函数###
+on property:ril.reset.modem=1   
+    on property:ril.reset.modem=1
+    /system/bin/ResetModem:

service surfaceflinger /system/bin/surfaceflinger
   class main
@@ -476,6 +503,12 @@ service bootanim /system/bin/bootanimation
   disabled
   oneshot
###添加 pppd_gprs 服务###
+service pppd_gprs /system/etc/init.gprs-pppd
+    user root
+    group radio cache inet misc
+    disabled
+    oneshot
+
service installd /system/bin/installd
   class main
   socket installd stream 600 system system3.2.4 修改android_filesystem_config.h 文件diff --git a/system/core/include/private/android_filesystem_config.h b/system/core/include/priv
old mode 100644
new mode 100755
index 7e34da8..3d38c1f
--- a/system/core/include/private/android_filesystem_config.h
+++ b/system/core/include/private/android_filesystem_config.h
@@ -194,7 +194,8 @@ static struct fs_path_config android_files[] = {
   { 00550, AID_DHCP,      AID_SHELL,   "system/etc/dhcpcd/dhcpcd-run-hooks" },
   { 00440, AID_BLUETOOTH, AID_BLUETOOTH, "system/etc/dbus.conf" },
   { 00444, AID_RADIO,   AID_AUDIO,   "system/etc/AudioPara4.csv" },
-    { 00555, AID_ROOT,      AID_ROOT,      "system/etc/ppp/*" },
+    { 00777, AID_ROOT,      AID_SHELL,   "system/etc/init.gprs-pppd" },
+    { 00777, AID_ROOT,      AID_ROOT,      "system/etc/ppp/*" },
   { 00555, AID_ROOT,      AID_ROOT,      "system/etc/rc.*" },
   { 00644, AID_SYSTEM,    AID_SYSTEM,    "data/app/*" },
   { 00644, AID_MEDIA_RW,AID_MEDIA_RW,"data/media/*" },3.2.5修改property_service.cdiff --git a/system/core/init/property_service.c b/system/core/init/property_service.c
index dfe62ed..9ec7ebe 100755
--- a/system/core/init/property_service.c
+++ b/system/core/init/property_service.c
@@ -65,6 +65,7 @@ struct {
} property_perms[] = {
   { "net.rmnet0.",      AID_RADIO,    0 },
   { "net.gprs.",      AID_RADIO,    0 },
+    { "net.ppp0.",      AID_RADIO,    0 },
   { "net.ppp",          AID_RADIO,    0 },
   { "net.qmi",          AID_RADIO,    0 },
   { "ril.pcui",            AID_RADIO,    0 },
@@ -112,8 +113,7 @@ struct {
   unsigned int uid;
   unsigned int gid;
} control_perms[] = {
-    { "dumpstate",AID_SHELL, AID_LOG },
-    { "ril-daemon",AID_RADIO, AID_RADIO },
+    {"pppd_gprs", AID_RADIO, AID_LOG },
      {NULL, 0, 0 }
};3.2.6修改ueventd.rcdiff --git a/system/core/rootdir/ueventd.rc b/system/core/rootdir/ueventd.rc
old mode 100644
new mode 100755
index b1664f4..6f79380
--- a/system/core/rootdir/ueventd.rc
+++ b/system/core/rootdir/ueventd.rc
@@ -7,7 +7,11 @@
/dev/urandom            0666   root       root
/dev/ashmem               0666   root       root
/dev/binder               0666   root       root
-
+/dev/ttyUSB0            0660   radio      radio
+/dev/ttyUSB1            0660   radio      radio
+/dev/ttyUSB2            0660   radio      radio
+/dev/ttyUSB3            0660   radio      radio
+/dev/ttyUSB4            0660   radio      radio
# Anyone can read the logs, but if they're not in the "logs"
# group, then they'll only see log entries for their UID.
/dev/log/*                0666   root       log4.调试方法
如果系统调试过程中出现问题,可以通过在 cmd 中输入 adb shell 后进入 ADB 中,并输
入以下命令抓取 LOG 来分析:$ netcfg
$ logcat –b radio –v time
$ getprop
$ logcat –v time –s pppd
$ logcat –v time
$ dmesg5.常见参数详解
at+cgmi   查询制造商名称
ZTE WELINK CORPORATION

at+cgmm 查询模块型号
MF210V2

at+csq
+CSQ: 0,99 返回0就是没信号

at+csq
+CSQ: 3,99 返回3信号很弱(一般要6左右才能正常上网)

atd15889428164;
OK               拨号成功返回OK
RINGBACK






chuang 发表于 2014-11-1 12:04:27

惯例,占2楼

yuanwf 发表于 2014-11-4 13:48:55

调试好驱动,就可以通话和数据业务吧

chuang 发表于 2014-11-4 17:07:27

是的,另外也要看信号的强度,上网需要打开数据连接
页: [1]
查看完整版本: ct调试中兴3G dongle(MF210V2)