1 min read

树莓派笔记4.1:内核编译配置_ME909S-821驱动

#说明

具体内核编译方法见上篇文章。本篇只介绍ME909S驱动部分配置。
树莓派buster。ME909S-821只显示MBIM驱动(/dev/cdc-wdm0)。没有ttyUSB。
暂时只测试了gammu正常使用。4G上网未测(只编译了ECM模块:wwan0)。
使用 gammu 收发短信的话用 /dev/ttyUSB2 (/dev/ttyUSB0 好像也行)。

#这里安利下Vultr。用来临时开机调试脚本编译啥的,很舒服。

https://www.vultr.com/?ref=7222306

#环境:

树莓派3B+ / buster / raspberrypi 5.10.63-v7+ / 32位
VPS:Vultr / High Frequency / Atlanta / Ubuntu 21.04_x64 / 80G NVME(2c2g) / 0.027(hour)
4G模块:ME909S-821ap V2

#内核编译见上篇

#先拉取默认配置(树莓派3B+ 32位),然后再修改

cd linux
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

########################################
#参考 https://www.cnblogs.com/ChenChangXiong/p/10852177.html
#在 static const struct usb_device_id option_ids[]的 id 列表中增加如下语句,用于匹配设备数据。
#/root/linux/drivers/usb/serial/option.c
#大约插在1036行附近

/* ME909S-821 by Mao */
{ 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) },

#文本配置方式,配置内核
#修改 /root/linux/.config 文件:
#USB 串口驱动相关的配置项:

CONFIG_USB_SERIAL=y 
CONFIG_USB_SERIAL_OPTION=y 
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_USBNET=y
CONFIG_NETDEVICES=y
CONFIG_USB_NET_CDCETHER=y

#编译_32位

make -j3 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

#接下来的参照上篇日志就行

######其他

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

#编译失败了好多次。一点经验 #《集成指导》是指:《华为模块Linux内核驱动集成指导》

[本文方法]:测试时不包含ECM模块部分(CONFIG_USB_USBNET,CONFIG_NETDEVICES,CONFIG_USB_NET_CDCETHER)
[本文方法]+《集成指导》USB零包机制:ttyUSB显示,gammu无法使用
[本文方法]+《集成指导》开启MBIM:ttyUSB无法显示,gammu无法使用

PS:编译的时候感觉树莓派驱动都编译了。都是动态加载的。。也许动态加载也能解决问题。。

#GAMMU报错:Ignoring incoming SMS info as not a Status Report in SR memory.
#修改配置文件:sudo nano /etc/gammu-smsdrc
#atgen_setCNMI = ,2,,, 主要是这个2参数,修改后长短信会分开推送。不改的话就上面的报错,短信还会延迟。暂时没解决办法。

[gammu]
port = /dev/ttyUSB0
atgen_setCNMI = 2,2,0,2,0
...