vivo X6S Plus d参数具体指哪些配置?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 参数 正文

v0x6splus 是一个用于模拟和测试 USB 设备行为的命令行工具,常用于开发 USB 协议、驱动程序或进行硬件兼容性测试,它的 -d 参数是 最核心、最常用的参数之一,用于 指定要模拟的设备描述符

-d 参数的核心作用

-d 参数告诉 v0x6splus:“请模拟一个具有这些特定属性的 USB 设备”,这些属性通常包括:

  • Vendor ID (VID)Product ID (PID):设备的唯一标识符。
  • 设备类、子类和协议:定义设备的功能类型(如 HID、CDC Mass Storage 等)。
  • 端点配置:设备用于数据输入输出的管道。

-d 参数的基本语法

-d 参数后面通常跟一个设备描述符字符串,格式如下:

-d "vid:pid,mi,cd,cs,cp[,iProduct][,iManufacturer]"

让我们逐一解析这个格式中的每个部分:

参数 全称 描述 示例
vid Vendor ID 16位厂商ID,通常是十六进制格式。 0x1d6b (Linux Foundation)
pid Product ID 16位产品ID,通常是十六进制格式。 0x0002 (Ethernet Gadget)
mi Interface Index 接口索引,对于复合设备(如一个设备既有网卡又有串口),mi 用于指定你要配置的是哪个接口。mi=0 表示第一个接口,mi=1 表示第二个,以此类推,如果只有一个接口,可以省略。 0
cd Class Code 设备类,这是一个单字节值,定义了设备的主要功能,常见的有:
0x00: 按需配置
0x02: 通信设备
0x03: HID设备
0x08: 大容量存储
0xef: 应用特定
0xff: 厂商特定
0x02
cs Subclass Code 子类代码,在设备类下的进一步细分。 0x06 (Ethernet)
cp Protocol Code 协议代码,在子类下的具体协议。 0x00
iProduct Product String 产品字符串,可选参数,用于为设备指定一个可读的产品名称,如果包含空格,通常需要用引号括起来。 "My Virtual Ethernet"
iManufacturer Manufacturer String 制造商字符串,可选参数,用于指定制造商名称。 "My Company"

常见使用示例

理解了语法后,我们来看几个非常实用的例子。

示例 1:模拟一个虚拟网卡(最常见)

这是 v0x6splus 最经典的用途,用于模拟一个 USB 以太网适配器,方便在没有物理网卡的环境下进行网络测试或网络启动。

sudo ./v0x6splus -d "0x1d6b:0x0002,0,0x02,0x06,0"

解析:

  • vid:pid = 0x1d6b:0x0002: 这是 Linux Foundation 的标准以太网 Gadget 的 VID/PID,被广泛使用。
  • mi = 0: 配置第一个(也是唯一的)接口。
  • cd = 0x02: 设备类为“通信设备”。
  • cs = 0x06: 子类为“以太网”。
  • cp = 0x00: 协议为“未指定”(对于以太网 Gadget,这通常是正确的)。

执行此命令后,你的系统会检测到一个新的 USB 网卡设备,通常可以配置一个静态 IP 或通过 DHCP 获取 IP。

示例 2:模拟一个 HID 设备(如键盘或鼠标)

如果你想模拟一个 USB 键盘,可以使用以下命令:

sudo ./v0x6splus -d "0x05ac:0x021a,0,0x03,0x01,0"

解析:

  • vid:pid = 0x05ac:0x021a: 这是 Apple Inc. 的一个标准键盘 PID,很多系统都能识别,你也可以使用自己的 VID/PID。
  • cd = 0x03: 设备类为“人机接口设备”。
  • cs = 0x01: 子类为“Boot Interface”,这表示设备支持 Boot 协议,可以在操作系统启动阶段被识别,常用于键盘、鼠标等。
  • cp = 0x00: 协议为“None”,对于键盘,也可以是 0x01 (Keyboard) 或 0x02 (Mouse)。

示例 3:模拟一个带描述字符串的设备

为了让设备在设备管理器中显示更友好的名称,可以添加产品字符串。

sudo ./v0x6splus -d "0x1234:0x5678,0,0x02,0x06,0,MyTestNIC"

解析:

  • vid:pid = 0x1234:0x5678: 使用一个自定义的 VID/PID。
  • 其他参数与网卡示例相同。
  • iProduct = MyTestNIC: 当你查看设备属性时,其产品名称会显示为 "MyTestNIC"。

示例 4:模拟一个复合设备(多个接口)

一个 USB 设备可以同时提供多种功能,一个设备同时有网卡和串口功能,这需要为每个功能分别指定一个 -d 参数。

# 模拟一个带串口的复合设备
sudo ./v0x6splus -d "0x1d6b:0x0104,0,0x02,0x06,0" -d "0x1d6b:0x0104,1,0x0a,0x00,0"

解析:

  • 第一个 -d: mi=0, cd=0x02 -> 配置第一个接口为 以太网
  • 第二个 -d: mi=1, cd=0x0a -> 配置第二个接口为 CDC-ACM (虚拟串口)
    • cs=0x00, cp=0x00 是 CDC-ACM 的标准值。

这样,一个设备就会同时出现一个网卡和一个串口。


如何获取 VID/PID 和其他参数?

  1. 标准设备: 对于常见的设备类型(如网卡、键盘),可以直接使用业界广泛接受的 VID/PID(如示例中的 0x1d6b:0x0002)。
  2. 自定义设备: 如果你正在为自己的硬件开发驱动,你需要向 USB-IF 申请一个唯一的 VID,PID 则由你自己分配,只要在你的 VID 范围内不重复即可。
  3. 分析现有设备: 你可以使用 lsusb (Linux) 或设备管理器 (Windows) 来查看真实设备的 VID/PID 和类信息,然后模仿它。
    • Linux: lsusb -v 会显示非常详细的设备描述符信息,包括 idVendor, idProduct, bDeviceClass, bDeviceSubClass 等。
参数 关键点
核心作用 指定要模拟的 USB 设备的属性。
语法 -d "vid:pid,mi,cd,cs,cp[,iProduct][,iManufacturer]"
必填项 vid, pid, cd, cs, cp
可选项 mi (多接口时必填), iProduct, iManufacturer
最常见用途 -d "0x1d6b:0x0002,0,0x02,0x06,0" (虚拟网卡)

掌握 -d 参数是使用 v0x6splus 的第一步,通过组合不同的 vid, pid, cd, cs, cp 值,你可以模拟几乎任何标准的 USB 设备,为你的开发和测试工作提供极大的便利。

-- 展开阅读全文 --
头像
小天鹅TG80V61WDX参数有哪些核心配置?
« 上一篇 昨天
ad04400iaa5d0参数具体指哪些配置?
下一篇 » 昨天

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]