Univeral Wireless Keyboard(TM) 에 관한 참고사항


차례

<pubdate>2005. 6. 4</pubdate>

드라이버는 시작시에 자동으로 Xwindow 의 키정의를 읽어온다. 사용중에 키정의를 다시 읽어들이려면 LeftFn-equal 조합을 누르면 된다. 타이밍 설정파일은 /etc/uwkrc 이다. 드라이버는 이 파일이 제위치에 없는 경우 자체 설정대로 동작한다. 또한 아무 옵션없이 uwkxwin 을 실행할 경우 irda 포트를 /dev/ttyS1 으로 가정하고 동작을 개시한다. 만일 다른 포트, 다른 설정파일을 지정하려면 uwkxwin -d /dev/ttyS2 -c /etc/uwkrc 와 같은 식으로 적어준다.

일정시간 아무 입력이 없으면 자동으로 드라이버를 종료하는 auto off 기능을 가지고 있다. uwkrc 의 설정파일에서 이 시간을 조정할 수 있다. 무선키보드에서 LeftFn-Del 조합을 누르면 즉시 드라이버를 종료하게 된다.

일반 키보드의 ESC 에 해당하는 팜 유니버설 무선키보드의 키는 Cmd 이다.

IrDA 프로토콜은 쌍방향 프로토콜로서 서로 상대방 기기를 상호확인하는 절차를 마친 후에 비로소 전하고자 하는 내용을 전송한다. UWK 가 비록 IrDA 하드웨어 규격을 만족하는 기기로서 IrDA 프레임을 전송하기는 하나, 수신능력이 없기 때문에 쌍방향 프로토콜에 기반한 IrDA 상위 프로토콜, 가령 irtty 나 ircomm 같은 것들은 사용할 수 없다. 따라서 키보드 드라이버는 프로토콜 스택을 통하기 전의 Raw IrDA 프레임을 그대로 잡아 해석해야 한다. /dev/ttySX 디바이스를 열어 입력을 읽으면 된다. 이때 커널에 irtty, irda, lirc_sir 등 다른 irda 모듈들이 떠있으면 이들이 먼저 입력신호를 읽어가버리므로 필히 드라이버 실행전에 제거하도록 한다.

하드웨어에 대해 제조사에서 내놓은 공식적인 자료는 아직 없다. 다음은 필자가 직접 알아낸 팜 유니버설 무선키보드의 키코드로서, 키가 눌릴 때(make) 한 바이트 값이 방출된다. 키가 떼어질 때(break) 발생하는 값은 눌릴 때 값의 최상위 비트(msb)를 1 로 한 값이다.

표 1. 팜 유니버설 무선키보드 키코드 표

KeyKey CodeKeyKey CodeKeyKey Code
Grave0x0eI0x43C0x21
10x16O0x44V0x2a
20x1eP0x4dB0x32
30x26bracketleft0x54N0x31
40x25bracketright0x5bM0x3a
50x2ebackslash0x5dcomma0x48
60x36CapsLk0x58period0x49
70x3dA0x1cUp0x28
80x3eS0x1bShift-R0x59
90x46D0x23slash0x4a
00x45F0x2bCtrl-L0x14
minus0x4eG0x34Fn-L0x02
equal0x55H0x33CMD0x03
BkSp0x66J0x3bCancel0x11
Tab0x0dK0x42Space0x29
Q0x15L0x4bAltGr0x30
W0x1dsemicln0x4cLeft0x5e
E0x24apostrophe0x52Down0x60
R0x2dEnter0x5aRight0x2f
T0x2cShift-L0x12Del0x1f
Y0x35Z0x1a  
U0x3cX0x22