*内核为荔枝派的zero-4.13y版本
*参考文件Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.8.pdf
将修改部分整理为补丁文件,主要有以下几个
option.patch
qcserial.patch
qmi_wwan.patch
usb_wwan.patch
补丁内容:
#!/bin/sh
#KERNELDIR=/home/zero-4.13y
KERNELDIR=$(cd "$(dirname "$0")"; pwd)
echo $KERNELDIRpatch $KERNELDIR/drivers/usb/serial/option.c < option.patch
patch $KERNELDIR/drivers/usb/serial/qcserial.c < qcserial.patch
patch $KERNELDIR/drivers/usb/serial/usb_wwan.c < usb_wwan.patch
patch $KERNELDIR/drivers/net/usb/qmi_wwan.c < qmi_wwan.patch
内核配置:
*使用版本Quectel_WCDMA<E_Linux&Android_GobiNet_Driver_V1.3.0.zip
*修改交叉编译工具
编译报错
因为for_each_process函数在不同内核版本中声明位置不同,解决办法:在QMIDevice.c文件中添加头文件包含
#include<linux/sched/signal.h>
还有一个错误
仿佛是内核版本不同导致的,解决办法:将QMIDevice.c中所以的atomic_read替换为refcount_read
编译完成
*进入目录quectel-cm/目录 修改makefile更改交叉编译工具为arm-linux-gnueabihf-gcc
*make编译出quectel-CM
*将quectel-CM放入/usr/bin/目录
模块开机后在/dev/目录下会出现ttyUSB0、ttyUSB1、ttyUSB2、ttyUSB3其中ttyUSB2可用于AT通信
cat /dev/ttyUSB2 &
echo -e "AT+CSQ\r\n" >/dev/ttyUSB2
或者
microcom -t 5000 -s 115200 /dev/ttyUSB2
AT
加载驱动,GobiNet也可以直接编译进内核
insmod GobiNet.ko
quectel-CM -s cmnet &
果然还是不那么顺利
udhcpc不能自动获取IP
原因:内核驱动和GobiNet中需要将DTR设置为上拉
将内核部分修改 重新编译内核
将GobiNet重新编译生成驱动 烧录测试
安装驱动、测试,正常了
文件打包在附件:EC20_20200323-0920.rar
离线