[server] CentOS / dev / bus / usb 구조

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에 마운트되어 있는지 확인하십시오.


답변