Linux下域格模组的加载与应用
文章目录
前言
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。意思就是Linux系统蛮重要的,模块在这个系统下的使用是必要的。
一、模组在Linux下驱动加载
1.域格在Linux下加载需要使用 USB 转串口的驱动,这个驱动系统基本都是配备的,简单介绍下,添加驱动需要配置 Linux内核
cd kernel
make menuconfig
device drivers -> usb support -> usb serial converter support
选中如下组件:
USB driver for GSM and CDMA modems
选中后保存配置。
2.检测驱动

3.驱动创建原理
option驱动分别注册到了usb总线和usb-serial总线,当接口驱动和id匹配后,我们通过id可以找到它的驱动,这里即是option驱动,option驱动在注册时就绑定了探测函数usb_serial_probe(),所以会执行它,而在usb_serial_probe()函数内又会调用端口的匹配,即usb_wwan_port_probe(),待这些工作完成之后,最后通过tty_register_device(usb_serial_tty_driver, minor, dev)完成ttyUSBx设备的创建。
具体驱动创建过程可以参考链接: linux options.
二、模组在Linux下过滤接口以及option.c介绍
1.黑名单过滤接口
在介绍过滤接口之前先介绍option.c,就以域格 ASR模块需加载 DIAG口,AT 口及 modem 口,其他无关端口需过滤,可根据实际情况选择处理
过滤的黑名单方式是kernel 版本支持 blacklist 的,在 option.c (路径一般为 drivers/usb/serial/option.c)中的 option_ids 中添加 blacklist,可使驱动在加载时自动跳过 blacklist 指定的 interface。
在文件中找到 option_ids[]的数组,添加域格模块的 VID 和 PID,模块的PID、VID可以参考上图lsusb所圈,参照以下方法添加VID、PID:

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

黑名单过滤源码如下:

本文介绍了如何在Linux系统下加载和应用USB转串口驱动,特别是针对域格模组。首先,讲解了如何配置Linux内核加载USB转串口驱动,并检测驱动是否成功。接着,详细阐述了驱动创建原理,以及如何通过黑名单和接口过滤接口来管理模组的加载。此外,还提到了临时加载驱动的方法和如何通过AT指令与模组交互。
最低0.47元/天 解锁文章
3659

被折叠的 条评论
为什么被折叠?



