2017년 2월 25일 토요일

nkey bt61 keyboard with ubuntu

기계식 키보드를 한번도 써보지 않았었는데 휴대폰과 laptop 을 번갈아 가면서 입력하는 번거로움에서 벗어 나보고 싶어서 저렴한 bluetooth 키보드를 구매해 봤다.
nkey bt61
내가 구입한 것은 nkey bt61.
이것 말고도 알리에서 다양하고 저렴한 것들을 구입할 수 있었는데, 국내 인터넷 마켓에서 쉽게 구할 수 있는 놈으로 별 고민없이 결정 했다. 남자라면 핑크!

61개의 key 를 갖고 있는 녀석인데, usb 방식도 지원하고 추가로 3개의 bluetooth 페어링이 가능하다.unboxing 을 하고 별로 쓰지 않는 windows PC 와 휴대폰 그리고 linux laptop 에 페어링을 했다.

ubuntu 에서 추가해 주는 화면
그런데...
항상 그렇지만 한번에 순조로운 사용이 가능한 제품은 없는 것 같다.
내가 사용하고 있는 ubuntu 16.10 laptop 에서는 키가 정상적으로 typing 되지 않았다. 일부 키만 동작 하지 않는게 아니라 key map 자체가 아예 비정상 적이었다. xev 로 찍어 봐도 10개 남짓한 키를 제외하고는 아예 event 가 찍히지도 않았다.

정확히 얘기 하면 2가지 문제점이 있다.
1. 부팅 할때마다 paring 을 다시 해 줘야 한다.
  - 기존 등록된 장치를 지우고 다시 추가해 줘야 함.
2. 아래 python 을 root 권한으로 실행 해 주고 다시 xev 로 확인해 보면 정상 동작한다.
  - 이유를 모르겠다. 코드는 그냥 debug 용도로 github 를 참조했던 것인데...
#!/usr/bin/env python
import sys
import evdev
devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()]
if len(devices) == 0:
    print "No devices found, try running with sudo"
    sys.exit(1)
for device in devices:
    if device.name == 'NKEY-BT61':
        print(device)
        device.grab()
        for event in device.read_loop():
            if event.type == evdev.ecodes.EV_KEY:
                print(evdev.categorize(event))

결과적으로 위의 workaround 솔루션으로 bt61 을 정상적으로 사용할 수 있게 되었다.
찜찜하지만 일단 사용할 수 있으므로 pass.

댓글 없음: