Chinaunix首页 | 论坛 | 博客

apt

  • 博客访问: 391852
  • 博文数量: 121
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-10 15:52
文章分类

全部博文(121)

文章存档

2017年(2)

2016年(23)

2015年(96)

我的朋友

分类: 嵌入式

2015-10-22 13:17:44

USB串口驱动添加

配置内核将USB driver for GSM and CDMA modems选上

Cd kernel

Make menuconfig

Devicedrivers->usb surpport->usb serial converter support

选中如下组件

USB driver forGSM and CDMA modems

选中保存后即可编译内核

增加4G设备驱动

修改option.c文件添加设备信息

代码修改路径:

drivers\usb\serial\option.c

找到option_ids[] 结构体表

添加ZTE产品信息

    { USB_DEVICE(0x19d2, 0x0199) },

编译

 

USB串口过滤ndis接口

由于usb串口跟ndis都属于非cdc设备,需要防止ndis口被usb串口驱动加载ndis驱动无法顺利完成加载

1.在drivers\usb\serial\usb_serial.c文件中usb_serial_probe函数中添加

if ((le16_to_cpu(dev->descriptor.idVendor)== 0x19d2)&&

        (le16_to_cpu(dev->descriptor.idProduct)== 0x0199)){

        if(1 ==interface->cur_altsetting->desc.bInterfaceNumber){

               return -ENODEV;

        }

}

由于ndis以库的形式提供,主要包括两个文件:cdc_encap.ko和cdc_ether.ko

 

2.修改drivers\net中

cdc_ether.c

3.修改Makefile 添加obj-m +=cdc_encap.o

 4.将提供的cdc_encap.c和cdc_encap.h拷贝到该目录下

配置内核usbnet驱动方式如下

  Cdkernel

Make menuconfig

Devicedriver->Network device surpport->usb Network Adapters

选中如下组件:

Mutil-purpose USB Networking Framework

选中保存后退出编译

ndis驱动加载

编译后生成的usbnet.ko连同ndis驱动一起加入系统启动项中加载,加载顺序为

Insmod usbnet.ko

Insmodcdc_encap.ko

Insmodcdc_ether.ko

带设备枚举完成后,正常加载系统的log中可以查看是否能正常加载成功

ndis驱动接口的使用

驱动编译完成,在嵌入式系统中的terminal中输入 cat /proc/devices

可以查看到eth1设备

然后通过ifconfig-a 查到其网络接口eth1

 

1         4G模块建立连接AT命令指令

AT口发送指令流程

AT

AT+CFUN = 1;//模块功能全打开,模块每次开机都要设置AT+CFUN = 1,如果觉得麻烦可以设置AT+ZSET = “LTE_INFO”,8掉电后,这个AT+CFUN = 1就保存为默认模块了

AT+CPIN? //返回READY,说明卡在位

AT+CEREG = 1,//启用网络注册的主动上报结果码+CEREG: 如果STAT的是1或者5表示注册上4G网络

/*AT+CREG? 查询2G AT+CGREG 查询3G AT+CEREG?查询4G 返回第二个参数为1/5表示注册上*/

AT+CGDCONT=1,”IP”,”APN” //设置PDP环境

AT+CGACT=1,1

AT+ZGACT=1,1//只有CEREG注册有效后,这个指令发送才能正常返回

网络连接数据发送接受

 

//AT+ZGACT=0,1//关闭网络

 

静态手动设置eth1 IP网关 DNS
阅读(1755) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~