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

이것은 게시 한 튜토리얼에서 채택되었으므로 키보드를 기준으로 조정해야 할 수도 있습니다. 를보고 위 lsusbvendor: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 에서 찾을 수 있습니다 .

;-) 재부트 후 키 zoominzoomout키가 성공적으로 매핑되었는지 테스트하고 다음 을 사용하여 올바른 키 이름 ( rc.xmlxev: 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.