![재설정 후 USB 장치가 올바르게 열거되지 않는 이유는 무엇입니까?](https://linux55.com/image/188581/%EC%9E%AC%EC%84%A4%EC%A0%95%20%ED%9B%84%20USB%20%EC%9E%A5%EC%B9%98%EA%B0%80%20%EC%98%AC%EB%B0%94%EB%A5%B4%EA%B2%8C%20%EC%97%B4%EA%B1%B0%EB%90%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
Sierra Wireless WP7610에 연결된 임베디드 Linux 장치가 있습니다. WP7610에는 0, 1, 2라는 세 개의 USB 직렬 포트가 있습니다. WP7610이 재설정되기 전까지는 모두 문제가 없습니다(예: AT+RESET 명령을 보내서). 다시 나타나면 USB 포트가 1, 2, 3으로 나열됩니다. 내 가정은 /dev/ttyUSB0이 무엇인가에 의해 점유되어 있다는 것인데, 무엇인지는 모르겠습니다.
재설정 전 장치는 다음과 같았습니다.
# ls -al /dev/ttyUSB*
crw-rw---- 1 root root 188, 0 Feb 15 13:05 /dev/ttyUSB0
crw-rw---- 1 root root 188, 1 Feb 15 13:05 /dev/ttyUSB1
crw-rw---- 1 root root 188, 2 Feb 15 13:05 /dev/ttyUSB2
# cat /proc/devices | grep -i “ttyUSB”
188 ttyUSB
# cat /proc/tty/driver/usbserial
usbserinfo:1.0 driver:2.0
0: module:GobiSerial name:"GobiSerial" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1
1: module:GobiSerial name:"GobiSerial" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1
2: module:GobiSerial name:"GobiSerial" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1
# lsmod
Module Size Used by Tainted: G
GobiNet 460334 0
GobiSerial 18134 3
usbserial 41154 7 GobiSerial
rndis_host 9899 0
cdc_ether 9675 1 rndis_host
usbnet 34161 3 GobiNet,rndis_host,cdc_ether
mii 4994 1 usbnet
cdc_acm 24834 0
ehci_ambarella 3615 0
ehci_hcd 77691 1 ehci_ambarella
usbcore 244473 9 GobiNet,GobiSerial,usbserial,rndis_host,cdc_ether,usbnet,cdc_acm,ehci_ambarella,ehci_hcd
cfg80211 337122 0
rfkill 13990 1 cfg80211
# cat /proc/tty/drivers
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
usbserial /dev/ttyUSB 188 0-511 serial
acm /dev/ttyACM 166 0-255 serial
ambarella-uart /dev/ttyS 4 64-66 serial
pty_slave /dev/pts 136 0-1048575 pty:slave
pty_master /dev/ptm 128 0-1048575 pty:master
unknown /dev/tty 4 1-63 console
재설정 후:
# ls -al /dev/ttyUSB*
crw-rw---- 1 root root 188, 1 Feb 19 14:55 /dev/ttyUSB1
crw-rw---- 1 root root 188, 2 Feb 19 14:55 /dev/ttyUSB2
crw-rw---- 1 root root 188, 3 Feb 19 14:55 /dev/ttyUSB3
# cat /proc/tty/drivers
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
usbserial /dev/ttyUSB 188 0-511 serial
acm /dev/ttyACM 166 0-255 serial
ambarella-uart /dev/ttyS 4 64-66 serial
pty_slave /dev/pts 136 0-1048575 pty:slave
pty_master /dev/ptm 128 0-1048575 pty:master
unknown /dev/tty 4 1-63 console
# cat /proc/tty/driver/usbserial
usbserinfo:1.0 driver:2.0
1: module:GobiSerial name:"GobiSerial" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1
2: module:GobiSerial name:"GobiSerial" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1
3: module:GobiSerial name:"GobiSerial" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1
이런 일이 발생하지 않도록 방지하고 싶거나 문제를 해결할 수 있기를 원합니다. 새 USB 포트를 제거한 다음 다시 정의해 보았습니다.
rm /dev/ttyUSB1
rm /dev/ttyUSB2
rm /dev/ttyUSB3
mknod /dev/ttyUSB0 c 188 0
mknod /dev/ttyUSB1 c 188 1
mknod /dev/ttyUSB2 c 188 2
그러나 그것은 변하지 않았습니다 cat /proc/tty/driver/usbserial
. 드라이버를 제거하려고 합니다.
rmmod /lib/modules/GobiSerial.ko
modprobe -r usbserial
그러나 오류로 인해 실패합니다.
modprobe: can't unload module 'usbserial': Resource temporarily unavailable
GobiSerial을 qcserial로 교체하려고 시도했지만 동일한 문제가 발생합니다.
cat /proc/tty/driver/usbserial
usbserinfo:1.0 driver:2.0
1: module:qcserial name:"Qualcomm USB modem" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1
2: module:qcserial name:"Qualcomm USB modem" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1
3: module:qcserial name:"Qualcomm USB modem" vendor:1199 product:68c0 num_ports:1 port:0 path:usb-AmbUSB-1