· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Wacom-KLDP

<!-- 이 문서는 Wacom 타블렛(Tablet)을 사용하는 방법을 적은 글입니다.
-->

<!doctype linuxdoc system>

<article>

<title>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: 2003/08/10 02:52:29 $
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>



ID
Password
Join
People who take cat naps don't usually sleep in a cat's cradle.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0077 sec