假设我有一个供应商 ID (VID)0123
和产品 ID (PID) 的USB 设备abcd
。
0123:abcd
Run Code Online (Sandbox Code Playgroud)
根据USB.org,产品 ID 分配完全取决于制造商。
产品 ID (PID) 由每个供应商按他们认为合适的方式分配
因此,没有什么可以阻止被误导的供应商销售各种 USB 设备,它们都需要不同的驱动程序,并且都使用相同的供应商和产品 ID。
USB Device A (needs driver X) -> 0123:abcd
USB Device B (needs driver Y) -> 0123:abcd
USB Device C (needs driver Z) -> 0123:abcd
Run Code Online (Sandbox Code Playgroud)
USB.org 承认这种潜在的供应商行为可能存在问题。
重复的数字可能会导致驱动程序错误
在 ID 被重用于需要不同驱动程序的卡的情况下,操作系统可以做些什么来确定合适的驱动程序?
USB 设备提供的任何其他字段是否可用于(或通常用于)推断适当的驱动程序?我假设只有供应商 ID 和产品 ID 用于做出该决定。
或者典型的 *nix 系统会假设0123:abcd
应该使用的驱动程序和驱动程序之间存在一个 <-> 一个关系,因此它所能做的就是选择它认为合适的1 个驱动程序?
我猜,如果通常只使用供应商 id 和产品 id,那么只有手动用户干预才能加载正确的驱动程序,而且除了对供应商让事情变得混乱而感到不安之外,没有什么可做的。
在 Linux 上,当它们扫描可用的 WiFi 网络时iw
提供iwlist
大量信息。我想说这信息太多了。2,308 行对于人类来说解析起来太多了。诚然,我在一栋繁忙的公寓楼里,但更重要的是,冗长的输出实际上对我来说是一个障碍。
$ sudo iw dev wlp8s0 scan | wc -l
2308
Run Code Online (Sandbox Code Playgroud)
我更喜欢更简单的输出。一个相对简短的表格,显示附近接入点的简明概述。此输出仅显示人们可能期望从 GUI WiFi 实用程序获得的各种字段(SSID、信号强度、加密类型),但在终端中。
似乎类似的用户已经在我之前完成了同样的任务,并且在编写复杂的脚本和程序来解析 Linux 无线工具(如iw
. 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14
iw
我发现的这个问题的几乎每个答案都建议解析诸如和iwlist
使用grep
、sed
、之类的工具的输出awk
,但这似乎不是一个很好的答案。特别是因为iw
明确指出其输出不应被删除。
不要对这个工具进行屏幕抓取,我们认为它的输出不稳定。
我想说nmcli
它非常接近我想要的,只是我认为NetworkManager
仅仅为了通过 …