我需要使用来确定我的 USB 是否全速工作的lsusb
USB 连接类型。我读到要做到这一点我需要使用,但输出没有告诉我每个条目对应哪个设备节点。我该如何弄清楚?dd
lsusb -t
答案1
lsusb -t 似乎提供了一个列出“Dev X”的树 - 这对应于标准“lsusb”列表中的设备“00X”。
另一种选择是使用 lsusb -v,它“包含设备当前速度的配置描述符”。
答案2
我已经研究这个问题一段时间了,下面是我编写的一个脚本,用于将 lsusb 输出映射到 /sys。它似乎对我有用,但我还没有进行过广泛的测试。
(注意:我在格式化方面不太走运,所以你可能需要添加一些换行符或其他内容)
#!/bin/bash
#
# usb2sys - find lsusb device in /sys file system
#
die()
{
echo "$@"
exit 1
}
[[ $# -lt 1 ]] && die "need vendor and product ids (from lsusb) as dddd:dddd"
vendor=${1%:*}
product=${1##*:}
sys=/sys/bus/usb/devices/
cd $sys
for d in *; do
path=$sys/$d
if [ -f $path/idProduct ]; then
prod=$( cat $path/idProduct )
vend=$( cat $path/idVendor )
if [ $prod = $product -a $vend = $vendor ]; then
echo prod = $prod
echo vend = $vend
echo /sys device is $path
cat $path/power/wakeup
echo ""
fi
fi
done
答案3
据我所知,没有一个命令或实用程序可以为您提供这些信息。您必须在 下查找信息/sys
。请参阅https://stackoverflow.com/questions/3493858/linux-how-to-map-a-blockdevice-to-a-usb-device了解更多信息。
答案4
这是输出lsusb-t对于我的系统:
# lsusb -t /:总线 04.端口 1:Dev 1,Class=root_hub,驱动程序=ehci-pci/2p,480M |__ 端口 1:设备 2,如果 0,类别=Hub,驱动程序=hub/6p,480M /:总线 03.端口 1:Dev 1,Class=root_hub,驱动程序=ehci-pci/2p,480M |__ 端口 1:设备 2,如果 0,类别=Hub,驱动程序=hub/6p,480M |__ 端口 3:设备 3,如果为 0,则类别=无线,驱动程序=btusb,12M |__ 端口 3:设备 3,如果 1,类别=无线,驱动程序=btusb,12M /:总线 02.端口 1:Dev 1,Class=root_hub,驱动程序=xhci_hcd/4p,5000M |__ 端口 3:设备 2,如果为 0,则类别 = 大容量存储,驱动程序 = usb-storage,5000M /:总线 01.端口 1:Dev 1,Class=root_hub,驱动程序=xhci_hcd/4p,480M |__ 端口 1:设备 2,如果为 0,则类 = 人机接口设备,驱动程序 = usbhid,12M |__ 端口 1:设备 2,如果 1,类别 = 人机接口设备,驱动程序 = usbhid,12M |__ 端口 1:设备 2,如果 2,类 = 人机接口设备,驱动程序 = usbhid,12M |__ 端口 2:设备 3,如果为 0,则类别 = 供应商特定类别,驱动程序 = asix,480M
唯一的大容量存储设备位于总线 02、端口 03,由驱动程序提供服务xhci_hcd,这是适用于 USB3.0 设备的 Linux 驱动程序。据我所知,这是您能找到的唯一有关速度的参考资料,请点击此处。
上述内容可以通过以下方式进行复查。由于您正在寻找堵塞设备,转到/系统/类/块,您可以在这里找到:
# cd /sys/class/block/
root@debS:/sys/class/block# ls
loop0 loop2 loop4 loop6 sda sda2 sda6 sdb
loop1 loop3 loop5 loop7 sda1 sda5 sda7 sdb1
假设你对块设备感兴趣安全数据库,现在你确定总线地址如下:
# cd sdb; cd $(realpath $PWD); echo $PWD
/sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.0/host6/target6:0:0/6:0:0:0/block/sdb
此 (bus2, port 3) 与上面的相符。