当前位置: 首页 > news >正文

T536 4G模块适配

usb转串口适配

模块要被内核识别,生成ttyUSB设备,才能使用AT指令拨号,需要在drivers/usb/serial/option.c源码中加入此模块的PID和VID,

但是如果插入后,发现dev目录下有新的ttyUSB*设备出现,就不需要这步骤了,说明内核已支持该模块。

内核源码:drivers/usb/serial/option.c

内核配置:

CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_OPTION=y
CONFIG_USB_SERIAL_QT2=y

  1. 插入4G模块,输入指令,查看VID和PID:

lsusb

这个就是4G模块,VID:2dee,PID:4d41:

如果需要临时匹配,可以使用如下指令,输入VID PID号,立即生成ttyUSB*:

echo 2dee 4d41 > /sys/bus/usb-serial/drivers/option1/new_id

  1. 想要自动匹配,还是得在内核源码drivers/usb/serial/option.c中找到数组option_ids[],将VID和PID加入到数组中:

static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(0x2DEE, 0x4D41) }, // SLM320-C
{ USB_DEVICE(0x2949, 0x8243) }, // SLM720
{ USB_DEVICE(0x05C6, 0xF601) }, // SLM750
...

  1. 编译烧录,插上模块后,可以看到/dev目录下多了几个ttyUSB,证明已经识别

root@EmbedSky-Board:~# ls /dev/ttyU*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3 /dev/ttyUSB4 /dev/ttyUSB5

  1. 检查驱动是否正常工作,输入指令:

udevadm info /dev/ttyUSB0

可以看到ID_VENDOR_ID=2dee和ID_MODEL_ID=4d41:

root@Board:~# udevadm info /dev/ttyUSB0
P: /devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.0.auto/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB0/tty/ttyUSB0
N: ttyUSB0
L: 0
S: serial/by-path/platform-xhci-hcd.0.auto-usb-0:1.3:1.0-port0
S: serial/by-id/usb-UNISOC_UNISOC-8910-if00-port0
E: DEVPATH=/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.0.auto/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB0/tty/ttyUSB0
E: DEVNAME=/dev/ttyUSB0
E: MAJOR=188
E: MINOR=0
E: SUBSYSTEM=tty
E: USEC_INITIALIZED=129337172
E: ID_VENDOR=UNISOC
E: ID_VENDOR_ENC=UNISOC
E: ID_VENDOR_ID=2dee
E: ID_MODEL=UNISOC-8910
E: ID_MODEL_ENC=UNISOC-8910
E: ID_MODEL_ID=4d41
E: ID_REVISION=0000
E: ID_SERIAL=UNISOC_UNISOC-8910
E: ID_TYPE=generic
E: ID_BUS=usb
E: ID_USB_INTERFACES=:ff0000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=option
E: ID_PATH=platform-xhci-hcd.0.auto-usb-0:1.3:1.0
E: ID_PATH_TAG=platform-xhci-hcd_0_auto-usb-0_1_3_1_0
E: DEVLINKS=/dev/serial/by-path/platform-xhci-hcd.0.auto-usb-0:1.3:1.0-port0 /dev/serial/by-id/usb-UNISOC_UNISOC-8910-if00-port0
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:

选择拨号方式

PPP拨号

内核配置:

CONFIG_PPP=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=y

PPP拨号比较落后,这里不再说明。

NCM拨号

驱动源码:drivers/net/usb/cdc_ncm.c

内核配置:

CONFIG_USB_USBNET=y
CONFIG_USB_NET_CDC_NCM=y

ECM拨号

驱动源码:drivers/net/usb/cdc_ether.c

内核配置:

CONFIG_USB_USBNET=y
CONFIG_USB_NET_CDCETHER=y

ECM工作模式下的模块,插上后能自动识别。

RNDIS拨号

驱动源码:drivers/net/usb/rndis_host.c

内核配置:

CONFIG_USB_USBNET=y
CONFIG_USB_NET_RNDIS_HOST=y

RNDIS工作模式下的模块,插上后能自动识别。

MBIM拨号

驱动源码:drivers/net/usb/cdc_mbim.c

内核配置:

CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_NET_CDC_NCM=y
CONFIG_USB_NET_CDC_MBIM=y

MBIM工作模式下的模块,插上后能自动识别。

QMI_WWAN拨号

驱动源码:drivers/net/usb/qmi_wwan.c

内核配置:

CONFIG_USB_WDM=y
USB_USBNET=y
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_NET_QMI_WWAN=y

GOBINET拨号

需要移植驱动,放在drivers/net/usb/路径下

http://www.jsqmd.com/news/464660/

相关文章:

  • Fider 开源项目推荐:构建现代化用户反馈平台的最佳实践
  • 知网和维普AIGC检测哪个更严?同一篇论文双平台实测数据
  • FreeFileSync批量同步教程:轻松管理多文件夹同步任务
  • reid 行人跟踪源代码
  • Rust 的 mod(模块) 说明
  • Alibaba Cloud 实现大文件上传
  • 把 SAP 系统真正跑在 IPv6 上:从实例开关到 AS Java、DNS 与双栈治理的完整实践
  • IDEA使用指南GUIDE
  • 消息队列原理篇
  • PyCharm连接英伟达4090D GPU服务器实战(本文提供项目代码、英伟达4090D显卡服务器完整环境)
  • SpeedAI、笔灵AI、嘎嘎降AI三款热门工具实测,谁才是性价比之王
  • 10个Kinesalite常见问题解决方案:从安装到数据处理全指南
  • 【Python】算法笔记
  • 率零和去AIGC哪个好用?两款平价降AI工具深度对比
  • 终极指南:如何使用 ncollide 构建 Rust 2D/3D 碰撞检测系统
  • Unity IDE(代码调试编辑器,支持Lua断点)选择Visual Studio还是Rider?(带使用教程详解)
  • Kafka、Flink安装,简单使用
  • 微弱电流信号检测中TIA原理与T型电阻原理图相比,在检测性能、适用场景等有哪些具体区别
  • 如何快速掌握ncollide:Rust 2D/3D碰撞检测库入门指南与常见问题解答
  • 2026年降AI工具红黑榜:踩过雷才知道哪些真好用
  • 79、昇腾系列服务器/昇腾系列推理卡/昇腾系列嵌入式开发板+Dify+one api部署DeepSeek-R1-Distill-Qwen-32BW8A8+RAG本地模型知识库和负载均衡双实例
  • hivesql执行逻辑及顺序
  • 八股文笔记——操作系统
  • 嘎嘎降AI vs 千笔AI vs PaperYY:三款主流降AI工具谁更值得买
  • Python学习笔记1
  • Shell函数-4
  • Pycharm通过代码注释实现代码折叠
  • Shell编程-5
  • 豆包+Kimi降AI指令大全:25条实测有效的提示词分享
  • 安装linux系统