android下调试3G之模块设备识别

3G模块设备和Android系统主要通过USB接口进行数据通信。Android系统上的Linux内核需要根据3G模块设备上报的USB设备接口加载USB

驱动,USB驱动正确加载后,3G模块才能正常工作。下面以添加华为模块设备识别为例:

一、修改 .../kernel/drivers/usb/serial/option.c文件

1、在option_probe()函数内添加红色框部分语句,可以支持 selective  suspend 特性。

2、在 option_driver()函数中添加红色框部分语句,增加对reset_resume函数的调用。

3、增加对新PID的支持,添加红色框部分语句。

4、在static  const  struct  usb_device_id  option_ids[ ] 增加华为所有的模块 ID,语句如下:

	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0xff, 0xff) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x01) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x02) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x03) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x04) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x05) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x06) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0A) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0B) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0C) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0D) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0E) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x0F) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x10) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x12) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x13) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x14) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x15) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x16) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x31) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x32) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x33) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x34) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x35) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x36) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3A) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3B) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3C) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3D) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3E) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x3F) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x46) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x01) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x02) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x03) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x04) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x05) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x06) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0A) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0B) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0C) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0D) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0E) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x0F) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x10) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x12) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x13) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x14) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x15) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x16) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x31) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x32) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x33) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x34) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x35) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x36) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3A) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3B) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3C) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3D) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3E) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x3F) },
	{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x46) }, 

二、修改 .../kernel/drivers/usb/serial/usb_wwan.c文件

1、添加对BCDUSB值和对华为vid值的定义,红色框部分语句:

2、先在usb_wwan_write()函数中添加:struct  usb_host_endpoint  *ep 定义;

再添加增加对零包的判断,添加红框部分语句:

到此,重新编译镜像,华为的3G模块就能识别了,如果上面注册的ID没有你使用的华为3G模块,在static const struct usb_device_id option_ids[ ]里面自行添加即可。

附:如果怕麻烦,还可以这样添加,以中兴MG3732模块为例。(系统支持中兴其他模块型号,只不过没有注册你的模块型号)

MG3732           VID:0x19d2       PID :0xffeb   (模块ID必须知道)

只需在.../kernel/drivers/usb/serial/option.c文件中增加如下红色框部分语句即可:

时间: 2024-08-27 09:35:14

android下调试3G之模块设备识别的相关文章

android下调试3G之手动拨号

当板子识别3G的USB串口设备时,在/dev下会看到ttyUSB0.ttyUSB1.ttyUSB2.ttyUSB3设备文件,就可以进行调试了.在拨号前还需要了解下模块USB串口的各个功能,比如中兴MG3732:Modem-ttyUSB3.AT-ttyUSB0.Debug-ttyUSB2.VoUSB-ttyUSB1,所以这里ttyUSB3用于拨号口,用的移动2G的卡. 一.在板子的 /etc/ppp下创建chat.peers文件夹,把一下对应的脚本文件放到新建的文件夹里. 1.char/evdo

android下调试3G之Ril库分析

一.基本架构概述 Android RIL (Radio Interface Layer)提供了Telephony服务和Radio硬件之间的抽象层.RIL负责数据的可靠传输.AT命令的发送 以及response(响应)的解析.一般的,应用处理器(AP)通过AT命令集与无线通讯模块(基带/BP)通信.通信的方式又分为主动 请求的request(诸如拨号.发短信--),以及Modem主动上报的例如信号强度.基站信息.来电.来短信等,称之为 unsolicitedresponse(未经请求的响应).系统

android下调试3G之gpio控制3G上电

如果是自己开发的板子,需要用GPIO引脚控制3G模块开机/关机时,下面的文章会对你有所帮助,是以处理器IMX6和中兴MG3732模块为例介绍. 一.引脚连接 处理器的gpio3_GPIO[9]连接3G模块的ON/OFF(29)引脚来控制3G的开机/关机. 二.开关机条件 给ON/OFF引脚连续2500~3500毫秒低电平则开机,给再ON/OFF引脚连续2500~3500毫秒低电平则关机. 三.gpio驱动程序 gpio_3g.c #include<linux/module.h> #includ

android下调试3G之USB串口驱动集成配置

一.修改Android内核的编译配置 vi ~/myandroid/kernel_imx/.config文件中,确保下面的的配置项已经被选定. (假如源码在~/myandroid目录下) 1. USB电源管理特性的相关配置项: CONFIG_USB_SUSPEND=y 2. USB串口驱动相关的配置项: CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_OPTION=y CONFIG_USB_SERIAL_WWAN=y 3. PPP拨号的相关配置项: CONFIG_PP

(转)&lt;Unity3D&gt;Unity3D在android下调试

转自:http://blog.csdn.net/zuoyamin/article/details/11827309 一.工具准备 1.JDK——由于android是基于Java平台开发的,jdk是必须要安装的.下载地址:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe 2.Android SDK——这个就不多说了,要开发a

android下调试unity3d应用

原地址:http://blog.csdn.net/armoonwei/article/details/7032455 目前貌似不支持断点调试,但可以通过日志打印(logcat)来跟踪. 在android SDK中有个adb工具,使用此工具来跟踪运行的android应用: adb logcat 启动logcat,并将设备上运行的android应用的运行时信息全部打印出来. adb logcat -s Unity 如果只想打印Unity的输出信息,使用此命令. adb logcat -d > log

android下调试声卡驱动之I2S音频通信

一.I2S概述 I2S(Inter-IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之 间的数据传输.由4条线组成的数字音频接口,常用于HiFi,STB便携设备.Tx  和Rx信号线用于音频传输.而位时钟和左右时钟 (LRC)用于同步链接.I2S具有灵活性,因为控制器和解码器都可以控制位时钟和左右时钟.位时钟因采样率和主系统时钟而有不 同.LRCLK与采样率相同.少数设备支持独立的ADC和DAC的LRCLK.这使在不同采样率情况下同步捕

android下调试声卡驱动之概述

在Android中音频系统使用的是ALSA系统架构.ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持 嵌入式处理器和移动设备中的音频Codec的一套软件体系,在音频设备驱动中ASoC被分为Machine.Platform和Codec三大部分. Codec部分:负责音频解码,这部分代码完全无平台无关(设备原厂提供),它包含了一些音频的控件(Controls),音频接 口,DAMP(动态音频电源管理)的定义和Codec IO功能.为了保证硬件无关性,

android下调试声卡驱动之wm8960介绍二

三.LINPUT输入通道介绍 有关LINPUT的主要配置如下: R32的bit8(LMN1)置1:LINPUT1连接PGA: R00的bit7(LINMUTE)置0:禁止静音: R25的bit5(AINL)置1:PGA使能: R47的bit5(LMIC)置1:Left Boost Mixer使能: R32的bit3(LMIC2B)置1:boost连接Left Boost Mixer. 四.OUTPUT输出通道介绍 有关OUPUT的主要配置如下: R34的bit8(LD2LO)置1:使LDAC连接