先说段废话,话说在linux 2.6.34 下,好多比较新的3G网卡及3G模块都没有很好的支持。如果想支持的这些3G网卡/3G模块呢,基本上有两种方式:

    1.使用该3G模块的 linux 下的驱动,交叉编译为*.ko ,然后放到开发板下,insmod 进去。然后接入3G模块,ls /dev/下,会发现3G驱动接口ttyUSB0--3 生成。然后想这些ttyUSB*接口发送AT指令,即可拨号上网。具体的拨号方式网上有很多,这里不赘述。

    2.使用usb_modeswitch -c /etc/usb_modeswitch.d/* 的配置文件,来进行转换。将初步识别为存储模块,转换为3G modem。然后也会在/dev目录下生成ttyUSB*的接口,其他内容与 1中相似。

  再说道AD3812 , 该3G模块由ZTE公司发行, 貌似也是市场上比较火的一个3G模组。他在linux 内核版本为3.0.1以上时,内核中就包含该模块的驱动(貌似),无需其他转换,插入即可使用。但是在2.6.34 或以下的版本中没有很好的支持。如果使用usb_modeswitch 的方法,需要它的转换配置文件19d2:ffeb,而这个配置文件官方以及相关论坛(http://www.draisberghof.de/usb_modeswitch/)中也没有提供。而LZ试着使用windows下的usb检测工具检测以下转换过程来获取 其 转换文件需要的内容时,也没有正确的获取的到(比较笨~_~).后来看到linux 3.0.1 以后的版本也不是通过usb_modeswitch 来进行转换的,那极有可能就是内置了该3G模块的相关驱动。所以我也想从这入手。

  从网上下载到AD3812 的Linux下的驱动http://wwstrong.com/download.php?downloadSearch=ad3812&SearchTypeSystem (非广告),下载完后解压,咦?怎么只有2.6.11 到 2.6.32的驱动?没有2.6.34 的驱动,怎么办,代理商们给的解释就是,参照所给驱动,自己修改。  - -!我了个去,那就改吧!

  刚开始我是按照2.6.32的驱动修改的,但是一对比文件感觉有好多的差别,不知道是否全部需要修改,也试了好多次,也可以成功编译出ztemt.ko这个驱动模块,但是插入时,总会提示:

insmod ztemt.ko
insmod: cannot insert 'ztemt.ko': invalid module format

那就说明其编译的模块,不适用与该内核。后来一个一个内核驱动的试了一下,最后,使用2.6.31 这个里面的驱动,最终插入驱动模块成功。不过2.6.31里面的bus.c文件在编译时可能会提示错误。

/home/driver3g/2.6./src/bus.c: In function 'free_dynids':
/homedriver3g/2.6./src/bus.c:: error: implicit declaration of function 'kfree'

我们进入bus.c这个文件,跳到143行,将kfree(dynid); 这段代码注释掉,然后编译,即可通过并生成ztemt.ko 模块,放到开发板上,可以顺利的插入成功啦!然后插入AD3812模块,在/dev目录下可以生成ttyUSB0--3的相关接口。使用pppd拨号即可成功上网啦!

  

  忙活了3天左右,大致的解决问题的路程是这样的。现在可以成功加载到开发板中,并能够使用AD3812模块,但是不知道注释掉的kfree(dynid); 会不会有其他影响。暂时做一个笔记。

下面是pppd 拨号脚本的代码, /etc/ppp/peers/unicom

# /etc/ppp/peers/unicom
# this is ppp script for use chinaunicom's CDMA data service
#
#gsmmodem
ttyUSB3 crtscts
connect '/usr/sbin/chat -v -f /etc/ppp/chat/unicom'
debug
#nodetach
noipdefault
usepeerdns
ipcp-accept-local
ipcp-accept-remote
#defaultroute
user card
unit

  注:unit 5001 , 如果拨号成功,ifconfig 查看,会生成ppp5001的接口,如果没有这段,默认生成ppp0接口。

  下面是/etc/ppp/chat/unicom 的内容

# /etc/ppp/chat/unicom
# this is the chat script for unicom
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
TIMEOUT
"" at
OK AT+CGDCONT=,"IP","3gnet",,,
OK atdt*#
CONNECT

将这两个文件分别放置对应的目录 ,使用命令 pppd call unicom 即可拨号,如果成功,ifconfig会查看到ppp相关的接口, 使用命令 ping 8.8.8.8 如果有回复,证明开发即可以上网。想访问网站的话,别忘记了在/etc/resolv.conf 加入DNS地址 nameserver 8.8.8.8 (或其他的DNS解析地址)。 整个3G驱动支持 完成。

  还有一句话就是:做事情的要专心,如果自己没有其他的办法时,可以让周围的同事或同学给提供一点思路。自己一个人很容易行程思维定式,钻进死胡同地。

ZTE AD3812 3G模块在linux 2.6.34 内核的开发板上的支持方法的更多相关文章

  1. 运行在TQ2440开发板上以及X86平台上的linux内核编译

    一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...

  2. Linux系统中用DNW向ARM开发板下载程序

    在Linux下通过dnw来给开发板发送程序.包括驱动程序代码:secbulk.c,应用程序代码:dnw.c.只能运行在32位系统上,在64位系统上提示错误:DNW download Data size ...

  3. 超简单易用的 “在 pcduino 开发板上写 Linux 驱动控制板载 LED 的闪烁”

    版权声明:本文为博主原创文章,未经博主同意不得转载.转载联系 QQ 30952589,加好友请注明来意. https://blog.csdn.net/sleks/article/details/251 ...

  4. iTOP-4412开发板全新升级支持4G全网通模块

    开发板支持4G,GPS,CAN,485,WIFI蓝牙,重力加速度计,陀螺仪等模块. 核心板参数 尺寸:6cm*7cm 高度:连同连接器在内0.26cm CPU:Exynos4412,四核Cortex- ...

  5. 华为E392-u92在 linux 2.6.34 内核环境下支持

    还是先说说思路吧.网关需要支持4G LTE网卡.如之前的操作,插上网卡后,usb-modeswitch 后没有产生对应的/dev/ttyUSB0-2. 所以ppp拨号脚本等无法工作.这里在ubuntu ...

  6. minigui移植到arm linux开发板上无法执行

    要保证目录下有该文件 /etc/MiniGUI.cfg 复制过程使用cp –af 强制复制

  7. linux 开发板上的调试

    1.需要命令 ulimit 进行设置core file size ,  看 core file size. cat /proc/pid/limits,  这个暂时不用 2.需要有gdb命令 , 需要g ...

  8. 韦东山嵌入式Linux学习笔记02--如何给开发板烧录程序

    购买韦东山嵌入式开发板jz2440 v3会标配两根usb线和一根网线,OpenJtag需要单独购买, 我暂时还没买到该工具. 下面介绍usb烧录以及通过网线烧录程序. 1.usb烧录程序: 借助DNW ...

  9. GPRS模块在Linux平台上ppp拨号上网总结与心得

    linux平台的ppp拨号上网,(注明:这里只谈命令行拨号,用linux就要习惯和熟练使用命令行) 在网上常见的有三种方式:1.使用智能的ppp拨号软件wvdial:参考案例:本博客的<使用wv ...

随机推荐

  1. object does not contain a definition for get_range

      原因[1] 在VS2012中调用COM Interop DLL操作Excel通过get_Range去获取Range时,会发生Object does not contain a definition ...

  2. shell脚本基础——常用的sed命令举例

    一般在实际使用编辑器的过程中 , 常需要执行替换文件中的字符串.移动.删除.与搜寻数据行等等动作.当然 , 一般交互式编辑器(如 vi.emacs)都能做得到上述功能 , 但文件一旦有大量上述编辑需求 ...

  3. 成功BOSS的六大秘诀

    1.信念力 一个没有坚定信念的人,是不可能成为伟大企业家的.如果你认为自己行,你就一定行:如果你都认为自己不行了,那你就注定不行.在成功这条道路上,要勇敢地自我肯定和鼓励,这样才能带来巨大的创造力并最 ...

  4. UML系列图------用例图介绍

    UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言. 在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展示 ...

  5. TestNG中同一个类中执行多个test()方法如何配置testng.xml

    public class IndexInfo extends BaseTesting{ private IndexPage IndexPage1;// private AddEquipmentInfo ...

  6. pycharm出现乱码

    1. 'gbk' codec can't encode character u'\xb8' 解决办法 import sys reload(sys)sys.setdefaultencoding('utf ...

  7. 判断浏览器是IE的几种方式

    <script> if(!+[1,])alert("这是ie浏览器"); else alert("这不是ie浏览器"); </script&g ...

  8. [转]32位和64位系统区别及int字节数

    一)64位系统和32位有什么区别? 1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2.64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会 ...

  9. js 发红包

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  10. dom select选单

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...