v0.1, 2000년 4월 28일 부터 5월 초
리눅서들의 꿈 중 하나가 PC에서 사용할 수 있다는 모든 하드웨어를 리눅스에서도
사용할 수 있기를 바라는 것이다. 어느 하드웨어를 구입해야 제대로 쓸 수 있게
되는지 고민하지 않게 될기 바라며 타블렛 중에서는 가장 많이 사용되는 것으로
알려진 Wacom 타블렛 사용법을 소개한다.
잘 못된 부분, 오자, 탈자가 있거나 도움을 줄 분은
truefeel@sarang.net 또는
truefeel@kisc.net 으로 메일을 보내주기 바란다.
XFree86은 모듈 형식으로 조이스틱, 터치스크린 등을 포함한 AceCad, Wacom 타블렛
드라이버를 제공하고 있다. 이들 드라이버는 Frederic Lepied가 만들었으며,
Wacom 타블렛용 드라이버는 xf86Wacom.so 이다. 드라이버는 XFree86 설정 파일인
XF86Config에서 Module Section 을 통해 로딩하여 사용하게 된다.
XFree86에서 지원하는 Wacom 타블렛은 다음과 같다.
ArtZ II 시리즈
ArtPad II
PL300(LCD 액정 펜 타블렛)
Pen Partner - XFree86 3.3.6 까지 동작, 하지만 XFree86 4.0에서 성공했다는 글은 아직 본적이 없다.
Graphire
Intuos 시리즈
SD와 HD 시리즈 - 표준 XFree86 에서는 지원하지 않는다.
XFree86 드라이버는 /usr/X11R6/lib/modules에 있다.
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*
위와 같이 Wacom 타블렛, AceCad 타블렛, SummaSketch 타블렛 등의 타블렛과
조이스틱, Elographics 터치스크린, MicroTouch 터치스크린을 XFree86에서는
지원한다.
Wacom 타블렛을 사용하기 위한 XF86Config 설정 예를 보자. XF86Config은
/etc, /etc/X11 또는 /usr/X11R6/lib/X11 디렉토리에 있다.
# 모듈 경로 지정(모듈이 /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
Wacom 타블렛 같은 확장 입력장치의 환경설정은 XInput Section에서 한다. Wacom
타블렛 관련 SubSection은 3가지가 있다.
WacomStylus : pen 또는 airbrush 조정
WacomEraser : pen 또는 airbrush의 지우개 버튼 조정
WacomCursor : Intuos 4D 마우스, graphire 마우스와 렌즈 커서(Lens cursor) 조정
3가지 SubSection에서 사용하는 옵션은 다음과 같다.
* Port "포트명"
타블렛이 연결된 시리얼 포트명을 지정한다. /dev/ttyS0은 COM1 포트이다.
* DeviceName "디바이스명"
디바이스명을 지정한다. 이 디바이스명은 X Input 장치를 선택할 때 등 프로그램
에서 사용하게 된다. 지정하지 않으면 디바이스 유형(Stylus, Eraser, Cursor)
이 디폴트로 지정된다.
* Mode "Absolute|Relative"
절대 좌표 또는 상대 좌표로 사용할 것인지 디바이스 모드를 지정한다.
이 모드는 X-window 사용 중에 xsetmode 로 변경할 수 있다.
* AlwaysCore
포인터(마우스, Stylus, Eraser, 등)를 공유할 수 있도록 한다. 즉, 2개 이상의
포인터를 동시에 사용할 수 있다. 마우스와 타블렛을 동시에 사용하고 싶다면
반드시 지정하기 바란다. AlwaysCore를 지정한 SubSection의 장치와 마우스는
동시에 사용하게 된다.
* HistorySize "숫자"
동작에 대한 버퍼 크기를 지정한다. 디폴트는 0이다.
* TopX "숫자"
상단 왼쪽 끝의 X 좌표를 지정한다.
* TopY "숫자"
상단 왼쪽 끝의 Y 좌표를 지정한다.
* BottomX "숫자"
하단 오른쪽 끝의 X 좌표를 지정한다.
* BottomY "숫자"
하단 오른쪽 끝의 Y 좌표를 지정한다.
* DebugLevel "레벨" ( XFree86 3.3.3에는 없음)
디버깅 정보의 레벨을 0에서 10까지 지정한다. 숫자가 높을수록 자세하게
로깅한다.
* TiltMode
사용하고 있는 타블렛 시리즈가 기울기를 지원할 경우 이 옵션을 지정하면 기울기를 사용할 수 있다. 타블렛의 ROM 버전은 1.4 이상이어야 한다. 이 버전은
XFree86 실행할 때 확인할 수 있다.
자 이제 앞에서 소개한 XF86Config 설정을 이해했는가? 위의 설정을 보면,
마우스,
절대 모드(Mode Absolute 옵션)의 펜 또는 에어브러쉬,
절대 모드의 지우개 버튼
을 동시(AlwaysCore 옵션)에 사용할 수 있음을 알 수 있다.
설정이 다 끝났다면 X-window를 실행해보자. 아 타블렛을 먼저 켠 상태에서
X-window을 실행하기 바란다. 그렇지 않으면 타블렛을 사용할 수 없음은 물론이고
X-window 첫 화면을 보기 위해 많은 인내심(?)과 지루함을 달랠만한 뭔가가
있어야 할 것이다.
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
정상적으로 실행되면 X-window 실행할 때 위의 메시지를 볼 수 있다. (**) Adding 부분은 Wacom 타블렛의 확장 장치명이며, 그 다음 줄에 UD-0608-R00 모델명을 볼 수 있다. V1.4-2은 뭘까? 바로 타블렛의 ROM 버전이다. 이 버전은 TileMode 를 사용가능한지 결정하는 중요한 요소이므로 잘 봐두기 바란다.
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
만들어진 xinput과 xinput 맨페이지는 각각 /usr/X11R6/bin, /usr/X11R6/man/man1에 설치된다.
xinput 사용할 때 주의할 것은 장치명의 대소문자를 구분 한다는 것이다. 장치명은
XF86Config의 XInput 섹션에서 DeviceName 옵션으로 지정한다.
SubSection "WacomStylus"
Port "/dev/ttyS0"
DeviceName "Wacom"
EndSubSection
이제 xinput 기능을 상세하게 알아보자.
* 입력장치 목록 보기 : xinput list [ 장치명 ]
지정한 입력장치에 대한 상세한 정보를 보여준다. 장치명을 지정하지 않으면 모든
입력장치에 대한 정보를 출력한다. 상당히 자세한 정보를 보여주므로 가능하면
장치명을 지정하기 바란다.
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
...
단순히 입력 장치의 목록만을 확인하고 싶다면 앞서 배운
xsetpointer -l을 이용하거나 xinput 을 다음과 같이 이용해도 된다.
위의 실행 결과는 키 코드 상태(KeyClass), 버튼 상태(ButtonClass),
축 상태(ValuatorClass) 등 3가지 상태를 제공한다.
32개의 키, 4개의 버튼이 동작하고 있으며 모드는 절대 모드(Mode=Absolute), 펜 또는
에어브러쉬가 입력받을 수 있는 거리(Proximity=In)에 있음을 알 수 있다. 축 상태가 나타내는 값의 의미는 다음과 같다.
valuator[0] : X좌표
valuator[1] : Y좌표
valuator[2] : 펜 또는 에어브러쉬가 누르는 압력. -128은 누르고 있지 않음.
valuator[3] : X방향 기울기. 음수 값은 왼쪽, 양수 값은 오른쪽으로 기울림.
valuator[4] : Y방향 기울기. 음수 값은 위쪽, 양수 값은 아래쪽으로 기울림.
* 입력장치 테스트하기 : xinput test [ -proximity ] < 장치명 >
입력장치를 테스트하는 기능으로 장치를 통해 입력되는 모든 이벤트를 연속적으로 보여준다. 테스트를 끝내려면 Ctrl+C를 누른다.
-proximity : 접근성까지 표시해준다. proximity in / proximity out
포토샵 스타일의 막강한 그래픽 프로그램인 GIMP는 v1.1.X 부터 XInput을 지원한다. v1.0.x 버전이라면 패치를 통해서 사용 가능하지만 여기서는 GIMP v1.1.X 를 사용하는 것으로 가정한다.
GIMP에서 XInput을 지원한다고 하더라도 한 가지 조건이 더 필요하다. GIMP 툴킷인 GTK+에서 XInput을 지원하도록 컴파일되어야 한다. 국내의 여러 배포판에 포함된 gtk+의 XInput 지원여부는 가지각색이다. 국내의 모든 배포판 제작자가 XInput을 지원하도록 만들어주길 바랄 뿐이다.
알짜리눅스 6.1 : 지원하지 않음
알짜리눅스 6.2 BETA : 지원함
파워리눅스 R2 : 지원하지 않음
미지리눅스 1.1 : 지원함
앨릭스리눅스 6.2 BETA : 지원하지 않음
터보리눅스 Workstation 4.0.5 : 지원하지 않음
qLinux 1.0 : 지원하지 않음
지원하지 않는 배포판을 쓰는 리눅서는 위의 목록을 보고 알짜나 미지리눅스의 gtk+-1.2.X, gtk+-devel-1.2.X를 설치하면 가장 쉽고 빠른 해결책이 될 것이다. 여기서는 직접 수작업(?)을 통해 설치하는 2가지 방법을 소개한다.
GIMP를 실행한 후 파일 -> 대화상자 -> 입력장치(영문 : File -> Dialogs -> Input Devices)를 클릭한다. 만약 입력 장치 없음 (영문 : No Input Devices )이라는 메시지를 봤다면 XInput을 지원하지 않는 gtk+가 설치된 것이니
앞의 gtk+ 설치 과정을 확인하기 바란다. 정상적이라면 장치 선택막대와 모드 선택막대, 그리고 축 탭, 글쇠 탭을 볼 수 있다.
GIMP에서 입력장치 설정 화면
* 장치 선택막대
장치는 xsetpointer -l 또는 xinput list명령에서 확인했던 입력장치로 Wacom 타블렛을 지정하면 된다.
* 모드 선택막대
모드에는 3종류가 있다.
사용 안함 : 지정한 입력장치를 사용하지 않는다.
화면 : 입력장치의 X, Y 좌표를 전체 화면과 매칭하여 입력받는다.
창 : 입력장치의 X, Y 좌표를 그림창 화면과 매칭하여 입력받는다.
* 축 탭
5개 또는 6개의 축을 지정한다. 이 값을 바꿀 필요는 없다. 만약 X축을 2로, Y축을 1로 변경한다면 180° 회전한 상태로 입력이 될 것이다.
* 글쇠 탭
매크로 키를 할당하는 탭이다. ArtPad 시리즈, Ultrapad 시리즈는 매크로 키를 사용할 수 있지만 Intuos 시리즈는 사용할 수 없다. 필자는 총
32개의 매크로 키를 입력 받을 수 있다. 1번 키에 Ctrl+N(새 그림), 2번 키에 Ctrl+O(열기)를 넣어본 후 타블렛의 1번 매크로 키를 클릭하면 새 그림을 만드는 창이 열리게 된다.
gpm(general purpose mouse) 데몬은 콘솔에서 마우스, 타블렛, 조이스틱 등을 사용하여 자르기 & 붙이기를 할 수 있는 마우스 서버다. 최신 gpm 은
ftp://ftp.prosa.it/pub/gpm 에서 얻을 수 있다. 현재(2000년 5월 초) 최신 버전은 1.19.2, 안정버전은 1.18.1 이다.
필자는 여러 gpm 버전에서 타블렛을 사용해보려고 했지만 동작하지 않았다. 하지만 이 글에서는 하우트 문서 등을 통해 얻은 내용을 정리해보겠다.
gpm 버전에 따라 지원하는 Wacom 타블렛 시리즈가 다르며 옵션 또한 다르다. 따라서 자신의 타블렛 시리즈에 맞는 gpm 버전을 사용해야 한다.
gpm에서 타블렛을 사용하도록 했다면, XFree86에서 타블렛을 사용할 수 없으며, XFree86은 다음과 같은 메시지를 뿌릴 것이다.
(--) 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
이를 해결하는 방법은 XFree86 시작 전에 gpm 데몬을 죽이거나(무서운 표현인가요?) gpm이 마우스를 사용하도록 바꾸면 된다.
gpm -k;/etc/rc.d/init.d/gpm start; startx 또는
gpm -k; startx
XFree86 용 Wacom XInput 드라이버 : Wacom XInput 드라이버의 변화상을 한 눈에 볼 수 있는 곳이다. 드라이버 제작자인 Frederic Lepied의 XF86Config 의 설정도 볼 수 있다. -
http://lepied.com/xfree86/