Linux에서 키보드 드라이버가 작동하는 방식

Linux에서 키보드 드라이버가 작동하는 방식

최근에 새 키보드를 구입했는데 가격이 저렴하고 브랜드도 알려지지 않았지만 특별히 걱정하지는 않았습니다. 리눅스 프레스에서 그걸 발견했어요Shift, Super, 왼쪽 Ctrl 또는 왼쪽 Alt에 이 키보드를 사용하십시오.아무런 차이가 없습니다. 항상 받아들입니다.변형으로서. 좀 조사해본 결과 키보드에 사용되는 칩셋에 문제가 있다는 것을 알게 되었습니다. 문제를 해결하는 유일한 방법은 키보드용 드라이버를 작성하는 것이라고 읽었지만, 조사하는 동안 실행 중인 것을 발견했습니다.sudo modprobe usbmon그런 다음Wireshark를 sudo로 열기,뜻밖에문제를 풀다...이런 일이 왜 일어나는지 아는 사람 있나요? 이 변경 사항을 트리거하는 더 쉬운 방법이 있습니까?

자세한 세부 사항:

  • 나는 xubuntu 18.04에 있습니다
  • dmyco는 키보드 브랜드입니다.
  • lsusb의 결과는 >> Bus 001 Device 004: ID 1c4f:0056 SiGma Micro

답변1

USB에는 키보드에 대한 두 가지 프로토콜이 있습니다. 기본 HID 프로토콜과 키보드의 단순화된 "부팅 프로토콜"입니다.

usbkbd모든 수정자 키가 Shift 키로 처리된다는 사실은 시스템이 원래 기본 HID 프로토콜 대신 단순화된 시작 키보드 프로토콜(모듈)을 사용했다는 사실과 시작 키보드 프로토콜 지원이 구현되지 않을 수 있다는 사실 때문일 수 있습니다. 글쎄, 이 특별한 키보드에서. 그러나 이것은 단지 터무니없는 추측일 뿐이다.

분명히 시작 프로토콜을 사용하면 USB HIDBP Keyboard 14cf:0056출력에 비슷한 메시지가 표시될 수 있습니다. 당신에게 dmesg무엇을? sudo dmesg | grep HID(원래 질문에 결과를 추가하세요.)

Wireshark는 USB 트래픽도 모니터링할 수 있으며 Wireshark를 실행하면 sudo실제로 모듈 로드가 트리거될 수 있습니다 usbmon. 하지만 이 모듈이 문제를 해결했다는 사실은 usbmon흥미롭습니다. USB 장치가 다시 감지되어 모든 기능을 갖춘 usbhid드라이버 모듈이 키보드 자체를 가져오거나 USB 트래픽의 타이밍을 변경할 수도 있습니다. 원인이 무엇이든 충분할 것입니다. 이 키보드의 "모든 수정자는 Shift입니다"라는 어리석음을 피할 수 있습니다.

답변2

(댓글로 게시할 수도 있었지만 읽을 수는 없었습니다.)

아직 답변이 없으시므로 최소한 도움이 될 수 있는 몇 가지 읽기 자료를 제공해 드릴 수 있습니다.

여기에는 키보드 수정과 관련된 수많은 콘텐츠가 있습니다. "작성" 콘텐츠를 무시합니다.

관련 정보