目录

域格ASR平台模块 - Linux下驱动加载及拨号前准备

适用模块:CLM920 JC3/CLM920 JC3 3.0/CLM920 JC3ECLM920 JD3CLM920 JC5/CLM920 JC5 3.0CLM920 JD5CLM920 CV9CLM920 HV9CLM920 HV9 V2CLM920 HV9 GCLM920 HE9CLM920 HV5CLM920 MV9CLM920 LV9CLM920 KV5CLM920 KV3


1、识别模块

域格ASR模块VID、PID分别为1286、4E3C。确认使用lsusb可以找到模块。

2、内核添加相关配置

域格ASR模块interface分布如下

interface 0 → RNDIS

interface 1 → CDC-DATA

interface 2 → DIAG

interface 3 → AT

interface 4 → Modem

其中的RNDIS端口需要加载成网卡,不能加载成ttyUSB,因此需要将interface 0、1过滤。

端口过滤的方式因kernel版本差异有所不同,可根据kernel版本情况选择以下一种方式对应修改即可。

① kernel 版本支持 RSVD 的,在 option.c(一般位于内核目录下的drivers/usb/serial/option.c)中的 option_ids 中添加 RSVD,可使驱动在加载时自动跳过RSVD指定的interface。

在文件中找到option_ids[]的数组,添加域格模块的VID和PID:

设置interface 0、1不加载option驱动,添加内容如下:

② kernel 版本支持 blacklist 的,在 option.c(一般位于内核目录下的drivers/usb/serial/option.c)中的 option_ids 中直接添加blacklist,让驱动在加载时自动跳过blacklist指定的interface。

在文件中找到option_ids[]的数组,添加域格模块的VID和PID:

设置interface 0、1不加载option驱动,添加内容如下:

添加blacklist到option_ids数组中:

③ 不支持以上两种方式的,先在option_ids[]数组中添加模块的VID和PID:

再在option_probe函数内判断当前interface号进行过滤:

3、核对驱动加载情况

编译完成后,通过查询命令:ls /dev/ttyU*,应有ttyUSB0、ttyUSB1、ttyUSB2三个端口,如下图:

interface 2加载成了ttyUSB0,interface 3加载成了ttyUSB1,interface 4加载成了ttyUSB2,对应功能如下

ttyUSB0 → DIAG

ttyUSB1 → AT

ttyUSB2 → Modem

4、核对模块注册情况

可以通过minicom直接给模块发AT,如给AT口发,输入minicom -D /dev/ttyUSB1

核对以下AT

1、AT+CPIN?

—— 应返回ready。若不是,需要检查SIM卡接触情况。

2、AT+CSQ

—— 一般要在10以上。若不是,需要检查天线。

3、AT^SYSINFO

—— 第一位是2,第二位是2或3(即数据域要注册上)。若不是,需要核对SIM卡状态。

4、AT+CEREG?

—— 第二位参数应返回1或5,如0,1 或 0,5。若不是,需要核对SIM卡状态。

AT+CPIN? 错误码
+CME ERROR: 10 —— 卡不在位
+CME ERROR: 14 —— SIM busy

拨号

以上返回值确认无误后,就可以根据需要选择拨号方式进行拨号操作。