usb 장치를 연결하면 내 우분투 12.04에서 dev 디렉토리 트리 아래 usb 장치가 다음과 같이 추가됩니다.
/dev/bus/usb/001/001
내 CentOS 5에서 아래와 같이 추가되었습니다.
/dev/bus/usb/devices/2-1.4/
lsusb는 첫 번째 장치와 같이 / dev 아래에 USB 장치를 만들어야합니다. 수동으로 연결하려고하면이 문제를 해결하기 위해 OS는 ‘No such file or directory error.’를 제공하지만 문제없이 우분투에서 동일한 디렉토리를 연결할 수 있습니다.
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
우분투에서 / 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
원인은 무엇이고 어떻게 해결할 수 있습니까?
답변
이전 버전이있는 경우 다음 패키지를 업그레이드해야합니다.
- libusb1-1.0.8-0.1.el5.i386.rpm
- libusb1-devel-1.0.8-0.1.el5.i386.rpm
- libusb1-static-1.0.8-0.1.el5.i386.rpm
그런 다음 “/ dev /”디렉토리 아래에 “usb / bus / 001 /”디렉토리를 만들어야합니다. 문제가 해결되지 않으면 “mknod”명령으로 노드를 만들 수 있습니다.
답변
lsusb는 / sys 마운트 sysfs를 사용하여 장치를 발견한다고 생각합니다. 의 출력을 확인하여 이것을 확인했습니다 strace lsusb 2>&1 | grep open
. / sys가 올바르게 마운트 되었습니까? 내 sysfs가 Ubuntu에 마운트되는 방법은 다음과 같습니다.
$ mount | grep sysfs
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
답변
현재 시스템에서 /dev
네임 스페이스는 동적이며로 처리됩니다 udev(7)
. 장치 파일을 할당하는 구성이 다를 수 있습니까?
답변
내 인상은 udev가 커널에 비해 너무 오래되었다는 것입니다. 어쩌면 udev가 최신이 아닌 경우 업데이트해야 할 수도 있습니다. 또한 http://us.generation-nt.com/answer/2-6-37-rc1-wait-sysfs-prints-errors-help-200947741.html (특히 cooment # 4의 패치)을 참조하십시오.
lsusb는 관련이 없어야합니다. 그러나 작동하지 않으면 sysfs가 올바른 권한으로 / sys에 마운트되어 있는지 확인하십시오.