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

4G WWAN设备类型

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>命令查询设备及其父级(如果有)的所有属性。

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

相关文章:

4G WWAN设备类型

WWAN设备类型 USB dongle是设备接入互联网的重要方式之一&#xff0c;典型的通过USB接口与主设备连接&#xff0c;然后主设备通过4G/5G接入互联网&#xff0c;作为移动宽带设备&#xff0c;它有那些设备类型及暴露方式呢&#xff1f; 移动宽带设备类型&#xff1a;ModemManage…...

windows环境下安装elasticsearch、kibana

通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候&#xff0c;要非常小心&#xff0c;因为100等于100、但是200不等于200&#xff0c;当然&#xff0c;如果你会一点小花招&#xff0c;也可以让100不等于100、让200等于200。(运算符比较…...

Java Selenium WebDriver 网页填报

一、windows环境安装配置 1.安装chrome浏览器 在“关于chrome”界面&#xff0c;查看浏览器版本号 2.下载chromeDriver 在https://registry.npmmirror.com/binary.html?pathchromedriver/下载对应版本的驱动&#xff08;如果浏览器版本过新&#xff0c;建议下载最接近的版…...

【NLP概念源和流】 06-编码器-解码器模型(6/20 部分)

一、说明 在机器翻译等任务中,我们必须从一系列输入词映射到一系列输出词。读者必须注意,这与“序列标记”不同,在“序列标记”中,该任务是将序列中的每个单词映射到预定义的类,如词性或命名实体任务。 作者生成 在上面的...

运维必备的免费在线画图工具,你觉得哪个最好用呢

都说一图胜千言&#xff0c;一个IT工程师如果能画的一手好图&#xff0c;无论是在方案选项、还是技术交流&#xff0c;都能快速表达自己的想法&#xff0c;让你的思路更加的直观明了&#xff1b;市面上的制图工具有很多&#xff0c;下面就推荐几款好用且免费的工具&#xff0c;…...

skywalking全链路追踪

文章目录 一、介绍二、全链路追踪1. 测试1 - 正常请求2. 测试2 - 异常请求 三、过滤非业务请求链路1. 链路忽略插件2. 配置3. 测试 一、介绍 在上一篇文章skywalking安装教程中我们介绍了skywalking的作用以及如何将其集成到我们的微服务项目中。本篇文章我们介绍在微服务架构…...

Nacos配置中心设置Mongodb

目录 1.common模块导入nacos config依赖 2.common模块新建bootstrap.yaml 3.在自己的模块导入common模块依赖 4.打开nacos新建配置&#xff0c;发布 5.运行服务并测试 效果&#xff1a;在部署完成后&#xff0c;其他人可以自动连接到你本地mongoDB数据库&#xff0c;无需再…...

【Spring Boot】请求参数传json对象,后端采用(map)CRUD案例(101)

请求参数传json对象&#xff0c;后端采用&#xff08;map&#xff09;接收的前提条件&#xff1a; 1.Spring Boot 的Controller接受参数采用&#xff1a;RequestBody 2.需要一个Json工具类&#xff0c;将json数据转成Map&#xff1b; 工具类&#xff1a;Json转Map import com…...

微软开测“Moment4”启动包:Win11 23H2要来了

近日&#xff0c; 有用户在Win11最新的7月累积更新中发现&#xff0c;更新文件中已经开始出现了对“Moment4”的引用。 具体来说&#xff0c;在7月累积更新中&#xff0c;微软加入了“Microsoft-Windows-UpdateTargeting-ClientOS-SV2Moment4-EKB”“Microsoft-Windows-23H2Ena…...

SpringCloud《Eureka、Ribbon、Feign、Hystrix、Zuul》作用简单介绍

概述 SpringCloud是一个全家桶&#xff0c;包含多个组件。 本文主要介绍几个重要组件&#xff0c;也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。 一、业务场景介绍 业务流程&#xff0c;支付订单功能 订单服务改变为已支付订单服务调用库存服务&#xff0c;扣减…...

运维项目—K8S命令

文章目录 一、基本操作1、命名空间kubectl get ns 获取命名空间kubectl get ns default -o yaml 以yaml的格式查看某个nskubectl describe ns hoc-prod 查看某个ns详情1、命名空间与Podkubectl get pods --all-namespaces查看所有命名空间下的所有podkubectl get pod -A查看所有…...

java框架整合Springmvc+···+maven

框架整合: Springmvc Mybatis Shiro&#xff08;权限&#xff09; REST(服务) WebService(服务) JMS(消息) Lucene(搜搜引擎) Quartz(定时调度) Bootstrap Html5&#xff08;支持PC、IOS、Android&#xff09; 系统模块&#xff1a; 1. 用户管理&#xff1a; 用户信…...

答辩PPT怎么做?在线PPT软件哪个好?

又是一年毕业季&#xff0c;相信很多毕业生都开始准备论文答辩&#xff0c;有些同学正在为论文奋夜苦战&#xff0c;有些则是为论文答辩PPT而烦恼。做PPT要用什么软件好呢&#xff1f;这篇文章就来告诉你。 当下有很多PPT制作工具&#xff0c;其中自然也包括Office三件套。这些…...

Astro + Vercel 快速搭建自己的博客网站

Astro 和 Vercel 彼此相得益彰&#xff0c;前者提供出色的开发者体验&#xff0c;用于构建现代静态站点&#xff0c;而后者负责部署和托管代码。 两者结合我们就可以轻轻松松零成本搭建自己的博客网站。查看示例。 步骤 1&#xff0c;创建评论仓库 在部署博客之前&#xff…...

TensorFlow

什么是 TensorFlow TensorFlow是一个开源的机器学习框架&#xff0c;由Google于2015年推出。它被设计用来构建深度神经网络和其他机器学习模型&#xff0c;从而可以实现图像识别、语音识别、自然语言处理、推荐系统、搜索引擎、预测和控制等应用。TensorFlow是一个基于数据流图…...

【iOS RunLoop】

文章目录 前言-什么是RunLoop&#xff1f;默认情况下主线程的RunLoop原理 1. RunLoop对象RunLoop对象的获取 CFRunLoopRef源码部分&#xff08;引入线程相关&#xff09; 2. RunLoop和线程3. RunLoop相关的类RunLoop相关类的实现CFRunLoopModeRef五种运行模式CommonModes CFRun…...

阿里云平台注册及基础使用

首先进入阿里云官网&#xff1a; 阿里云-计算&#xff0c;为了无法计算的价值 点击右上角“登录/注册”&#xff0c;如果没有阿里云账号则需要注册。 注册界面&#xff1a; 注册完成后需要开通物联网平台公共实例&#xff1a; 注册成功后的登录&#xff1a; 同样点击右上角的…...

Mr. Cappuccino的第58杯咖啡——MacOS配置Maven和Java环境

MacOS配置Maven和Java环境 查看Mac使用的是哪个shell下载并准备Maven下载Maven配置前准备 下载并安装JDK下载JDK安装JDK 配置Maven和Java环境添加配置加载配置 验证环境 查看Mac使用的是哪个shell echo $SHELL如果使用的是bash&#xff0c;则使用以下命令 open ~/.bash_profi…...

linux Ubuntu 更新镜像源、安装sudo、nvtop

1.更换镜像源 vi ~/.pip/pip.conf在打开的文件中输入: pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple按下:wq保存并退出。 2.安装nvtop 如果输入指令apt install nvtop报错&#xff1a; E: Unable to locate package nvtop 需要更新一下apt&a…...

LUN映射出错导致写操作不互斥的服务器数据恢复案例

服务器数据恢复环境&#xff1a; 某公司的光纤SAN存储系统&#xff0c;6块硬盘组建一组RAID6&#xff0c;划分若干LUN&#xff0c;MAP到不同的SOLARIS操作系统服务器上。 服务器故障&分析&#xff1a; 由于业务增长需要新增应用&#xff0c;工作人员增加了一台IBM服务器&am…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...