me909嵌入式linux,linux4.1.4上移植ME909s-821,MU609 4G模块驱动

肯定要知道模块的产品id和供应商id,即:idVendor idProduct ,一般来说。同一个厂商的模块vid是一样的,不同的是pid。

在开发板上插入4G模块,正常的板子,只要能识别usb驱动的,都能够识别到模块的id。

板子控制终端输入:lsusb

如下:

478635709a543ea2c3bcb9b7f3e520e2.png

就会识别到产品的id ,或者插入模块的时候,板子输出的一堆信息,里面也会可以找到pid和vid

二、配置内核与编译

在宿主机的Linux内核源码根目录执行以下指令,配置内核。添加USB串口驱动的配置选项:

host$ makeARCH=arm menuconfig

依次选择:

Device Drivers  --->

USB support  --->

   USB Serial Converter support  --->

USB driver for GSM and CDMA modems

4853c88604be5c6c0d17484da83f9429.png

配置CDC驱动,依次选择

Device Drivers  --->

Network device support  --->

USB Network Adapters  --->

Multi-purpose USB NetworkingFramework

  CDC Ethernet support (smart devices such ascable modems) (NEW)

-*-   CDC NCM support

   Huawei NCM embedded AT channel support

   Simple USB Network Links (CDC Ethernetsubset) (NEW)

c2469b504d3e5dc9933b56fa65917442.png

还有一个重要的设置,就是关于ppp驱动的  有的网上护送需要安装ppp驱动,但是实际上我的内核已经支持ppp驱动,而且很多内核也会支持,所以只要在make menuconfgi里面配置好,就不需要再另外安装ppp驱动,关于另外安装的p'p'p驱动 可以参考:https://www.linuxidc.com/Linux/2016-03/129581.htm

在这里,我只需要配置内核支持ppp就可以

make menuconfig Device Drivers --->

[*] Network device support --->

// 将这里面所有的ppp 相关的支持都选上

到这里,关于内核的配置,已经配置完成,但是还不能make,还需要再usb匹配函数中修改添加匹配。

三、usb匹配列表添加pid  vid

如果这路不添加,依然无法识别,以为4G模块作为usb驱动添加,u's'b匹配的时候需要添加匹配列表;

再kernel目录:

vim drivers/usb/serial/option.c

关于:ME909s-821

380b94b983e10f3800dbd8045bcada18.png

在  static const struct usb_device_id option_ids[]

中添加:

25370fd20023e10b46439431925df311.png

到这里,make 之后,开发板就能够支持ME909s-821模块了。

同理,关于MU609,方法一样:

首先添加vid  我这里直接修改 厂商的vid  其实就是宏定义而已,可以不定义,下面你直接添加给值传入就行。

c1b67c47b7d4220a39f480a5dd107a88.png

98bf99770a9a575ec57d549b90b3673c.png

关于为什么还需要设置:

ME909s-821的端口的赋值,由厂商提供,请《HUAWEIModule USB Interface Descriptor Guide》中的3.7.3节,“MODEM Serial Port ”、“DIAG Serial Port ”、“PCUI Serial Port ”、“Ctrl Serial Port ”、“Serial B Port ”各表格的值

请参考:https://blog.csdn.net/yuzhou_zang/article/details/78286875

这里说明了 为什么,对于其他的模块移植很有参考意义。

到这里 ,就可以直接make ,等待编译内核完成。

四、识别usb设备

经过以上的步骤,已经能够正常识别usb ,这里来是第一步也是关键。以为识别出usbs才能继续下面的

插入模块,会虚拟出0~4五个usb

54e2b97a2e794e5c8d18cd302f74109b.png

查看/dev下面是否生成设备节点:

6cd59afd41dc57a0a677b6b9e26b9de8.png

各端口功能描述如下:

USB0: MODEM:MODEM串口,用于拨号上网

USB1: DIAG:普通串口,用于调试和收集日志信息

USB2:PCUI:用于应用程序进行AT指令

通信

USB3:Ctrl:用于eCall业务

USB4:Serial B:用于配合Diag端口用于模块log收集

使用NDIS协议,在评估板给MODEM端口发送AT指令连接4G网络:

到这里,模块的已经支持完成,这里只是举例两个模块me909s-821和mu609,其他的其实也是一样的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值