海思HI3516系列平台移植4G模块----以ME909S-821为例

以下以HI3516DV300 + ME909S-821 为例演示如何在海思平台上移植4G模块。
本文参考了:linux4.1.4上移植ME909s-821,MU609 4G模块驱动

4G模块的移植分为两部分,一是USB网络驱动的移植,二是USB模拟串口驱动移植。
很幸运,这些驱动在arm linux里面都有集成,我们只需要开启和稍微修改下原有的驱动就可以实现。

一.开启USB模拟串口支持

进入menuconfig,并开启USB模拟串口的支持

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
依次选择:
       Device Drivers  --->
               USB support  --->
                     <*>   USB Serial Converter support  --->
                            <*>USB driver for GSM and CDMA modems

海思HI3516系列平台移植4G模块----以ME909S-821为例_第1张图片

二.开启USB网络的支持

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
依次选择:
       Device Drivers  --->
               Network device support  --->
					<*>   PPP (point-to-point protocol) support                                                 
					<*>     PPP BSD-Compress compression                                                   
	                <*>     PPP Deflate compression                                                         
	                [*]     PPP filtering                                                             
	                <*>     PPP MPPE compression (encryption)                                             
	                [*]     PPP multilink support                                                         
	                <*>     PPP over Ethernet                                                               
	                <*>     PPP support for async serial ports                                             
	                <*>     PPP support for sync tty ports 
                    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)

海思HI3516系列平台移植4G模块----以ME909S-821为例_第2张图片
海思HI3516系列平台移植4G模块----以ME909S-821为例_第3张图片
然后保存,并且退出。
但是现在还不能够编译,还需要修改kernel的代码,让USB能够匹配模块的vid pid。
编辑 drivers/usb/serial/option.c,添加对应的代码即可

vim drivers/usb/serial/option.c

在对应的地方添加以下代码

 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0x02, 0x06, 0x10) },
{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0x0a, 0x06, 0x11) },
 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x10) },
 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x13) },
 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x12) },
 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x06) },
 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x1b) },

海思HI3516系列平台移植4G模块----以ME909S-821为例_第4张图片
保存之后再执行编译

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j32

最后将编译好的uImage烧录进设备即可

三.测试

执行ifconfig -a
海思HI3516系列平台移植4G模块----以ME909S-821为例_第5张图片
执行ls /dev/ttyUSB*
在这里插入图片描述
这里说明下这几个ttyUSB的作用

USB0: MODEM:MODEM串口,用于拨号上网
USB1: DIAG:普通串口,用于调试和收集日志信息
USB2:PCUI:用于应用程序进行AT指令通信
USB3:Ctrl:用于eCall业务
USB4:Serial B:用于配合Diag端口用于模块log收集

简单的测试下
发送“AT”到ttyUSB2 查询上电状态
在这里插入图片描述
这里会返回OK,表示上电完成
发送"AT^RESET"会复位模块
在这里插入图片描述
复位之后会重新识别模块。

移植到这里就结束了,有什么问题的话可以在下方留言,我看到会尽量回复

你可能感兴趣的:(海思,4G,linux,网络)