4G WWAN设备类型

news2024/11/18 17:28:43

WWAN设备类型

USB dongle是设备接入互联网的重要方式之一,典型的通过USB接口与主设备连接,然后主设备通过4G/5G接入互联网,作为移动宽带设备,它有那些设备类型及暴露方式呢?

  1. 移动宽带设备类型:ModemManager能够与几乎所有类型的移动宽带调制解调器进行交互,只要该设备至少暴露一个控制端口。不支持没有控制端口的设备(例如,某些仅暴露网口的USB dongles)。

  2. 在系统中的暴露方式:对于支持的移动宽带设备,它们通过控制端口与ModemManager进行通信,使其能够管理和控制这些设备的功能。没有控制端口的设备无法被ModemManager支持。

USB devices

USB设备的类型以及它们在系统中的表现如下。

USB设备类型

USB设备是最常见的设备类型,有非常不同的形式因素。USB dongles可以连接到计算机的物理USB端口,但在嵌入式系统和笔记本电脑中,连接在miniPCIe或M.2插槽的模块也非常普遍。

在系统中的表现方式

USB总线中枚举的设备可以在系统中暴露多个端口,因此控制端口或数据端口的数量没有限制。USB调制解调器通常具有多个控制端口,例如允许在不同端口上并行运行不同操作;但也存在具有多个数据端口的调制解调器,例如允许单独连接到多个APN而无需复杂的多路复用设置。

USB设备类型端口

该类型设备预期的端口类型有:

  • 串行端口(例如ttyUSB0、ttyACM0…)。
  • 网络端口(例如wwan0、usb0、eth0…)。
  • QMI或MBIM控制端口(例如cdc-wdm0…)。
  • WWAN子系统QMI或MBIM控制端口(例如wwan0mbim0、wwan0qmi0)。

需要USB mode switch切换的设备

有些USB设备默认启动时以非调制解调器的USB布局出现,例如将自己暴露为USB磁盘。这在需要在Windows操作系统中安装特殊驱动程序的USB dongles(例如来自华为、中兴等厂商)中很常见;dongle提供了安装驱动程序的工具。在基于Linux的系统中,用户希望设备能够工作而无需安装任何额外的驱动程序,为实现这一点,有像usb-modeswitch这样的工具,能够在没有手动干预的情况下将设备自动切换到有效的调制解调器USB布局。

支持多个USB配置的设备

有些设备(例如许多富士康或华为模块)默认情况下暴露多个USB配置,每个配置提供不同的USB接口布局。例如,一个配置可以包括一个MBIM控制端口和一个网络接口,另一个配置可能包括一个AT端口和一个NCM网络接口,依此类推。内核默认会以最匹配通用布局的USB配置暴露设备。例如,如果设备在不同配置中同时暴露了MBIM和QMI布局,内核总是优先选择MBIM布局,因为它被认为比QMI更通用。然而,有时这还不够,因为具有NCM和MBIM布局的设备都是通用的,内核可能默认选择NCM而不是MBIM,而MBIM实际上通常更受欢迎。为了解决这些情况,usb-modeswitch工具允许自动选择MBIM配置,而不考虑USB设备中是否还有其他配置。

支持通过控制端口配置多种布局的设备

有些设备(例如许多Sierra Wireless模块)允许选择USB布局,例如在原本只有QMI和net端口布局的设备上添加其他AT端口,或者甚至完全从基于QMI的布局切换到基于MBIM的布局。

RS232 devices


由于简单性,RS232设备仍在某些配置中使用,但大多数情况下被支持通过USB连接暴露多个端口的USB调制解调器取代。

集成方式

RS232设备可以通过物理RS232连接或USB转RS232适配器集成到系统中,形成一个单一的串行端口,ModemManager用于控制和数据传输。

RS232 Modem设置要求

与USB调制解调器不同,RS232调制解调器需要事先与主机协商设置,如波特率、停止位等,配置错误可能导致通信失败。

预期端口类型

平台串行端口(例如ttyS0…)和USB串行端口(例如ttyUSB0…)。

PCI 设备

PCIe设备相较于大多数USB设备更复杂和先进,因为它们需要与主机系统更紧密地集成。这使得它们在进行连接时可以实现比USB 3.0和USB 2.0更高的数据吞吐量。

不同于USB设备,PCIe设备不会暴露多个可选的配置或布局。设备在固件中预先配置了内核驱动程序可以访问的通道列表。虽然可能支持一些可配置性,但与USB设备相比较不常见。

这些设备的形状与miniPCIe或M.2 USB调制解调器相同,但使用的是PCI总线而不是USB总线。以PCIe模式工作的设备无法作为USB设备工作,反之亦然。一些制造商允许通过软件(例如专有AT命令)更改PCIe/USB模式,而其他一些制造商则允许通过硬件(例如更改输入GPIO的电压级别)来更改模式。

PCIe设备已在Linux内核的上游集成,使用了在5.13版本内核中引入的WWAN子系统。该子系统还允许内核明确定义端口上预期使用的控制协议,因此在ModemManager中不需要自定义端口类型提示。

预期的端口类型:

  • 网络端口(例如wwan0)
  • WWAN子系统的AT、QMI或MBIM控制端口(例如wwan0mbim0、wwan0qmi0、wwan0at0…)

Qualcomm SoCs

Qualcomm SoCs与通常的调制解调器管理情况有很大的不同,因为它没有连接到主机的外部设备,而是集成在主机系统中,因此需要不同的通信方式。

它支持通过QRTR总线中的节点和建立在rpmsg子系统之上的WWAN子系统中的字符设备进行调制解调器控制操作。具体使用哪种方法取决于SoC的功能;较旧的SoC仅支持rpmsg,其他SoC同时支持rpmsg和QRTR(但后者不用于调制解调器管理),而较新的SoC则完全支持QRTR(包括调制解调器管理)。

Qualcomm SoCs中的网络接口支持也有一些不同之处,因为需要将给定的数据连接明确绑定到特定的网络接口。在使用bam-dmux内核驱动程序的SoCs中,通常系统中已经有一定数量的网络接口,而在基于新版ipa驱动程序的设置中,则需要在建立连接时实例化新的虚拟网络接口。

预期的端口类型:

  • 网络端口(例如rmnet_ipa0
  • WWAN子系统的AT或QMI控制端口(例如wwan0qmi0wwan0at0,在QC MSM8916中)
  • 通过QRTR总线访问的QRTR节点(例如在QC 7cG3中)

这些控制端口不在/dev中暴露任何字符设备,只能通过AF_QIPCRTR套接字进行访问。

查看设备layout命令

USB设备

  • 使用lsusb命令的树状视图可以快速检查USB总线上的设备,包括当前选择配置中可用的接口信息。
$ lsusb --tree
  • 使用lsusb命令查询USB设备的详细信息,包括所有USB配置(即使当前仅选择其中一个)。
$ lsusb -v -d <vid:pid>
  • 使用usb-devices命令提供有关实际管理设备各个端口的内核驱动程序的信息。
$ usb-devices

PCI设备

  • 使用lspci命令类似于lsusb,但用于PCI设备。
$ lspci -t
$ lspci -v

QRTR兼容设备

  • 对于通过QRTR子系统访问的高通设备,可以使用Bjorn Andersson的GitHub存储库中提供的多个命令行工具。

https://github.com/andersson/qrtr

$ qrtr-lookup

Udev设备遍历

  • 运行udevadm来查看udev如何识别给定的端口,特别是在编写新的udev规则时非常方便。

  • 使用sudo udevadm info -p /sys/class/<subsystem>/<name>命令查询特定设备的所有信息。

  • 使用sudo udevadm info -a /sys/class/<subsystem>/<name>命令查询设备及其父级(如果有)的所有属性。

这些命令和工具可用于查看各种类型的设备布局,以帮助理解设备的特性和配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/831188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无涯教程-Lua - nested语句函数

Lua编程语言允许在另一个循环中使用一个循环。以下部分显示了一些示例来说明这一概念。 nested loops - 语法 Lua中嵌套for循环语句的语法如下- for init,max/min value, increment dofor init,max/min value, incrementdostatement(s)endstatement(s) end Lua编程语言中的…

Podman权限问题导致的403报错思路与解决

问题 podman运行镜像&#xff0c;端口映射、卷映射无误&#xff0c;但在运行访问测试容器内http接口报错403. 查阅系统日志&#xff0c;存在多处容器相关的selinux访问被拒绝错误&#xff0c;sealert提示需要为几个进程的对象添加临时规则。 考虑是否为selinux问题&#xff…

语义分割文献整理

2014年文献 1.论文题目《Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs》 1.1.网络别名《DeepLabV1》 1.2.论文引用 Chen L C, Papandreou G, Kokkinos I, et al. Semantic image segmentation with deep convolutional nets and fu…

AI赋能转型升级 助力打造“数智辽宁”——首次大模型研讨沙龙在沈成功举行

当前&#xff0c;以“ChatGPT”为代表的大模型正在引领新一轮全球人工智能技术发展浪潮&#xff0c;推动人工智能从以专用小模型定制训练为主的“手工作坊时代”&#xff0c;迈入以通用大模型预训练为主的“工业化时代”&#xff0c;正不断加速实体经济智能化升级&#xff0c;深…

(自控原理)控制系统的数学模型

目录 一、时域数学模型 1、线性元件微分方程的建立 2、微分方程的求解方法​编辑 3、非线性微分方程的线性化 二、复域数学模型 1、传递函数的定义 2、传递函数的标准形式 3、系统的典型环节的传递函数 4、传递函数的性质 5、控制系统数学模型的建立 6、由传递函数求…

【C++】带三维重建和还原的RIS/PACS源码

【PACS】集成三维影像后处理功能&#xff0c;包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大&#xff0c;代码完整。 一、RIS/PACS系统简介 RIS/PACS系统在预约登记、分诊叫号、技师检查、诊断报告…

面向开发人员的远程桌面:随时随地安全编写代码

随着数字世界的不断发展&#xff0c;传统意义上的“工作场所”概念正在发生重大转变。这种转变在科技行业尤其明显&#xff0c;开发人员和软件工程师越来越倾向于选择远程或混合办公模式。 在这次重大转变中&#xff0c;远程桌面软件经证明是一项足以影响远程办公的技术。通过…

YOLOv5改进系列(18)——更换Neck之AFPN(全新渐进特征金字塔|超越PAFPN|实测涨点)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

使用Golang实现一套流程可配置,适用于广告、推荐系统的业务性框架——简单应用

在诸如广告、推荐等系统中&#xff0c;我们往往会涉及过滤、召回和排序等过程。随着系统业务变得复杂&#xff0c;代码的耦合和交错会让项目跌入难以维护的深渊。于是模块化设计是复杂系统的必备基础。这篇文章介绍的业务框架脱胎于线上多人协作开发、高并发的竞价广告系统&…

java系列之list集合分组

文章目录 前言一、list是什么&#xff1f;二、list集合分组总结 前言 在Java编程中&#xff0c;List集合是一种常用的数据结构&#xff0c;用于存储一组元素。有时候&#xff0c;我们需要对List集合中的元素进行分组操作&#xff0c;即将相同属性或特征的元素归类到一组。这种…

金三银四好时节,python面试10K+能不能得到?

嗨害大家好鸭&#xff01;我是小熊猫~ 金三银四好时节&#xff0c;面试10K能不能得到&#xff1f; 这次正逢面试季&#xff0c;这次给大家带来一个真实面试题 虽然最后上的班不一定是自己喜欢的&#xff0c; 但是工作还是要有哇&#xff01; 第三方库: requests >>>…

【C++杂货铺】string使用指南

文章目录 前言一、介绍二、string类的常用接口说明2.1 常见的构造接口2.2 与容量有关的接口2.3 与对象访问及遍历有关的操作2.4 与对象修改有关的操作2.5 与查找有关的接口2.6 string类的非成员函数2.7 与类型转换有关的接口 前言 在C语言中&#xff0c;字符串是以\0结尾的一些…

Win10、11集体翻车,祖传Bug连关机都不能

基本可以确定的是&#xff0c;微软将在2024年推出或名为 Win12 的下一代 Windows 。 Win10、11 的更新跨度肉眼可见放缓&#xff0c;可频率嘛&#xff0c;仍然一月几更。 如果你没有禁用更新&#xff0c;应该和小蝾一样&#xff0c;下班关机时经常有熟悉的选项。 不过在大多数…

分享之python 线程

Threading用于提供线程相关的操作&#xff0c;线程是应用程序中工作的最小单元。 1、threading模块 threading 模块建立在 _thread 模块之上。thread 模块以低级、原始的方式来处理和控制线程&#xff0c;而 threading 模块通过对 thread 进行二次封装&#xff0c;提供了更方…

ansible常见模块的运用

ansible常见模块的运用 一&#xff1a;Ansible简介二&#xff1a;ansible 环境安装部署管理端安装 ansibleansible 目录结构配置主机清单配置密钥对验证 三&#xff1a;ansible 命令行模块1&#xff0e;command 模块在远程主机执行命令&#xff0c;不支持管道&#xff0c;重定向…

这所国字头双一流,根本招不满,学硕都没人报!

一、学校及专业介绍 中国民航大学&#xff0c;位于天津市&#xff0c;是民航局、天津市、教育部共建高校&#xff0c;是天津市“双一流”建设高校和高水平特色大学建设高校。 1.1 招生情况 2023年中国民航大学电子信息与自动化学院&#xff0c;初试考806信号与系统的一共有两…

Windows环境下创建定时任务执行Python脚本

一、环境 以下演示使用的环境说明 Windows 操作系统&#xff1a;Win10 Python 环境&#xff1a;Python 3.7.7 二、脚本 准备Python脚本如下&#xff1a; import sys import datetimeformat_time datetime.datetime.now()with open(file"forpy.log",mode"a&qu…

单月涨粉345万,7月抖音爆款技巧是什么?

近期&#xff0c;抖音电商官方发布「七夕好礼季」的玩法攻略&#xff0c;助力商家抢跑七夕。如今&#xff0c;各类营销节点&#xff0c;成为商家实现生意爆发的关键。 那么&#xff0c;在没有营销节点加持的7月&#xff0c;那些表现突出的主播&#xff0c;持续畅销的商品&#…

解决elementUI图标按钮调整宽高后图标没有居中的问题

解决elementUI图标按钮调整宽高后图标没有居中的问题 1.情景再现2.解决2.1 重新设置新的padding2.2 flex布局 1.情景再现 我是用elementui的图标按钮组件&#xff0c;但是我想要的大小和官方给到的大小不一致。所以我给图标设置了一个width: 16px;height: 16px;的属性值&#…

开学在即,这个超好用的中小学新生录取查询系统制作方法值得借鉴

即将开学&#xff0c;中小学负责招生的老师面临着新学年的招生工作。这是一项紧迫且重要的任务&#xff0c;需要老师们迅速而有效地应对。在新生录取过程中&#xff0c;有几个关键任务需要尽快完成。 首先&#xff0c;老师们需要录入新生的成绩信息。这包括学生的考试成绩、综…