知春路网站建设,如何做链接,信誉好的电商网站建设,linux下网站搭建WWAN设备类型
USB dongle是设备接入互联网的重要方式之一#xff0c;典型的通过USB接口与主设备连接#xff0c;然后主设备通过4G/5G接入互联网#xff0c;作为移动宽带设备#xff0c;它有那些设备类型及暴露方式呢#xff1f; 移动宽带设备类型#xff1a;ModemManage…WWAN设备类型
USB dongle是设备接入互联网的重要方式之一典型的通过USB接口与主设备连接然后主设备通过4G/5G接入互联网作为移动宽带设备它有那些设备类型及暴露方式呢 移动宽带设备类型ModemManager能够与几乎所有类型的移动宽带调制解调器进行交互只要该设备至少暴露一个控制端口。不支持没有控制端口的设备例如某些仅暴露网口的USB dongles。 在系统中的暴露方式对于支持的移动宽带设备它们通过控制端口与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中不需要自定义端口类型提示。
预期的端口类型
网络端口例如wwan0WWAN子系统的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_ipa0WWAN子系统的AT或QMI控制端口例如wwan0qmi0、wwan0at0在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-devicesPCI设备
使用lspci命令类似于lsusb但用于PCI设备。
$ lspci -t
$ lspci -v
QRTR兼容设备
对于通过QRTR子系统访问的高通设备可以使用Bjorn Andersson的GitHub存储库中提供的多个命令行工具。 https://github.com/andersson/qrtr $ qrtr-lookupUdev设备遍历 运行udevadm来查看udev如何识别给定的端口特别是在编写新的udev规则时非常方便。 使用sudo udevadm info -p /sys/class/subsystem/name命令查询特定设备的所有信息。 使用sudo udevadm info -a /sys/class/subsystem/name命令查询设备及其父级如果有的所有属性。
这些命令和工具可用于查看各种类型的设备布局以帮助理解设备的特性和配置。