在我的Ubuntu 12.04上,当我插入USB设备,在开发目录树usb设备是这样添加的:
/dev/bus/usb/001/001
在我的CentOS 5上添加如下:
/dev/bus/usb/devices/2-1.4/
lsusb需要usb设备在/ dev下创build,就像第一个一样。 为了解决它,当我尝试手动链接,操作系统给“没有这样的文件或目录错误”,但链接相同的目录可以在Ubuntu下完成没有问题。
CentOS的:
ln -s /dev/bus/usb/devices/2-1.4/descriptors /sys/bus/usb/001/001 ln: creating symbolic link `/sys/bus/usb/001/001' to `/dev/bus/usb/devices/2-1.4/descriptors': No such file or directory
在Ubuntu下创build/ dev / bus / usb不会给出错误。
当我在CentOS下插入我的USB设备时,日志是这样的:
Dec 5 12:20:18 2012 kernel: [74465.103460] usb 2-1.4: new high-speed USB device number 36 using ehci_hcd Dec 5 12:20:18 2012 kernel: [74465.194011] scsi62 : usb-storage 2-1.4:1.0 Dec 5 12:20:18 2012 kernel: [74465.194091] scsi63 : usb-storage 2-1.4:1.1 Dec 5 12:20:19 2012 kernel: [74466.196062] scsi 62:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2 Dec 5 12:20:19 2012 kernel: [74466.196441] scsi 63:0:0:0: Direct-Access HUAWEI TF CARD Storage PQ: 0 ANSI: 2 Dec 5 12:20:19 2012 kernel: [74466.198548] sr0: scsi-1 drive Dec 5 12:20:19 2012 kernel: [74466.198630] sr 62:0:0:0: Attached scsi generic sg1 type 5 Dec 5 12:20:19 2012 kernel: [74466.198719] sd 63:0:0:0: Attached scsi generic sg2 type 0 Dec 5 12:20:19 2012 kernel: [74466.201555] sd 63:0:0:0: [sdb] Attached SCSI removable disk Dec 5 12:20:22 2012 udevd-event[18390]: wait_for_sysfs: waiting for \'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/host62/ioerr_cnt\' failed Dec 5 12:20:22 2012 udevd-event[18391]: wait_for_sysfs: waiting for \'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.1/host63/ioerr_cnt\' failed Dec 5 12:20:25 2012 udevd-event[18443]: wait_for_sysfs: waiting for \'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.1/host63/target63:0:0/ioerr_cnt\' failed Dec 5 12:20:25 2012 udevd-event[18442]: wait_for_sysfs: waiting for \'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/host62/target62:0:0/ioerr_cnt\' failed
原因是什么?如何解决?
如果您拥有旧版本的软件包,则必须升级以下软件包。
然后你需要在“/ dev /”目录下创build“usb / bus / 001 /”目录。 如果问题不解决。 你可以用“mknod”命令创build节点。
我相信lsusb使用/ sys挂载的sysfs来发现设备。 我通过查看strace lsusb 2>&1 | grep open的输出证实了这一点 strace lsusb 2>&1 | grep open 。 你确定你有/ sys正确安装? 以下是我的sysfs在Ubuntu上的安装方式:
$ mount | grep sysfs sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
在目前的系统中, /dev命名空间是dynamic的,由udev(7)处理。 也许configuration设备文件的configuration是不同的?
我的印象是,你的udev对你的内核来说太老了。 也许你需要更新你的udev,如果它不是最新的。 另请参阅http://us.generation-nt.com/answer/2-6-37-rc1-wait-sysfs-prints-errors-help-200947741.html (特别是#4中的补丁)
lsusb应该是无关的。 但是,如果它不工作,请确保您的sysfs以正确的权限安装在/ sys上。