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


차례

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

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

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

포켓탑 키보드상의 어떤 키를 누른 채 키보드를 치워버리는 경우 시스템쪽은 키를 뗐다는 신호를 받지 못하게 되므로 키눌림이 계속 유지되고 있다고 판단하고는 그 키를 반복출력 하게된다. 이런 낭패스러운 사태를 방지하기 위해 드라이버는 이 경우 254 회만 반복출력후 자동종료된다.

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

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

표 1. 포켓탑 무선키보드 키코드 표

KeyKey CodeKeyKey CodeKeyKey Code
Tab0x69G0x27Up0x53
Q0x01H0x2fShift-R0x7d
W0x09J0x32Ctrl-L0x6d
E0x11K0x3aPunct0x76
R0x19L0x42Cmd0x75
T0x21semicln0x4aNumLk0x6e
Y0x29apostrophe0x52Alt0x66
U0x31Enter0x5aSpace-L0x2b
I0x39Shift-L0x65Space-R0x34
O0x41Z0x03Function0x3c
P0x49X0x0bLeft0x44
minus0x51C0x13Down0x4c
BkSp0x59V0x1bRight0x54
CapLk0x77B0x23Del0x5b
S0x0fN0x33Date0x40
D0x17M0x3bAddress0x48
A0x07comma0x43ToDo0x50
F0x1fperiod0x4bMemo0x58