Linux에서 USB 포트가 계속 재설정됩니다.

Linux에서 USB 포트가 계속 재설정됩니다.

질문
USB 포트(2.0)가 계속 재설정되어 연결된 주변 장치가 잠시 후 작동을 중지합니다.

하드웨어
마더보드: ASUS J1800I-C
CPU: Intel(R) Celeron(R) CPU J1800 @ 2.41GHz
RAM: 4GB

장치 수: 결제 키오스크로 사용되는 장치가 100개 이상이며 모두 동일한 문제를 나타냅니다.

연결된 USB 장치(lsusb)

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 013: ID 0dd4:015d Custom Engineering SPA
Bus 001 Device 012: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard
Bus 001 Device 011: ID 23d8:0285 
Bus 001 Device 010: ID 1ff7:0013 CVT Electronics.Co.,Ltd CVTouch Screen (HID)
Bus 001 Device 009: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 0e8f:0022 GreenAsia Inc. multimedia keyboard controller
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


문제를 재현하는 운영 체제:
Ubuntu 14.04 - 서버(64비트)
Ubuntu 16.04 - 서버(64비트)
Ubuntu 18.04 - 서버(64비트)
UEFI 및 BIOS 부팅을 사용하여 위 운영 체제를 사용해 보십시오.

동일한 하드웨어를 사용해도 문제가 발생하지 않는 운영 체제:
Ubuntu 14.04(서버 및 데스크탑)(32비트)
Ubuntu 16.04 - 서버(32비트)
Windows 7

뭐가 문제 야?
시작할 때 모든 것이 원활하게 진행되며 USB 장치는 15~60분 동안 작동할 수 있습니다. 그 후에는 하나 이상의 포트가 재설정되기 시작하고 dmesg에 오류가 표시됩니다.

    [1484.129248] 성능 중단이 너무 오래 걸려(2520 > 2500), kernel.perf_event_max_sample_rate를 50000으로 줄입니다.
    [2645.972003] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71)
    [2646.236044] USB 1-4.1: xhci_hcd를 사용하여 최대 속도 USB 장치 번호 4 재설정
    [2646.324439] USB 1-4.1: ep 0x1 - 반올림 간격은 64마이크로프레임이고, ep desc는 80마이크로프레임을 의미합니다.
    [2647.558156] USB 1-4.1: xhci_hcd를 사용하여 최대 속도 USB 장치 번호 4 재설정
    [2647.646546] USB 1-4.1: ep 0x1 - 반올림 간격은 64마이크로프레임이고, ep desc는 80마이크로프레임을 의미합니다.
    [3942.619669] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71).
    [3942.619742] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71)
    [3942.619821] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71)
    [3942.619861] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71).
    [3942.619901] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71).
    [3942.619905] USB 1-4포트 1: 활성화할 수 없습니다. USB 케이블이 파손된 것이 아닐까요?
    [3942.690031] USB 1-4.1: xhci_hcd를 사용하여 최대 속도 USB 장치 번호 4 재설정
    [3942.690038] USB 1-4.1: 허브가 장치를 활성화할 수 없습니다. 오류 -22
    [3942.762176] usb 1-4.1: xhci_hcd를 사용하여 최대 속도 USB 장치 번호 4 재설정
    [3943.170800] USB 1-4.1: 장치가 주소 4를 허용하지 않음, 오류 -22
    [3943.242967] usb 1-4.1: xhci_hcd를 사용하여 최대 속도 USB 장치 번호 4 재설정
    [3943.651734] USB 1-4.1: 장치가 주소 4를 허용하지 않음, 오류 -22
    [3943.653063] USB 1-4.1: USB 연결 끊김, 장치 번호 4
    [3943.751603] USB 1-4.1: xhci_hcd를 사용하는 새로운 전속 USB 장치 번호 8
    [3943.840892] USB 1-4.1: 새 USB 장치 발견, idVendor=1ff7, idProduct=0013
    [3943.840899] usb 1-4.1: 새 USB 장치 문자열: Mfr=0, Product=0, SerialNumber=0
    [3943.841068] USB 1-4.1: ep 0x1 - 반올림 간격은 64마이크로프레임이고, ep desc는 80마이크로프레임을 의미합니다.
    [3943.850194] 입력: HID 1ff7:0013은 /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/0003:1FF7:0013.0005/input/input11입니다.
    [3943.850467]hid-multitouch 0003:1FF7:0013.0005:input,hiddev0,hidraw3:USB HID v1.11 마우스 [HID 1ff7:0013] on usb-0000:00:14.0-4.1/input0
    [4215.269989] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71)
    [4215.270192] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71)
    [4215.270264] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71)
    [4215.270343] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71).
    [4215.270383] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71)
    [4215.270386] USB 1-4포트 1: 활성화할 수 없습니다. USB 케이블이 파손된 것이 아닐까요?
    [4215.342214] USB 1-4.1: xhci_hcd를 사용하여 최대 속도 USB 장치 번호 8 재설정
    [4215.342221] USB 1-4.1: 허브가 장치를 활성화할 수 없습니다. 오류 -22
    [4215.358192] 허브 1-4:1.0: 허브_ext_port_status 실패(오류=-71)
    [4215.358263] USB 1-4포트 1: 재설정할 수 없습니다(오류=-71)
    [4215.622566] USB 1-4.1: xhci_hcd를 사용하여 최대 속도 USB 장치 번호 8 재설정
    [4215.755250] USB USB1 - 포트 4: 허브(EMI?)에 의해 비활성화되고 다시 활성화됩니다...
    [4215.755273] USB 1-4: USB 연결 끊김, 장치 번호 3
    [4215.755277] USB 1-4.1: USB 연결 끊김, 장치 번호 0
    [4216.031181] USB 1-4.1: 장치가 주소 8을 허용하지 않음, 오류 -22
    [4216.064588] USB 1-4.2: USB 연결 끊김, 장치 번호 5
    [4216.065324] USB 1-4.3: USB 연결 끊김, 장치 번호 6
    [4216.065632] 옵션 1 ttyUSB0: GSM 모뎀(1 포트) 변환기가 이제 ttyUSB0에서 연결이 끊어졌습니다.
    [4216.065647] 옵션 1-4.3:1.0: 장치 연결 끊김
    [4216.065760]huawei_cdc_ncm 1-4.3:1.1 wwx001e101f0000: 'huawei_cdc_ncm' usb-0000:00:14.0-4.3 등록 취소 중, Huawei CDC NCM 장치
    [4216.079590] 옵션 1 ttyUSB1: GSM 모뎀(1 포트) 변환기가 이제 ttyUSB1에서 연결이 끊어졌습니다.
    [4216.079611] 옵션 1-4.3:1.2: 장치 연결 끊김
    [4216.079752] 옵션 1 ttyUSB2: GSM 모뎀(1 포트) 변환기가 이제 ttyUSB2에서 연결이 끊어졌습니다.
    [4216.079768] 옵션 1-4.3: 1.3: 장치 연결 끊김
    [4216.148026] USB 1-4.4: USB 연결 끊김, 장치 번호 7
    [4216.148183] usblp2: 제거됨
    [4216.387741] USB 1-4: xhci_hcd를 사용하는 새로운 고속 USB 장치 번호 9
    [4216.517658] USB 1-4: 새 USB 장치 발견, idVendor=05e3, idProduct=0610
    [4216.517666] USB 1-4: 새 USB 장치 문자열: Mfr=0, Product=1, SerialNumber=0
    [4216.517670] USB 1-4: 제품: USB2.0 허브
    [4216.518341] 허브 1-4:1.0: USB 허브를 찾았습니다.
    [4216.518643] 허브 1-4:1.0: 4개 포트 감지됨
    [4216.792385] USB 1-4.1: xhci_hcd를 사용하는 새로운 전속 USB 장치 번호 10
    [4216.885849] USB 1-4.1: 새 USB 장치 발견, idVendor=1ff7, idProduct=0013
    [4216.885855] usb 1-4.1: 새 USB 장치 문자열: Mfr=0, Product=0, SerialNumber=0
    [4216.886042] USB 1-4.1: ep 0x1 - 반올림 간격은 64마이크로프레임이고, ep desc는 80마이크로프레임을 의미합니다.
    [4216.895096] 입력: HID 1ff7:0013은 /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.1/1-4.1:1.0/0003:1FF7:0013.0006/input/input13입니다.
    [4216.951230]hid-multitouch 0003:1FF7:0013.0006:input,hiddev0,hidraw2:USB HID v1.11 마우스 [HID 1ff7:0013] on usb-0000:00:14.0-4.1/input0

시도해 보았으나 문제가 해결되지 않은 사항:
다른 많은 옵션 중에서 Linux 커널 cmdline: usbcore.auto현수막=-1을 추가하여 USB 포트에 대한 자동 일시 중단을 비활성화하려고 시도했지만 모두 실패했습니다.
또한 USB와 관련된 여러 BIOS 옵션을 변경해 보았지만 아무 소용이 없었습니다.

유용한 사실:
- 모든 USB 2.0 4 포트에서 이 문제가 발생합니다.
- 이 마더보드에는 USB 3.0 포트가 있으며 이 문제의 영향을 받지 않는 것 같습니다.
- USB3 포트에 연결된 전원 공급형 USB 허브를 사용한 다음 모든 USB 장치를 연결하면 문제가 해결되는 것 같습니다.
- 동일한 운영체제의 32비트 버전을 사용하면 USB 문제가 해결되는 것 같습니다. dmesg 경고나 오류 없이 일부 32비트 키오스크에서 3일간 가동 시간을 테스트했습니다.

질문:
64비트 Ubuntu 16.04에서 이 문제를 해결하는 방법은 무엇입니까?

32비트로 변환하려면 100개가 넘는 장치를 다시 설치해야 하기 때문에 나에게는 비실용적인 솔루션입니다. 또한 일부 장치에는 64비트 독점 SDK가 함께 제공됩니다.

업데이트 1:
Archlinux 64비트는 동일한 하드웨어에서 제대로 작동하는 것 같습니다.

답변1

나도 같은 문제가 있었는데, 내 dmesg가 다음 메시지로 가득 차서 컴퓨터를 제거하거나 일시 중지할 수 없었습니다.

[ 4095.313680] usb usb4-port5: Cannot enable. Maybe the USB cable is bad?
[ 4099.301425] usb usb4-port5: Cannot enable. Maybe the USB cable is bad?
[ 4103.293161] usb usb4-port5: Cannot enable. Maybe the USB cable is bad?

USB 장치를 오랫동안 분리해 두면 이런 현상이 발생합니다. 어쩌면 일부 장치의 컨트롤러를 너무 오랫동안 쥐고 너무 많은 일시 정지를 경험하고 잘못된 신호를 보낸 후 컨트롤러가 불안정해졌을 수도 있습니다.

나는 이것이 트릭을 수행한다는 것을 알았습니다.

  • 당기다모두귀하의 USB 장치;

또는

  • 컴퓨터 전원을 끄고 PSU(전원 공급 장치)와 함께 제공되는 버튼을 끄십시오. 그렇지 않으면 PSU가 계속해서 마더보드에 전원을 공급하고 연결된 장치의 USB 컨트롤러에 전원을 공급합니다.

항목 목록

물론 케이블이 손상되는 경우도 있습니다. 이봐:https://askubuntu.com/a/348799/82315

답변2

Archlinux 64비트는 동일한 하드웨어에서 제대로 작동하는 것 같습니다.

Arch는 롤링 업데이트를 통해 최신 상태를 유지합니다. Ubuntu를 계속 사용해야 하는 경우 Ubuntu 버전에 맞는 메인라인 커널을 제공하는 저장소를 사용해 보십시오.

답변3

스크립트에 넣고 실행해 볼 수도 있습니다.

echo enabled > /sys/bus/usb/devices/usb1/power/wakeup

당신이 가지고 있는 장치의 수에 관계없이.

관련 정보