Wacom 타블렛(Tablet) KLDP <author>황보 진호 <htmlurl url="mailto:truefeel@sarang.net" name="truefeel@sarang.net"> <date>v0.1, 2000년 4월 28일 부터 5월 초 <abstract> 리눅서들의 꿈 중 하나가 PC에서 사용할 수 있다는 모든 하드웨어를 리눅스에서도 사용할 수 있기를 바라는 것이다. 어느 하드웨어를 구입해야 제대로 쓸 수 있게 되는지 고민하지 않게 될기 바라며 타블렛 중에서는 가장 많이 사용되는 것으로 알려진 Wacom 타블렛 사용법을 소개한다. 잘 못된 부분, 오자, 탈자가 있거나 도움을 줄 분은 <htmlurl url="mailto:truefeel@sarang.net" name="truefeel@sarang.net"> 또는 <htmlurl url="mailto:truefeel@kisc.net" name="truefeel@kisc.net"> 으로 메일을 보내주기 바란다. </abstract> <toc> <sect> 들어가기<p> Wacom 타블렛은 콘솔상에서 뿐만 아니라 Xwindow 에서도 사용할 수 있다. <itemize> <item> <bf/콘솔에서 사용/ : gpm <item> <bf/Xwindow에서 사용/ : XFree86 자체에 모듈형식으로 드라이버 제공 </itemize> 필자의 사용 환경은 다음과 같다. <itemize> <item> CPU : 펜티엄 셀러론 400 <item> Tablet : Wacom 타블렛(DIGITIZER II, 크기 : 6X8, 모델명 : UD-0608-R, ROM 버전 : v1.4-2) <item> Keyboard, Mouse : 세진전자 무선키보드(FREEBOARD, 모델명 : SWK-8695WT) <p> <item> 배포판 : Redhat v6.1, v6.0 <item> XFree86 : XFree86 v3.3.5, v3.3.3.1 <item> gpm : gpm-Linux 1.17.5 <item> gimp : 1.1.17 <item> gtk+ : 1.2.6 </itemize> <sect> XFree86 에서 사용하기<p> XFree86은 모듈 형식으로 조이스틱, 터치스크린 등을 포함한 AceCad, Wacom 타블렛 드라이버를 제공하고 있다. 이들 드라이버는 Frederic Lepied가 만들었으며, Wacom 타블렛용 드라이버는 xf86Wacom.so 이다. 드라이버는 XFree86 설정 파일인 XF86Config에서 Module Section 을 통해 로딩하여 사용하게 된다. XFree86에서 지원하는 Wacom 타블렛은 다음과 같다. <itemize> <item>ArtZ II 시리즈 <item>ArtPad II <item>PL300(LCD 액정 펜 타블렛) <item>Pen Partner - <bf>XFree86 3.3.6 까지 동작, 하지만 XFree86 4.0에서 성공했다는 글은 아직 본적이 없다.</bf> <item>Graphire <item>Intuos 시리즈 <item>SD와 HD 시리즈 - <bf>표준 XFree86 에서는 지원하지 않는다.</bf> </itemize> XFree86 드라이버는 /usr/X11R6/lib/modules에 있다. <tscreen><verb> truefeel:/usr/X11R6/lib/modules# ls -lF total 1392 drwxr-xr-x 2 root root 4096 Apr 6 23:53 codeconv/ -rwxr-xr-x 1 root root 599867 Oct 12 1999 pex5.so* -rwxr-xr-x 1 root root 18834 Oct 12 1999 xf86AceCad.so* -rwxr-xr-x 1 root root 19313 Oct 12 1999 xf86Calcomp.so* -rwxr-xr-x 1 root root 18185 Oct 12 1999 xf86Dial.so* -rwxr-xr-x 1 root root 14032 Oct 12 1999 xf86Dyna.so* -rwxr-xr-x 1 root root 19546 Oct 12 1999 xf86Elo.so* -rwxr-xr-x 1 root root 14689 Oct 12 1999 xf86Jstk.so* -rwxr-xr-x 1 root root 20652 Oct 12 1999 xf86MuTouch.so* -rwxr-xr-x 1 root root 19642 Oct 12 1999 xf86Summa.so* -rwxr-xr-x 1 root root 33957 Oct 12 1999 xf86Wacom.so* -rwxr-xr-x 1 root root 602169 Oct 12 1999 xie.so* </verb></tscreen> 위와 같이 Wacom 타블렛, AceCad 타블렛, SummaSketch 타블렛 등의 타블렛과 조이스틱, Elographics 터치스크린, MicroTouch 터치스크린을 XFree86에서는 지원한다. Wacom 타블렛을 사용하기 위한 XF86Config 설정 예를 보자. XF86Config은 /etc, /etc/X11 또는 /usr/X11R6/lib/X11 디렉토리에 있다. <tscreen><verb> # 모듈 경로 지정(모듈이 /usr/X11R6/lib/Modules 이외의 디렉토리에 있을 때 지정) # Section "Files" ModulePath "/usr/X11R6/lib/modules" EndSection # Wacom 타블렛 모듈 로딩 # Section "Module" Load "xf86Wacom.so" EndSection # Xinput 섹션 설정 # Section "Xinput" # WacomStylus 서브섹션 설정 # # 1. 절대 모드(Wacom) # 2. 상대 모드(WacomRv) # 3. 절대 모드, AlwaysCore(WacomCore) # SubSection "WacomStylus" Port "/dev/ttyS0" DeviceName "Wacom" Mode Absolute Suppress 6 EndSubSection SubSection "WacomStylus" Port "/dev/ttyS0" DeviceName "WacomRv" Mode Relative EndSubSection SubSection "WacomStylus" Port "/dev/ttyS0" DeviceName "WacomCore" Mode Absolute TiltMode AlwaysCore EndSubSection # WacomEraser 서브섹션 설정 # # 1. 절대모드(Eraser) # 2. 절대모드, AlwaysCore(EraserCore) # SubSection "WacomEraser" Port "/dev/ttyS0" Mode Absolute EndSubSection SubSection "WacomEraser" Port "/dev/ttyS0" DeviceName "EraserCore" Mode Absolute AlwaysCore EndSubSection # WacomCursor 서브섹션 설정 # SubSection "WacomCursor" Port "/dev/ttyS0" EndSubSection EndSection </verb></tscreen> Wacom 타블렛 같은 확장 입력장치의 환경설정은 XInput Section에서 한다. Wacom 타블렛 관련 SubSection은 3가지가 있다. <itemize> <item><em> WacomStylus </em>: pen 또는 airbrush 조정 <item><em> WacomEraser </em>: pen 또는 airbrush의 지우개 버튼 조정 <item><em> WacomCursor </em>: Intuos 4D 마우스, graphire 마우스와 렌즈 커서(Lens cursor) 조정 </itemize> 3가지 SubSection에서 사용하는 옵션은 다음과 같다. <descrip> <tag><em>* Port "포트명" </em></tag> 타블렛이 연결된 시리얼 포트명을 지정한다. /dev/ttyS0은 COM1 포트이다. <tag><em>* DeviceName "디바이스명" </em></tag> 디바이스명을 지정한다. 이 디바이스명은 X Input 장치를 선택할 때 등 프로그램 에서 사용하게 된다. 지정하지 않으면 디바이스 유형(Stylus, Eraser, Cursor) 이 디폴트로 지정된다. <tag><em>* Mode "Absolute|Relative" </em></tag> 절대 좌표 또는 상대 좌표로 사용할 것인지 디바이스 모드를 지정한다. 이 모드는 X-window 사용 중에 xsetmode 로 변경할 수 있다. <tag><em>* AlwaysCore </em></tag> 포인터(마우스, Stylus, Eraser, 등)를 공유할 수 있도록 한다. 즉, 2개 이상의 포인터를 동시에 사용할 수 있다. 마우스와 타블렛을 동시에 사용하고 싶다면 반드시 지정하기 바란다. AlwaysCore를 지정한 SubSection의 장치와 마우스는 동시에 사용하게 된다. <tag><em>* HistorySize "숫자"</em></tag> 동작에 대한 버퍼 크기를 지정한다. 디폴트는 0이다. <tag><em>* TopX "숫자"</em></tag> 상단 왼쪽 끝의 X 좌표를 지정한다. <tag><em>* TopY "숫자"</em></tag> 상단 왼쪽 끝의 Y 좌표를 지정한다. <tag><em>* BottomX "숫자"</em></tag> 하단 오른쪽 끝의 X 좌표를 지정한다. <tag><em>* BottomY "숫자"</em></tag> 하단 오른쪽 끝의 Y 좌표를 지정한다. <tag><em>* DebugLevel "레벨"</em> ( XFree86 3.3.3에는 없음)</tag> 디버깅 정보의 레벨을 0에서 10까지 지정한다. 숫자가 높을수록 자세하게 로깅한다. <tag><em>* TiltMode</em></tag> 사용하고 있는 타블렛 시리즈가 기울기를 지원할 경우 이 옵션을 지정하면 기울기를 사용할 수 있다. 타블렛의 ROM 버전은 1.4 이상이어야 한다. 이 버전은 <ref id=startx name="XFree86 실행할 때"> 확인할 수 있다. </descrip> 자~~ 이제 앞에서 소개한 XF86Config 설정을 이해했는가? 위의 설정을 보면, <enum> <item> 마우스, <item> 절대 모드(Mode Absolute 옵션)의 펜 또는 에어브러쉬, <item> 절대 모드의 지우개 버튼 </enum> 을 동시(AlwaysCore 옵션)에 사용할 수 있음을 알 수 있다. 설정이 다 끝났다면 X-window를 실행해보자. 아~ 타블렛을 먼저 켠 상태에서 X-window을 실행하기 바란다. 그렇지 않으면 타블렛을 사용할 수 없음은 물론이고 X-window 첫 화면을 보기 위해 많은 인내심(?)과 지루함을 달랠만한 뭔가가 있어야 할 것이다. <label id=startx> <tscreen><verb> truefeel:~# startx ... (**) Adding extended device "SWITCH" (type: Switch) (**) Adding extended device "Wacom" (type: Wacom Stylus) (**) Adding extended device "WacomRv" (type: Wacom Stylus) (**) Adding extended device "WacomCore" (type: Wacom Stylus) (**) Adding extended device "STYLUS" (type: Wacom Stylus) (**) Adding extended device "ERASER" (type: Wacom Eraser) (**) Adding extended device "EraserCore" (type: Wacom Eraser) (**) Adding extended device "CURSOR" (type: Wacom Cursor) (--) Wacom tablet model : UD-0608-R00 V1.4-2 (--) Wacom IV tablet maximum X=10240 maximum Y=7680 X resolution=1270 Y resolution=1270 suppress=6 Tilt (--) Wacom tablet top X=0 top Y=0 bottom X=10240 bottom Y=7680 (--) Wacom tablet top X=0 top Y=0 bottom X=10240 bottom Y=7680 (--) Wacom tablet top X=0 top Y=0 bottom X=10240 bottom Y=7680 (--) Wacom tablet top X=0 top Y=0 bottom X=10240 bottom Y=7680 (--) Wacom tablet top X=0 top Y=0 bottom X=10240 bottom Y=7680 (--) Wacom tablet top X=0 top Y=0 bottom X=10240 bottom Y=7680 </verb></tscreen> 정상적으로 실행되면 X-window 실행할 때 위의 메시지를 볼 수 있다. <tt/(**) Adding/ 부분은 Wacom 타블렛의 확장 장치명이며, 그 다음 줄에 <tt/UD-0608-R00/ 모델명을 볼 수 있다. <tt/V1.4-2/은 뭘까? 바로 타블렛의 ROM 버전이다. 이 버전은 TileMode 를 사용가능한지 결정하는 중요한 요소이므로 잘 봐두기 바란다. <sect> X-window 실행 중에 설정 변경하기 <p> 이 장은 주 입력장치(core pointer)를 변경하는 방법과 버튼 맵핑하는 방법을 설명한다. <label id=xsetpointer> <sect1> 주 입력장치(core pointer) 변경하기 : xsetpointer <p> 다음과 같이 XF86Config의 Xinput Section에 AlwaysCore을 설정하지 않았다면 현재 상태에서는 마우스만 사용할 수 있을 것이다. 그렇다면 타블렛을 사용하기 위해서는 X-window을 재실행해야 하나? 그렇지는 않다. <tscreen><verb> Section "Xinput" SubSection "WacomStylus" Port "/dev/ttyS0" DeviceName "Wacom" Mode Absolute Suppress 6 EndSubSection SubSection "WacomEraser" Port "/dev/ttyS0" Mode Absolute EndSubSection ... EndSection </verb></tscreen> xsetpointer는 주 입력 장치를 바꿔주는 프로그램이다. <verb> xsetpointer < 장치명 > xsetpointer -l </verb> 먼저 사용 가능한 장치 목록을 보자. <tscreen><verb> xsetpointer -l "pointer" [XPointer] "keyboard" [XKeyboard] "SWITCH" [XExtensionDevice] "Wacom" [XExtensionDevice] "ERASER" [XExtensionDevice] "CURSOR" [XExtensionDevice] </verb></tscreen> pointer는 마우스, keyboard는 키보드, 나머지는 타블렛 장치들이다. 주 입력 장치를 타블렛으로 바꿔보자. 타블렛을 주 입력 장치로 바꾸면 마우스는 사용할 수 없게 된다. truefeel:~# xsetpointer wacom <sect1> 모드 변경하기 : xsetmode <p> 모드를 전환하는 xsetmode은 사용이 간단하므로 특별히 설명할 것이 없다. <verb> xsetmode <장치명> (ABSOLUTE|RELATIVE) </verb> <tscreen><verb> xsetmode wacom absolute </verb></tscreen> <sect1> 버튼 맵핑하기 : xmodmap <p> xmodmap은 키보드 및 포인터(마우스, 타블렛 등) 버튼 맵핑에 사용하는 유틸리티 이다. 키보드의 키 맵핑을 확인하거나 변경하는데 한 번씩은 사용해 봤을 것이다. 키맵핑은 이글의 주제와 어울리지 않으므로 포인터의 버튼 맵핑에 대해서만 설명한다. <verb> xmodmap -pp xmodmap -e "pointer = 논리버튼1 논리버튼2 논리버튼3 ..." </verb> xmodmap은 주 입력 장치(core pointer)로 지정된 장치의 버튼을 맵핑하므로 설정 전에 반드시 주 입력 장치를 테블렛 장치로 빠꿔야 한다. 버튼 맵핑을 확인해 보자. 물리적 버튼과 논리적 버튼이 같음을 알 수 있다. <tscreen><verb> truefeel:~# xsetpointer wacom truefeel:~# xmodmap -pp There are 4 pointer buttons defined. Physical Button Button Code 1 1 2 2 3 3 4 4 </verb></tscreen> 물리적 버튼 1은 논리적 버튼 2로, 물리적 버튼 2는 논리적 버튼 1로, 물리적 버튼 3은 논리적 버튼 3으로, 물리적 버튼 4은 논리적 버튼 4로 바꿔보자. <tscreen><verb> xmodmap -e "pointer = 2 1 3 4" </verb></tscreen> <sect1>XInput 장치의 테스트 및 설정 유틸리티 : xinput <p> Frederic Lepied가 만든 xinput은 Wacom 타블렛과 같은 XInput 장치를 테스트하고 설정하는 유틸리티다. xinput 유틸리티는 앞에서 설명한 xsetpointer, xsetmode, xmodmap의 기능을 모두 가지고 있다. xinput은 <url url="ftp://ftp.x.org/contrib/utilities/xinput-1.2.tar.gz"> 에서 구할 수 있다. 설치는 우선 tar로 푼 다음 Imakefile -> Makefile 생성(xmkmf)하고 2번의 make 과정을 거치면 된다. <tscreen><verb> truefeel:~# tar xvfz xinput-1.2.tar.gz xinput-1.2/ xinput-1.2/xinput.man xinput-1.2/Imakefile xinput-1.2/README xinput-1.2/ChangeLog xinput-1.2/COPYRIGHT ... truefeel:~# cd xinput-1.2 truefeel:~/xinput-1.2# xmkmf -a truefeel:~/xinput-1.2# make install truefeel:~/xinput-1.2# make install.man </verb></tscreen> 만들어진 xinput과 xinput 맨페이지는 각각 /usr/X11R6/bin, /usr/X11R6/man/man1에 설치된다. xinput 사용할 때 주의할 것은 장치명의 대소문자를 구분 한다는 것이다. 장치명은 XF86Config의 XInput 섹션에서 DeviceName 옵션으로 지정한다. <tscreen><verb> SubSection "WacomStylus" Port "/dev/ttyS0" DeviceName "Wacom" EndSubSection </verb></tscreen> 이제 xinput 기능을 상세하게 알아보자. <descrip> <tag><em>* 입력장치 목록 보기 : xinput list &lsqb 장치명 &rsqb</em></tag> 지정한 입력장치에 대한 상세한 정보를 보여준다. 장치명을 지정하지 않으면 모든 입력장치에 대한 정보를 출력한다. 상당히 자세한 정보를 보여주므로 가능하면 장치명을 지정하기 바란다. <verb> truefeel:~# xinput list Wacom "Wacom" id=3 [XExtensionDevice] Num_keys is 32 Min_keycode is 8 Max_keycode is 39 Num_buttons is 4 Num_axes is 5 Mode is Absolute Motion_buffer is 0 Axis 0 : Min_value is 0 Max_value is 10240 Resolution is 499999 Axis 1 : Min_value is 0 Max_value is 7680 Resolution is 499999 ... </verb> 단순히 입력 장치의 목록만을 확인하고 싶다면 앞서 배운 <ref id=xsetpointer name="xsetpointer -l">을 이용하거나 xinput 을 다음과 같이 이용해도 된다. <verb> xinput list|grep '^"' </verb> <tag><em>* 주 입력장치(core pointer) 바꾸기 : xinput set-pointer < 장치명 ></em></tag> 주 입력장치를 변경한다. <bf/xsetpointer < 장치명 >/ 과 같은 기능을 한다. <tag><em>* 절대좌표, 상대좌표 모드 바꾸기 : xinput set-mode < 장치명 > ABSOLUTE|RELATIVE</em></tag> 지정한 입력장치의 모드를 절대 또는 상대 모드로 바꾼다. <bf/xsetmode < 장치명 > ABSOLUTE|RELATIVE/ 과 같은 기능을 한다. <tag><em>* 버튼 맵핑하기 : xinput set-button-map < 장치명 > 논리버튼1 논리버튼2 ...</em></tag> 입력장치의 물리버튼을 지정한 순서대로 논리버튼으로 매핑시킨다. <verb> xinput set-button-map Wacom 2 1 3 4 </verb> <label id=query-state> <tag><em>* 입력장치 상태 확인하기 : xinput query-state < 장치명 ></em></tag> 입력장치의 상태를 확인한다. <verb> truefeel:~# xinput query-state Wacom 3 classes : KeyClass key[0]=up key[1]=up ... key[31]=up ButtonClass button[1]=up button[2]=up button[3]=up button[4]=up ValuatorClass Mode=Absolute Proximity=In valuator[0]=4389 valuator[1]=5728 valuator[2]=-128 valuator[3]=30 valuator[4]=-9 </verb> 위의 실행 결과는 키 코드 상태(KeyClass), 버튼 상태(ButtonClass), 축 상태(ValuatorClass) 등 3가지 상태를 제공한다. 32개의 키, 4개의 버튼이 동작하고 있으며 모드는 절대 모드(Mode=Absolute), 펜 또는 에어브러쉬가 입력받을 수 있는 거리(Proximity=In)에 있음을 알 수 있다. 축 상태가 나타내는 값의 의미는 다음과 같다. <enum> <item>valuator[0] : X좌표 <item>valuator[1] : Y좌표 <item>valuator[2] : 펜 또는 에어브러쉬가 누르는 압력. -128은 누르고 있지 않음. <item>valuator[3] : X방향 기울기. 음수 값은 왼쪽, 양수 값은 오른쪽으로 기울림. <item>valuator[4] : Y방향 기울기. 음수 값은 위쪽, 양수 값은 아래쪽으로 기울림. </enum> <tag><em>* 입력장치 테스트하기 : xinput test [ -proximity ] < 장치명 ></em></tag> 입력장치를 테스트하는 기능으로 장치를 통해 입력되는 모든 이벤트를 연속적으로 보여준다. 테스트를 끝내려면 Ctrl+C를 누른다. -proximity : 접근성까지 표시해준다. proximity in / proximity out <verb> truefeel:~# xinput test -proximity Wacom ... motion a[0]=4572 a[1]=5142 a[2]=-128 a[3]=30 a[4]=-12 motion a[0]=4563 a[1]=5200 a[2]=-128 a[3]=30 a[4]=-12 motion a[0]=4553 a[1]=5261 a[2]=-128 a[3]=30 a[4]=-14 button release 2 a[0]=4553 a[1]=5261 a[2]=0 a[3]=30 a[4]=-13 proximity out a[0]=4553 a[1]=5261 a[2]=-128 a[3]=30 a[4]=-14 motion a[0]=4571 a[1]=5259 a[2]=-128 a[3]=27 a[4]=-10 proximity out a[0]=4606 a[1]=5208 a[2]=-128 a[3]=29 a[4]=-11 proximity in a[0]=4606 a[1]=5208 a[2]=-128 a[3]=29 a[4]=-11 motion a[0]=6031 a[1]=4948 a[2]=-128 a[3]=-14 a[4]=13 motion a[0]=6085 a[1]=4996 a[2]=-128 a[3]=-15 a[4]=14 ... </verb> </descrip> <sect> The GIMP 에서 사용하기 <label id=gimp> <p> 포토샵 스타일의 막강한 그래픽 프로그램인 GIMP는 v1.1.X 부터 XInput을 지원한다. v1.0.x 버전이라면 패치를 통해서 사용 가능하지만 여기서는 GIMP v1.1.X 를 사용하는 것으로 가정한다. GIMP에서 XInput을 지원한다고 하더라도 한 가지 조건이 더 필요하다. GIMP 툴킷인 GTK+에서 XInput을 지원하도록 컴파일되어야 한다. 국내의 여러 배포판에 포함된 gtk+의 XInput 지원여부는 가지각색이다. 국내의 모든 배포판 제작자가 XInput을 지원하도록 만들어주길 바랄 뿐이다. <itemize> <item> 알짜리눅스 6.1 : 지원하지 않음 <item> 알짜리눅스 6.2 BETA : 지원함 <item> 파워리눅스 R2 : 지원하지 않음 <item> 미지리눅스 1.1 : 지원함 <item> 앨릭스리눅스 6.2 BETA : 지원하지 않음 <item> 터보리눅스 Workstation 4.0.5 : 지원하지 않음 <item> qLinux 1.0 : 지원하지 않음 </itemize> 지원하지 않는 배포판을 쓰는 리눅서는 위의 목록을 보고 알짜나 미지리눅스의 gtk+-1.2.X, gtk+-devel-1.2.X를 설치하면 가장 쉽고 빠른 해결책이 될 것이다. 여기서는 직접 수작업(?)을 통해 설치하는 2가지 방법을 소개한다. <sect1> gtk+ 소스에서 XInput 지원하도록 컴파일 하는 방법 <p> XInput을 지원하도록 컴파일하는 간단한 순서만 소개한다. <url url="ftp://ftp.gtk.org/pub/gtk/v1.2/"> 에서 최신 gtk+ 소스를 가져온다. configure 스크립트를 실행할 때 --with-xinput=xfree 옵션을 넣어서 실행한 후 인스톨 한다. <tscreen><verb> tar xvfz gtk+-1.2.7.tar.gz cd gtk+-1.2.7 ./configure --prefix=/usr --sysconfdir=/etc --with-xinput=xfree make make install </verb></tscreen> <sect1>배포판의 SRPMS 수정을 통해 gtk+를 설치하는 방법 <p> 직접 gtk+ 소스를 통해 설치하는 것보다는 한글 패치 등이 적용되고 RPM으로 설치가능한 SRPMS를 수정하는 것이 더 좋을 것으로 생각된다. RPM에 대한 것은 <url url="http://kldp.org/" name="리눅스 한글 문서 프로젝트">를 가보기 바란다. <enum> <item>각 배포판의 FTP 사이트에서 <bf/gtk+-1.2.X-YZZ.src.rpm/과 <bf/gtk+-devel-1.2.X-YZZ.rpm/을 받아온다. <item>gtk+-devel RPM은 그대로 설치하면 되고 gtk+는 소스를 설치한 후에 <bf>/usr/src/redhat/SPECS/gtk+.spec</bf> 파일에서 %build 부분을 수정한다. <verb> %build ... CFLAGS="$RPM_OPT_FLAGS" ./configure $MYARCH --prefix=%prefix \ --sysconfdir=/etc --with-xinput=xfree make </verb> configure에 --with-xinput=xfree만 추가했다. <item><bf/rpm -ba gtk+.spec/ 로 RPM 파일을 생성한다. <item>/usr/src/redhat/RPMS/i386에 생성된 RPM 파일을 <bf>rpm -ivh gtk+-1.2.X-YZZ.i386.rpm</bf>로 설치한다. </enum> <sect1>GIMP 설정 <p> GIMP를 실행한 후 파일 -> 대화상자 -> 입력장치(영문 : File -> Dialogs -> Input Devices)를 클릭한다. 만약 <bf/입력 장치 없음/ (영문 : <bf/No Input Devices/ )이라는 메시지를 봤다면 XInput을 지원하지 않는 gtk+가 설치된 것이니 <ref id=gimp name="앞의 gtk+ 설치 과정">을 확인하기 바란다. 정상적이라면 <bf/장치/ 선택막대와 <bf/모드/ 선택막대, 그리고 <bf/축/ 탭, <bf/글쇠/ 탭을 볼 수 있다. <figure> <eps file="gimp_xinput.eps"> <img src="gimp_xinput.gif"> <caption><label id="gimp_xinput">GIMP에서 입력장치 설정 화면</caption> </figure> <descrip> <tag>* 장치 선택막대</tag> 장치는 xsetpointer -l 또는 xinput list명령에서 확인했던 입력장치로 Wacom 타블렛을 지정하면 된다. <tag>* 모드 선택막대</tag> 모드에는 3종류가 있다. <itemize> <item><bf/사용 안함/ : 지정한 입력장치를 사용하지 않는다. <item><bf/화면/ : 입력장치의 X, Y 좌표를 전체 화면과 매칭하여 입력받는다. <item><bf/창/ : 입력장치의 X, Y 좌표를 그림창 화면과 매칭하여 입력받는다. </itemize> <tag>* 축 탭</tag> 5개 또는 6개의 축을 지정한다. 이 값을 바꿀 필요는 없다. 만약 X축을 2로, Y축을 1로 변경한다면 180° 회전한 상태로 입력이 될 것이다. <tag>* 글쇠 탭</tag> 매크로 키를 할당하는 탭이다. ArtPad 시리즈, Ultrapad 시리즈는 매크로 키를 사용할 수 있지만 Intuos 시리즈는 사용할 수 없다. 필자는 총 <ref id=query-state name="32개의 매크로 키">를 입력 받을 수 있다. 1번 키에 Ctrl+N(새 그림), 2번 키에 Ctrl+O(열기)를 넣어본 후 타블렛의 1번 매크로 키를 클릭하면 새 그림을 만드는 창이 열리게 된다. </descrip> <sect>콘솔에서 사용하기 <p> gpm(general purpose mouse) 데몬은 콘솔에서 마우스, 타블렛, 조이스틱 등을 사용하여 자르기 & 붙이기를 할 수 있는 마우스 서버다. 최신 gpm 은 <url url="ftp://ftp.prosa.it/pub/gpm"> 에서 얻을 수 있다. 현재(2000년 5월 초) 최신 버전은 1.19.2, 안정버전은 1.18.1 이다. 필자는 여러 gpm 버전에서 타블렛을 사용해보려고 했지만 동작하지 않았다. 하지만 이 글에서는 하우트 문서 등을 통해 얻은 내용을 정리해보겠다. gpm 버전에 따라 지원하는 Wacom 타블렛 시리즈가 다르며 옵션 또한 다르다. 따라서 자신의 타블렛 시리즈에 맞는 gpm 버전을 사용해야 한다. <itemize> <item> v1.18.1 이전 : 옛 ArtPad 시리즈 <tscreen><verb> gpm -k;gpm -t wacom -m /dev/ttyS0 </verb></tscreen> <item> v1.18.1 부터 : Graphire 시리즈(펜, 마우스) <tscreen><verb> gpm -k;gpm -t wacom -o relative -m /dev/ttyS0 (상대 좌표 모드) gpm -k;gpm -t wacom -o absolute -m /dev/ttyS0 (절대 좌표 모드) </verb></tscreen> </itemize> gpm의 버전과 지원하는 입력장치 목록을 확인해보자. <tscreen><verb> ~# gpm -t help gpm-Linux 1.17.5, $Date: 1999/01/03 21:02:51 $ Available mouse types are: name synonym description ps2 PS/2 Busmice of the ps/2 series. Most busmice, actually. ... wacom Wacom tablet genitizer "Genitizer" tablet, in relative mode. ... js Joystick Joystick mouse emulation </verb></tscreen> <sect1>콘솔에서 마우스와 타블렛 사용 전환 쉽게하기 <p> 마우스와 타블렛을 함께 사용하는 경우에 마우스에서 타블렛으로, 또는 타블렛에서 마우스로 전환하는 것이 불편할 것이다. loadkeys를 사용하면 쉽게 전환이 가능하다. F11을 누르면 마우스를 F12을 누르면 타블렛을 사용하도록 해보자. 물론 이 F11, F12는 콘솔에서만 적용된다. <tscreen><verb> #!/bin/sh loadkeys << END keycode 87 = F11 keycode 88 = F12 string F11 = "gpm -k;/etc/rc.d/init.d/gpm start^M" string F12 = "gpm -k;gpm -t wacom -m /dev/ttyS0^M" END </verb></tscreen> 쉘스크립트를 리눅스 부팅할 때 실행되도록 한다. 스크립트 중 ^M은 Ctrl+V를 누른 다음 Enter 키를 눌러야 한다. loadkeys에 대한 것은 <url url="http://kldp.org/" name="리눅스 한글 문서 프로젝트">에서 <bf/키보드와 콘솔 하우트/를 읽어보기 바란다. <sect1>gpm와 XFree86를 동시할 때 문제 <p> gpm에서 타블렛을 사용하도록 했다면, XFree86에서 타블렛을 사용할 수 없으며, XFree86은 다음과 같은 메시지를 뿌릴 것이다. <tscreen><verb> (--) Wacom tablet model : UD-0608-R00 V1.4-2 Wacom unable to read first byte of request '~R' answer after 3 tries Wacom unable to read first byte of request '~#' answer after 3 tries </verb></tscreen> 이를 해결하는 방법은 XFree86 시작 전에 gpm 데몬을 죽이거나(무서운 표현인가요?) gpm이 마우스를 사용하도록 바꾸면 된다. <tscreen><verb> gpm -k;/etc/rc.d/init.d/gpm start; startx 또는 gpm -k; startx </verb></tscreen> <sect>참고 자료 <p> <itemize> <item><bf/Wacom 타블렛 제품 정보/ : intuos 시리즈, graphire 시리즈, PL300/PL400 등의 제품 정보를 제공한다. - <url url="http://www.wacom.com/productinfo/index.html" name="http://www.wacom.com/productinfo/index.html"> <item><bf/Wacom 타블렛 하우트 문서/ : Wacom 타블렛을 XFree86, gpm, GIMP 등에서 사용하는 방법을 설명하고, XFree86 FAQ, gpm FAQ도 제공한다. 타블렛을 쓰기위한 필수 문서이다. - <url url="http://www.linuxdoc.org/HOWTO/Wacom-Tablet-HOWTO.html" name="http://www.linuxdoc.org/HOWTO/Wacom-Tablet-HOWTO.html"> <item><bf/XInput 하우트 문서/ : XFree86에서 표준 입력장치인 마우스, 키보드를 확장하여 타블렛, 터치스크린, 조이스틱을 쓸 수 있도록 지원하는 XInput 확장에 대해 소개한다. - <url url="http://www.gtk.org/~otaylor/xinput/howto/index.html" name="http://www.gtk.org/~otaylor/xinput/howto/index.html"> <item><bf/XFree86 용 Wacom XInput 드라이버/ : Wacom XInput 드라이버의 변화상을 한 눈에 볼 수 있는 곳이다. 드라이버 제작자인 Frederic Lepied의 XF86Config 의 설정도 볼 수 있다. - <url url="http://lepied.com/xfree86/" name="http://lepied.com/xfree86/"> <item><bf/XFree86에서 XInput 에 대한 정보/ : <url url="http://www.xfree86.org/3.3.6/xinput.html" name="http://www.xfree86.org/3.3.6/xinput.html"> <item><bf/XF86Config 맨페이지/ : XInput Section 설정 방법을 설명한다. <item><bf/XFree86 README 파일/ (<file>/usr/X11R6/lib/X11/doc/README</>) </itemize> </article>