usb_submit_urb(ctrl) 실패: -1 Corsair k65 RGB 키보드

usb_submit_urb(ctrl) 실패: -1 Corsair k65 RGB 키보드

최근에 Corsair k65 RGB 키보드를 구입했습니다. 물론 처음에는 작동하지 않았지만 ckb-opensource 드라이버를 사용하면 내 아치 시스템에서 모든 것이 잘 작동했습니다.

시스템을 부팅할 때마다 오류가 발생하기 전까지는 모든 것이 잘 진행되었습니다.

usb_submit_urb(ctrl) 실패: -1

화면에 메시지가 나타났고 시스템이 30초 동안 멈췄습니다. 그러면 키보드가 작동하고 시스템에 로그인할 수 있습니다. 그런데 이 오류는 무엇을 의미합니까?

[ 11.238682] 일반 0003:1B1C:1B17.0002 숨기기: usb_submit_urb(ctrl) 실패: -1
[11.239526] hid-generic 0003:1B1C:1B17.0002: 초기화 보고서 시간 초과
[11.239959] 입력: Corsair Corsair K65 RGB 게이밍 키보드는 /devices/pci0000:00/0000:00:1c.7/0000:07:00.0/usb5/5-1/5-1:1.1/0003:1B1C:1B17입니다. .0002/입력/입력6
[11.291882]hid-generic 0003:1B1C:1B17.0002:input,hidraw4:USB HID v1.11 키보드 [Corsair Corsair K65 RGB 게이밍 키보드] at usb-0000:07:00.0-1/input1
[21.291319] hid-generic 0003:1B1C:1B17.0003: 초기화 보고서 시간 초과
[21.291585] hid-generic 0003:1B1C:1B17.0003:hiddev0,hidraw5: USB HID v1.11 장치 [Corsair Corsair K65 RGB 게이밍 키보드] on usb-0000:07:00.0-1/input2
[31.290650] hid-generic 0003:1B1C:1B17.0004: 초기화 보고서 시간 초과
[31.290905] hid-generic 0003:1B1C:1B17.0004:hiddev0,hidraw6: USB HID v1.11 장치 [Corsair Corsair K65 RGB 게이밍 키보드] at usb-0000:07:00.0-1/input3

사용하면 lsusb다음과 같은 결과를 얻습니다.

버스 005 장치 002: ID 1b1c:1b17 Corsair

"usbhid 문제"가 가능한 해결책이라고 들었습니다. 그런데 이걸 어떻게 사용하나요? 아니면 가능한 해결책이 있나요?

답변1

USBhid 기능을 갖춘 모든 Corsair 기계식 키보드를 위한 솔루션입니다.

sudo nano /etc/default/grub

또는 nano 대신 사용하기를 선호하는 다른 편집기.
이 줄이 보이실 겁니다

GRUB_CMDLINE_LINUX_DEFAULT=""

usbhid.quircks를 따옴표 사이에 넣고 저장하세요.
존재하다내 상황이 줄로 바꿔야 했어요

GRUB_CMDLINE_LINUX_DEFAULT="usbhid.quirks=0x1B1C:0x1B17:0x20000408"

그 후 grub을 업데이트하십시오.

sudo update-grub

*명령을 찾을 수 없다면 grub 2.0을 실행 중일 수 있습니다. 대신 이 명령을 사용하십시오. update-grub 명령은 grub-mkconfig를 실행하는 스크립트일 뿐입니다.

sudo grub-mkconfig -o /boot/grub/grub.cfg

완료되면 시스템을 재부팅합니다.
이제 제대로 작동하고 메시지가 나타나지 않아야 합니다.

키보드 사용에 있어서 이상한 점. Corsair 키보드에 대해 아래 목록을 사용할 수 있습니다.

K65 RGB: usbhid.quirks=0x1B1C:0x1B17:0x20000408
K70: usbhid.quirks=0x1B1C:0x1B09:0x0x20000408
K70 RGB: usbhid.quirks=0x1B1C:0x1B13:0x20000408
K95: usbhid.quirks=0x1B1C:0x1B08:0x20000408
K95 RGB: usbhid.quirks=0x1B1C:0x1B11:0x20000408
Strafe: usbhid.quirks=0x1B1C:0x1B15:0x20000408
Strafe RGB: usbhid.quirks=0x1B1C:0x1B20:0x20000408
M65 RGB: usbhid.quirks=0x1B1C:0x1B12:0x20000408
Sabre RGB Optical: usbhid.quirks=0x1B1C:0x1B14:0x20000408
Sabre RGB Laser: usbhid.quirks=0x1B1C:0x1B19:0x20000408
Scimitar RGB: usbhid.quirks=0x1B1C:0x1B1E:0x20000408

고쳐 쓰다 Linux 커널 4.11: HID 수정으로 더 많은 Corsair 마우스 및 키보드가 지원됩니다. K65RGB 및 K70RGB HID 문제는 Linux 4.11에서 이러한 장치에 대해 수정되었습니다.

제출물 참조:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=deaba636997557fce46ca7bcb509bff5ea1b0558

터미널에서 이 명령을 사용하려면 커널 버전을 찾을 수 있습니다. uname -r

전체적으로 Linux 커널 4.11을 사용하는 경우 usbhid 문제를 추가하기 위해 이 절차를 수행할 필요가 없을 것입니다.

답변2

최근에 구입한 K70 Lux가 Linux Mint 18(4.4.0-21 커널)에서 제대로 작동하도록 하려면 다른 코드를 사용해야 한다는 점을 덧붙이고 싶었습니다.

K70 럭스: usbhid.quirks=0x1B1C:0x1B36:0x0x20000408

코드는 출력을 기반으로 합니다 lsusb. 내 경우에는

Bus 003 Device 002: ID 1b1c:1b36 Corsair 

이것을 이전 답변의 코드와 비교한 결과, 내 장치와 일치하도록 USB 식별자를 변경해야 한다는 것을 알았습니다.

답변3

이 답변은 @rsking84 및 @romano의 답변을 완전히 기반으로 하지만 다른 접근 방식을 사용하여

  • 이 기능은 컴퓨터를 다시 시작하지 않고도 작동합니다.
  • 컴퓨터를 다시 시작하지 않고 디버깅

인용하다이 게시물, Romano의 방법 세트커널 명령줄 매개변수모듈 매개변수를 설정하는 데 차례로 사용됩니다.USBHID모듈이 로드될 때. 때때로USBHID커널로 컴파일될 것이며, 이 경우 이 매개변수를 설정하는 유일한 방법인 것 같습니다.

모듈 매개변수는 모듈을 로드(또는 다시 로드)할 때 설정할 수도 있습니다. 이는 다음 사례 중 하나를 사용하여 런타임 시 매개변수를 테스트하는 것을 의미합니다.

/usr/bin/sudo rmmod  usbhid
/usr/bin/sudo modprobe usbhid.quirks=0x1B1C:0x1B17:0x200004
cat /sys/module/usbhid/parameters/quirks

(뭔가 문제가 발생하여 키보드 작동이 중지되면 키보드를 뽑았다가 다시 연결하여 문제를 해결할 수 있습니다.)

이 작업이 완료되면(@rsking84의 답변과 같은 제품 및 공급업체 ID 변경 가능) 다음과 같은 옵션을 추가할 수 있습니다 /etc/modprobe.d/ushbid.conf.

options usbhid quirks=0x1B1C:0x1B17:0x200004

rmmod usbhid다시 실행하고 키보드를 다시 연결하여 테스트 할 수 있습니다 .

관련 정보