내부 USB 장치가 주소 설정에 응답하지 않습니다. 지속적으로 장치 설정을 시도하고 계속 실패하여 배터리, CPU, 디스크 공간 등을 낭비합니다.
USB 포트를 종료하거나 커널이 USB 포트를 구성하려고 시도하는 것을 방지하는 방법이 있습니까?
uhubctl(스마트 허브라고 하지 않음), 포트의 전원/autosuspens_delay_ms(입력/출력 오류 발생), 포트의 전원/제어(이미 자동), 허브의 전원/레벨(실행되지 않음)을 사용하여 재부팅을 시도했습니다. 작동하지 않는 인수). 물론 다른 케이블은 시도해 볼 수 없습니다. 내장형 장치이기 때문입니다.
허브를 완전히 비활성화하고 싶지는 않지만 시도해 볼 의향이 있습니다. 실제로 Linux를 통해 PCI 카드를 제거할 수 있지만 그렇게 하면 실제로 필요한 것(고속 USB 허브)이 제거됩니다.
이 장치는 실제로는 노트북 지문 판독기인 것으로 추측됩니다. 사용한 적이 없거나 사용할 수 없지만 주변에 있었던 것으로 기억합니다.
[ 7283.684834] usb usb1-port7: attempt power cycle
[ 7284.312659] usb 1-7: new full-speed USB device number 41 using xhci_hcd
[ 7284.312858] usb 1-7: Device not responding to setup address.
[ 7284.516966] usb 1-7: Device not responding to setup address.
[ 7284.724647] usb 1-7: device not accepting address 41, error -71
[ 7284.838653] usb 1-7: new full-speed USB device number 42 using xhci_hcd
[ 7284.838852] usb 1-7: Device not responding to setup address.
[ 7285.044852] usb 1-7: Device not responding to setup address.
[ 7285.252760] usb 1-7: device not accepting address 42, error -71
[ 7285.252861] usb usb1-port7: unable to enumerate USB device
[ 7285.366647] usb 1-7: new full-speed USB device number 43 using xhci_hcd
[ 7285.480810] usb 1-7: device descriptor read/64, error -71
[ 7285.702811] usb 1-7: device descriptor read/64, error -71
[ 7285.918653] usb 1-7: new full-speed USB device number 44 using xhci_hcd
[ 7286.032729] usb 1-7: device descriptor read/64, error -71
[ 7286.254780] usb 1-7: device descriptor read/64, error -71
[ 7286.356717] usb usb1-port7: attempt power cycle
Repeat forever
물론 lsusb를 실행하면 장치가 보고되지 않습니다. 그러나 업스트림 허브는 다음과 같습니다.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
답변1
또한 OP가 말했듯이일부 USB 허브개별 포트를 종료할 수 있는 추가 프로토콜이 있으므로 uhubctl을 사용하면 문제를 쉽게 해결할 수 있지만 대부분의 USB 허브(내부 허브 포함)에는 이러한 제어 기능이 없습니다.
authorized
Linux에서는 트리 에 있는 장치 제어 파일에 0을 기록하여 USB 장치 사용을 비활성화하도록 커널에 요청할 수 있습니다 /sys/bus/usb/devices
. 정상적으로 작동하는 장치의 경우 문제가 해결되지만 연결이 계속 끊어졌다가 다시 연결되는 장치의 경우에는 문제가 해결되지 않습니다.
그럼에도 불구하고 USB 허브가 비활성화되면 모든 포트도 비활성화되고 닫힙니다. 따라서 장치가 연결된 USB 허브를 비활성화하면 부적절한 장치가 효과적으로 비활성화되고 전원이 꺼집니다. 허브에 연결된 다른 장치의 손실이 허용되는 경우 이 방법이 가능합니다.
1
파일을 다시 쓰면 authorized
장치가 다시 활성화되고, 허브의 경우 해당 포트와 연결된 모든 장치의 전원이 껐다 켜집니다.
예:
# cat /sys/bus/usb/devices/2-1/product
USB2.0 Hub
# echo 0 > /sys/bus/usb/devices/2-1/authorized
# dmesg|tail -1
[226616.900051] usb 2-1.3: USB disconnect, device number 30
usb 2-1.3
키보드이고 LED 표시등이 꺼져 있습니다.
# echo 1 > /sys/bus/usb/devices/2-1/authorized
# dmesg|fgrep 2-1|tail -10
[227055.203089] hub 2-1:1.0: USB hub found
[227055.204441] hub 2-1:1.0: 4 ports detected
[227055.213891] usb 2-1: authorized to connect
[227055.405342] usb 2-1.3: new low-speed USB device number 41 using xhci_hcd
[227055.511969] usb 2-1.3: New USB device found, idVendor=413c, idProduct=2113, bcdDevice= 1.08
[227055.511975] usb 2-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[227055.511978] usb 2-1.3: Product: Dell KB216 Wired Keyboard
[227055.520754] input: Dell KB216 Wired Keyboard as /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:413C:2113.001A/input/input136
[227055.583032] input: Dell KB216 Wired Keyboard System Control as /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:413C:2113.001B/input/input137
[227055.641748] input: Dell KB216 Wired Keyboard Consumer Control as /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:413C:2113.001B/input/input138
답변2
systemd(또는 상당히 표준적인 Linux 배포판)를 사용한다고 가정하면 USB 초기화는 아마도 다음으로 인해 발생했을 것입니다.우데브, 시작 프로세스 중.이 링크/lib/udev/rules.d
및 에 저장된 규칙 파일을 기반으로 udev가 장치를 로드하고 초기화하는 방법을 설명합니다 /etc/udev/rules.d
.
이러한 규칙 파일 중 하나는 USB 장치를 처리해야 합니다. 정확한 세부 정보를 제공할 수는 없지만 장치 경로나 기타 관련 속성을 기반으로 특정 장치를 제외하도록 USB 규칙을 변경하는 것이 가능해야 한다고 생각합니다. 주변을 탐색하고 몇 가지를 시도해야 할 수도 있습니다.