新版说明:

 1、在这一版中,去除了一些复杂的设置方法,使用户添加新的3G dongle更加的容易。

 2、由于采用了不同的3G dongle检验方法,使得原本一些由于donglevidpid相同而引起的冲突得以解决,可支持更多的3G dongle


一、准备工作


 1、编译一个eng版本的系统,烧到pad上。

 2、在ubuntu系统电脑下,用adb连接pad

 3、在adb下,执行

 $ su (如果己经是root用户,可省过这一步)

[email protected]:/ # busybox vi init.nufront-ns115.rc

在打开的文档中,

 用#号注释掉下面这段:

 #service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so -- -d /dev/ttyACM1

 # 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

     

 保存退出。


 4、重启系统

[email protected]:/ # reboot

 

二、确定3G donglevidpid

  

 重启后重新用adb连接,在pad上插入3G dongle.

 [email protected]:/ # cd /sys/class/usb_device/usbdev1.x/device/

其中的xusb_device下的最大数字的目录。

[email protected]:/sys/class/usb_device/usbdev1.x/device # cat idVendor

12d1


可读到vid;


[email protected]:/sys/class/usb_device/usbdev1.x/device # cat idProduct

1446

  

可读到pid;


 假设这里你读到的vid12d1, pid1446


三、查看是否可以用脚本生成modemtty设备


 [email protected]:/ # usb_modeswitch_arm -I -W -s 10 -c "/etc/ppp/usb_modeswitch.d/12d1:1446" -v 12d1 -p 1446


 [email protected]:/ # ls /dev/ttyUSB*


 如果己经生成了/dev/ttyUSBn (n可能为0,1,2,3 ...)设备表示成功生成了tty设备,如果没有则需要修改kernel代码适配。


四、修改kernel代码,(如果上一步成功生成了tty设备,则跳过这一步)

 1)将该新转换后的dongle产品VidPid加入到kernel目录下的 drivers/usb/serial /option.c文件中的 option_ids数组中,

加入方式为{ USB_DEVICE(Vendor ID, Proc ID) }


 2)重新编译kernel后,可用adb的方式把新kernel pushpad上根目录下取代原来的uImage文件。之后重启,重复新三步,应能产生tty设备。


五、查找AT端口和Data端口(确保在此之前己经可以在/dev下产生ttyUSBn的设备)


1)依次对各个/dev/ttyUSBnn可能为0,1,2,3 ...)设备做下面的操作。

 [email protected]:/ # cat /dev/ttyUSB0 &

 [1] 7438


 [email protected]:/ # echo "AT\r" > /dev/ttyUSB0

 AT


 OK

 AT


 OK


 [email protected]:/ # echo "AT+CGMM\r" > /dev/ttyUSB0

 AT+CGMM


 E1750


 OK

 [email protected]:/ # kill 7438


 [email protected]:/ #


 [1] + Terminated cat /dev/ttyUSB0


 如果执行完 echo "AT\r" > /dev/ttyUSBn的命令后,能够如上正确返回OK,则表示是一个可用的端口,则记录下来,以备后用。

 上面发送AT+CGMM返回的E1750就是所插入3G dongle的设备编号。记下这个编号以备后用。


2)这里假设你得到的可用的ttyUSBn设备为ttyUSB0ttyUSB2两个端口。在终端执行


 [email protected]:/ # busybox vi /system/etc/ppp/modem_config

 在打开的文件中添加

 E1750 12d1:1446 /dev/ttyUSB0 /dev/ttyUSB2 0

 保存退出。

 这里E1750为设备编号,/dev/ttyUSB0表示AT端口,/dev/ttyUSB2表示Data端口,0表示是wcdma3G dongle. (如果是cdma的 

 3G dongle设为1)

 (格式为在每一个字串中间使用一个空格分隔)

3)恢复第一步中注释掉的rild的代码

  

 [email protected]:/ #busybox vi init.nufront-ns115.rc

 在打开的文档中,去掉#号:


 service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so -- -d /dev/ttyACM1

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

     

 保存退出。


 4)重启pad

如果重启后如果只能看到网络信号,但一直没有3G图标,说明AT端口和Data端口设反了,需要重新修改

busybox vi /system/etc/ppp/modem_config,修改AT端口和DATA端口的顺序为

E1750 12d1:1446 /dev/ttyUSB2 /dev/ttyUSB0 0

保存退出重启。


此时应己可上网。


六、修改配置文件


将上面可用的内容写入Android的代码中

 device/nufront/common/pre-built/ppp_cfg/modem_config文件中。

编译Android即可。

 
七、添加vid_pid文件
以下来自网络:
1. 查看vid_pid文件内容
先打开 目录 usb_modeswitch.d 下的 vid_pid 文件,看看文件中包含什么内
容。这里以华为的 12d1_1003 和 12d1_1031 为例:
例子 1: 12d1_1003 文件内容:
nufront pad 添加新的3G dangle支持
 
例子 2:12d1_1031 文件
nufront pad 添加新的3G dangle支持
 

参考上面两个例子(或者打开更多的例子)
,我们要制作的文件 vid_pid 格式
如下:
参考例子 1
nufront pad 添加新的3G dangle支持
 
参考例子 2
nufront pad 添加新的3G dangle支持
 
2、查看vid, pid
这里借助 Windows 系统的设备管理器来得到 vid,pid. 具体步骤如下。
2.1 查看DefaultVendor, DefaultProduct,
首先打开”设备管理器”,插入 3G Dongle,等”设备管理器”出现新设备后,
如下图所示:
nufront pad 添加新的3G dangle支持
 

出现上图后,右键单击“属性”
,然后选择“详细信息”
,将会看到下面图片:

nufront pad 添加新的3G dangle支持

上图 USB\VID_20A6&PID_F00E\000000000002 中的
VID_20A6&PID_F00E 表示该设备的 vid=0x20a6, pid=0xf00e.
这里就是 DefaultVendor, DefaultProduct。即
DefaultVendor=0x20a6
DefaultProduct=0xf00e
这样的的话,要写的 vid_pid 文件名为:20a6_f00e.
注意,若在安装 USB CD-ROM 中的应用程序前,这里有串口设备和 Modem
设备,则不用看下面的步骤了,直接按例子 1 写个 vid_pid 文件就可以了,如下
所示:
File 20a6_f00e

 nufront pad 添加新的3G dangle支持
 

2.2 查看TargetVendor, TargetProduct
得到 DefaultVendor, DefaultProduct 后,就可以安装 USB CD-ROM 中的应用
程序了,如何安装请参考 USB CD-ROM 中自带的说明文档。 应用程序安装完后,
打开该应用程序,这个时候 3G Dongle 会切换成另外一个组合设备,该组合设备
有几个串口和一个或者几个 USB Mass Storage 设备。
我这边测试的 3G Dongle 的应用程序如下所示:
nufront pad 添加新的3G dangle支持
 

打开应用程序后,将会出现新的串口和 Modem 口,如下图所示:

nufront pad 添加新的3G dangle支持
 

按前面方法得当 vid,pid,如下图所示:

nufront pad 添加新的3G dangle支持
 

由上图,我们知道了新的串口设备 vid, pid, 另外一个串口以及 Modem 口
的 vid,pid 一般都一样的,所以看一个串口设备的 vid, pid 就可以了。
故有:
所以目前可以先写个 vid_pid 文件了,如下:
File 20a6_f00e
nufront pad 添加新的3G dangle支持
 
目前,只剩下 MessageContent 的内容了。


2.3 读取MessageContent.
读取 MessageContent 需要借助 Bus Hound, 可以用 bushound5.0 完美版。这
里用 BusHound 来抓取 USB 设备的数据流。
下载,安装 bushound5.0 完美版,请到网上搜索下载,然后安装。
? 设置 bushound
设置 bushound 前,先插入 USB 3G Dongle.因为下面需要选择 USB 设备。
? 设置”Settings”


nufront pad 添加新的3G dangle支持

? 设置”Devices”
这里选择 USB 3G Dongle 相关的 USB Mass Storage 设备

nufront pad 添加新的3G dangle支持
 
 
? 抓取 MessageContent.
? Capture
点击“Capture”
,然后,点击”Run”,如下图所示


nufront pad 添加新的3G dangle支持


 ? 抓取 MessageContent
打开 USB 3G Dongle 应用程序,等 2 秒左右,点击”Stop”停止抓图, 这时候
切换的数据已经抓取到了,也就是 MessageContent 的内容,抓图如下:


nufront pad 添加新的3G dangle支持


 上图红线所示就是要抓的 MessageContent. 两个:

nufront pad 添加新的3G dangle支持
 or
nufront pad 添加新的3G dangle支持
 上面两个 MessageContent 建议都试下,有些 3G 设备两个都可以用,有些只
能用其中的一个。所以 vid_pid 文件也就完成了,如下:
File 20a6_f00e

nufront pad 添加新的3G dangle支持
 

相关文章:

  • 2018-03-16
  • 2021-11-16
  • 2021-10-19
  • 2021-11-03
猜你喜欢
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2021-08-29
  • 2021-07-20
  • 2022-01-09
  • 2021-12-31
相关资源
相似解决方案