14.04에서 Microsoft Natural Ergonomic Keyboard 4000 및 7000의 확대 / 축소 슬라이더를 위아래로 스크롤합니다 (신뢰할 수 있음)


29

이 자습서 를 사용 하여 Microsoft Natural Ergonomic Keyboard 4000에서 스크롤 스위치를 작동 시키려고 시도했지만 다음 오류가 발생합니다.

sudo: /lib/udev/keymap: command not found

udev 버전 204-5ubuntu20.2(Trusty에있는 버전)이 있습니다.

이 버전에는 keymap도구 가 포함되어 있지 않습니다 . 그러나 데비안에서 사용할 수있는 더 큰 udev버전 에는이 도구가 포함되어 있습니다.

누군가이 diff를 설명해 줄 수 있습니까? =) 그리고이 경우 어떻게해야합니까? 데비안 저장소에서 패키지를 설치 하시겠습니까?


udev를 사용하여이 문제를 해결 하시겠습니까? 아니면 다른 방법을 사용해도 괜찮습니까? 우분투에 패키지화되지 않은 udev 데비안 패키지를 설치하는 것을 꺼려합니다.
— jobin

어떤 대안이) 환영 =입니다
— 드미트리 Belaventsev

합니까 이 도움을?
— jobin

더 이상 제공되지 않는 keymap유틸리티는 무엇을합니까?
— matt

아래 답변을 포함하도록 내 튜토리얼 (연결 한)을 업데이트했습니다. 감사합니다 :-)
— 테렌스 에덴

답변:


27

당신이 보면 /lib/udev/rules.d/60-keyboard.rules모든 것이 엉망이 된 것을 볼 수 있습니다. 이것은 계속 진행중인 시스템으로의 udev 합병의 일부입니다.

모든 하드웨어 규칙은 이진 하드웨어 데이터베이스로 컴파일됩니다. 이것들은 정말 이상한 형식을 따릅니다. udev와 함께 제공되는 키보드의 기존 규칙은에 /lib/udev/hwdb.d/60-keyboard.hwdb있습니다. 그 보지만 하지 편집을 (업데이트가 아마 그것을 덮어 쓰게됩니다).

맞춤 규칙을 추가하기 위해을 /etc/udev/hwdb.d/실행 하여 새 파일을 만듭니다 sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb. 다음에 붙여 넣기 만하면됩니다.

4000 모델을 사용중인 경우 :

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_0c022d=pageup
 KEYBOARD_KEY_0c022e=pagedown

7000 모델을 사용중인 경우 :

keyboard:usb:v045Ep071D*
 KEYBOARD_KEY_0c022d=pageup
 KEYBOARD_KEY_0c022e=pagedown

이것은 게시 한 튜토리얼에서 채택되었으므로 키보드를 기준으로 조정해야 할 수도 있습니다. 를보고 위 lsusb의 vendor:product코드 v####p####가 올바른지 확인하십시오. 일치하지 않으면 작동하지 않습니다.

편집이 끝나면 hwdbudev가 사용 하는 것을 다시 컴파일하십시오 .

sudo udevadm hwdb --update

그런 다음 다시 연결해야 할 수도 있습니다 . PS / 2 키보드 인 경우 재부팅해야 할 수도 있습니다. 경우에 따라 재부팅해야합니다.


회신을위한 Thx! hwdb.d디렉토리가 비어 rules.d불과 3 파일이 포함되어 있습니다 ( 70-persistent-cd.rules, 70-persistent-net.rules, README). 새 파일을 만들어야한다는 의미입니까? 아니면 편집해야 할 것이 있습니까?
— Dmitry Belaventsev 2016 년

예, 새 파일을 만들어야합니다. 기존 키보드 규칙이 적용 /lib/udev/hwdb.d/60-keyboard.hwdb되지만 udev 업데이트 후 편집 한 내용이 손실됩니다.
— Oli

2
불행하게도, 일에 목표 버튼을하지 않습니다
— 드미트리 Belaventsev

1
@ matt, 당신은 여기
— user.dz

1
플러그를 뽑는 대신에 udevadm trigger /dev/input/by-id/usb-Microsoft-*업데이트를 시작 하는 데 사용할 수 있습니다
— Alexandr Priymak

37

우분투 15.10 : 이전 답변으로는 성공하지 못했습니다.

나는 이전의 것과 유사한 접근법을 성공적으로 사용했다 /lib/udev/hwdb.d/60-keyboard.hwdb.

사용하여 새 hwdb 파일을 만들었습니다 sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb 포함 .

# Microsoft Natural Ergonomic Keyboard 4000-확대 / 축소 페이지 확대 / 축소로 다시 매핑
evdev : 입력 : b0003v045Ep00DB *
 KEYBOARD_KEY_c022d = pageup
 KEYBOARD_KEY_c022e = 페이지 다운

그 후 나는 달렸다

sudo udevadm hwdb --update
sudo udevadm 제어 --reload

키보드를 다시 연결하면 작동합니다.

모델 7000 용 evdev:input:b003v045Ep071D*


9
이것은 Ubuntu 16.04에 대한 정답입니다.
— Greg Dan

2
감사. 실제로 keyboard:정의가 더 이상 Ubuntu 1604에서 작동하지 않는 것 같습니다 evdev:. /lib/udev/hwdb.d/60-keyboard.hwdb4000 모델에는 zoomin/에 매핑하는 기본 매핑도 zoomout있지만 X는 이벤트를 완전히 무시하므로 (xev는 아무것도 표시하지 않음) 여전히 이와 같은 구성 변경이 필요합니다.
— wump

2
b0003외모 그것의 버스 별처럼 (그것은 단지 일부 USB 포트에서 작동 할 수 있도록). 같은 것이 b*v045Ep071D*효과가 있다면 더 좋을 것입니다.
— Oli

3
감사합니다. 우분투 16.04에서 작동하고 있습니다 ( evdev:input:XXX대신 keyboard:usb:YYY). pageup/ 대신 다른 매핑을 사용할 수도 있습니다 pagedown. 예를 들어, 실제 스크롤을 사용 scrollup하고 scrolldown있습니다.
— Martin Grůber

1
쿠분투 17.10에서도 작동
— OOPMan

7

OLI에 의해 게시 원래의 솔루션은 나를 위해 일을하지 않았다,하지만 난 키 번호를 변경 후 작동 "0c022d"과 "0c022e"에 "c022d"와 "c022e". 4000 모델을 사용하고 있으므로 7000 모델에 동일한 변경이 필요한지 확인할 수 없습니다.

Oli의 답변을 반복하려면 여기에 내가 한 일이 있습니다 sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb. 을 실행하여 새 파일을 만듭니다 . 다음 행을 파일에 붙여 넣으십시오 (4000 모델의 경우).

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=pageup
 KEYBOARD_KEY_c022e=pagedown

파일을 편집 한 후 udev가 사용하는 hwdb를 다시 컴파일하십시오.

sudo udevadm hwdb --update

그런 다음 키보드를 다시 연결하십시오.


감사. 이상하게도 지금은이 변경을 수행해야했으며 다시 연결 해야하는 것이 아니라 다시 시작해야했습니다.
— matt

우분투 15.04에서 나를 위해 일했습니다. 감사!
— Pierre

이것은 데비안 Jessie 8.5에서 나를 위해 일했습니다.
— Nicolás

경제적 인 키보드를 사고 싶습니다. 16.04 LTS와 호환되는지 궁금합니다. 또는 이와 같은 문제가 없습니다.
— Arpad Horvath

4

Oli의 답변에 추가, 마우스와 같은 줄 스크롤을 원한다면 사용자 정의 규칙에서 pageup / pagedown을 위 / 아래로 수정할 수 있습니다. 처럼:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=up
 KEYBOARD_KEY_c022e=down

그런데 : 위 / 아래는 18.04의 기본값입니다.
— LinuxLuigi

1

좋은 해결책이 여기 있으며, 키를 사용하지 않는 X 키에 다음과 같이 매핑 할 수 있다는 것만 추가 할 수 있습니다.

$ cat /lib/udev/rules.d/95-keymap.rules
...
ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d katakana 0xc022e katakanahiragana
...

대신 사용할 올바른 이름은 여기katakana 에서 찾을 수 있습니다 .

;-) 재부트 후 키 zoomin와 zoomout키가 성공적으로 매핑되었는지 테스트하고 다음 을 사용하여 올바른 키 이름 ( rc.xml예 xev: OpenBox WM에 사용)을 찾을 수 있습니다 .

$ xev
...
KeyRelease event, serial 46, synthetic NO, window 0x3c00001,
    root 0x291, subw 0x0, time 1492891, (-261,-61), root:(573,380),
    state 0x0, keycode 101 (keysym 0xff27, Hiragana_Katakana), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
...

이제 새로운 키를 완전히 임의의 동작에 연결할 수 있습니다. OpenBox 창 관리자의 경우 다음과 같이 사용했습니다.

$ cat <whatever>/rc.xml
...
<keybind key="Katakana">
  <action name="Execute">
    <command>volume_up.sh</command>
  </action>
</keybind>
<keybind key="Hiragana_Katakana">
  <action name="Execute">
    <command>volume_down.sh</command>
  </action>
</keybind>
...
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.