· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/XFree86-HOWTO

<!-- This is the Linux XFree86 HOWTO, SGML source -- >
<!-- Eric S. Raymond, esr@snark.thyrsus.com -- >

<!doctype linuxdoc system>

<article>

<title>The Linux XFree86 HOWTO
<author>by Eric S. Raymond
<date>v5.12, 12 May 1999

<trans>
번역: <htmlurl url="mailto:dyoverdx@hitel.net" name="조일환">,
<abstract>
이 글에서는 리눅스용 X 윈도우 시스템 (X11R6)의 XFree86 버전 3.3을 어떻게
구할 수 있는지, 어떻게 설치하고 여러가지 설정을 마칠 수 있는지 설명한다.
이 글은 시스템에 XFree86을 설치하는 단계별 가이드가 될 것이다.
</abstract>

<toc>

<sect>소개

<p>
X 윈도우 시스템은 유닉스 시스템을 위한 크고 강력한 그래픽 환경이다 (혹자는
필요 이상으로 크고 복잡하다고 말할 수도 있겠다). 원래의 X 윈도우 시스템
코드는 MIT에서 개발되었는데 그 때부터 유닉스 플랫폼의 표준으로
상업화되었다. 현재 전세계의 거의 모든 유닉스 워크스테이션에서는 조금씩
변형된 형태의 X 윈도우 시스템을 운영하고 있다.

자유롭게 배포할 수 있는 80386/80486/펜티엄 유닉스 시스템용 X 윈도우 시스템
버전 11, 릴리즈 6 (X11R6)은 David Wexelblat <htmlurl url="mailto:dwex@XFree86.org"
name="<dwex@XFree86.org>">가 이끄는 프로그래머 팀에 의해 개발된 것이다.
이것은 XFree86이라고 불리우며 리눅스를 포함해서 System V/386, 386BSD 그 외
다른 x86 유닉스에서 쓸 수 있고 모든 이진파일, 지원파일, 라이브러리, 툴을
포함하고 있다.

XFree86에 대한 자세한 정보는 XFree86 웹사이트인
<url url="http://www.XFree86.org">에서 구하면 된다.

이 글에서 리눅스용 XFree86을 어떻게 설치하고 설정할 것인지 단계적으로
자세히 설명하겠지만 일부 세세한 사항은 XFree86과 함께 배포된 문서를
읽어보고 사용자가 직접 해야만 할 것이다 (이 문서에 대해서는 아래에서
설명한다). 또한 X 윈도우 시스템을 사용한다든지 최적화하는 문제는 이 글의
수준을 훨씬 뛰어넘는 일이므로 그러한 것이 필요하다면 X 윈도우 시스템
사용법을 다룬 다른 책을 참고하면 된다.

<sect1>정보를 얻을 수 있는 곳
<p>
리눅스에 대해 들어본 적이 없는 경우 기본 지식을 얻기에 가장 좋은 곳이
<url url="http://metalab.unc.edu/LDP">에 있는 리눅스 문서 프로젝트
홈페이지다.
<url url="http://metalab.unc.edu/LDP/HOWTO/XFree86-HOWTO.html"> 같은
본 문서의 최신 버전을 여기서 구할 수 있다.

<sect1>이 문서의 최신 버전

<p>
리눅스 XFree86 HOWTO 새 버전이 <htmlurl url="news:comp.os.linux.help"
name="comp.os.linux.help">와 <htmlurl url="news:comp.os.linux.announce">
와 <url url="news:news.answers" name="news.answers">에 주기적으로 올려질
것이며 LDP 홈페이지와 여러 리눅스 웹 사이트와 FTP 사이트에도 업로드될
예정이다.

<url url="http://metalab.unc.edu/LDP/HOWTO/XFree86-HOWTO.html">에 접속하면
언제든지 최신 버전을 볼 수 있다.

<sect1>의견이나 고칠 점이 있으면...
<p>
질문이나 의견이 있으면 언제든지 Eric S. Raymond에게 <htmlurl
url="mailto:esr@thyrsus.com" name="esr@thyrsus.com">로 메일을 보내면
된다. 제안이나 비평도 좋으며, 혹시 잘못된 부분이 있을 경우 알려주면 다음
버전에서 수정하도록 하겠다.

특정 비디오 카드나 모니터에서 어떻게 X 를 띄울 수 있는가 등등의 질문은
하지 말기 바란다. 보통의 일반적인 설치에 있어서  새로운 대화식 설치
프로그램으로 손쉽고 빠르게 설치하는 법을 설명하는 것이 이 글의 목적이다.
설치시 문제가 있을 경우엔 <url
url="http://metalab.unc.edu/LDP/HOWTO/XFree86-Video-Timings-HOWTO.html">
같은 XFree86 Video Timings HOWTO를 보면 된다 (이것은 XFree86의
Videomodes.doc 파일의 최신 HTML 버전이다). 내가 아는 한 설치문제에 대한
모든 것을 담고 있는 문서로서 만약 여기에 나와있지 않으면 나로서도 해결
방법이 없다.

<sect>하드웨어 요구사양
<p>

현재 XFree86 3.3.3은 다음의 비디오 칩셋을 지원한다. 비디오
카드에 사용된 칩셋명은 비디오 카드 구입시 동봉된 설명서에 나와 있을
것이다. 새로 비디오 카드를 구입하거나 비디오 카드가 이미 장착되어 있는
컴퓨터를 새로 구입하는 경우라면 정확한 제조업체명과 모델명, 칩셋명을
구입처에 문의한다. 대개의 구입처에서는 필요하면 제조업체에 문의해서라도
알려줄 것이다. 보통 제조업체 측에서는 그냥 표준 SVGA 카드라고 하면서
당연히 작동에 이상없을 것이라는 식으로 말하기도 하는데 이럴 경우엔
리눅스와 XFree86을 쓰려고 한다는 점을 밝히고 지원하지 않는 카드가 있으므로
자세한 정보가 필요하다는 점을 설명해야 한다.

XFree86 배포판에 포함된 <tt>SuperProbe</tt> 프로그램을 이용해도 비디오
카드 칩셋을 알아낼 수 있는데 이것은 아래에서 자세히 설명하겠다.

<descrip>
<tag>Ark Logic</tag>ARK1000PV, ARK1000VL, ARK2000PV, ARK2000MT
<p>
<tag>Alliance</tag>AP6422, AT24
<p>
<tag>ATI </tag>18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6,
68800AX, 68800LX, 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
264CT, 264ET, 264VT, 264GT, 264VT-B, 264VT3, 264GT-B, 264GT3
(this list includes the Mach8, Mach32, Mach64, 3D Rage, 3D Rage II and
3D Rage Pro)
<p>
<tag>Avance Logic </tag>ALG2101, ALG2228, ALG2301, ALG2302, ALG2308,
ALG2401
<p>
<tag>Chips & Technologies </tag>65520, 65525, 65530, 65535, 65540, 65545, 65546, 65548, 65550,
65554, 65555, 68554, 69000, 64200, 64300
<p>
<tag>Cirrus Logic </tag>CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428,
CLGD5429, CLGD5430, CLGD5434, CLGD5436, CLGD5440, CLGD5446, CLGD5462,
CLGD5464, CLGD5465, CLGD5480, CLGD6205, CLGD6215,
CLGD6225, CLGD6235, CLGD6410, CLGD6412, CLGD6420,
CLGD6440, CLGD7541(*), CLGD7543(*), CLGD7548(*), CLGD7555(*)
<p>
<tag>Cyrix</tag>MediaGX, MediaGXm
<p>
<tag>Compaq </tag>AVGA
<p>
<tag>Digital Equipment Corporation </tag>TGA
<p>
<tag>Epson</tag>SPC8110
<p>
<tag>Genoa </tag>GVGA
<p>
<tag>IBM </tag>8514/A (and true clones), XGA-2
<p>
<tag>IIT </tag>AGX-014, AGX-015, AGX-016
<p>
<tag>Matrox</tag>MGA2064W (Millennium), MGA1064SG (Mystique and Mystique 220),
MGA2164W (Millennium II PCI and AGP), G100, G200
<p>
<tag>MX </tag>MX68000(*), MX680010(*)
<p>
<tag>NCR </tag>77C22(*), 77C22E(*), 77C22E+(*)
<p>
<tag>NeoMagic</tag>2200, 2160, 2097, 2093, 2090, 2070
<p>
<tag>Number Nine</tag>I128 (series I and II), Revolution 3D (T2R)
<p>
<tag>NVidia/SGS Thomson </tag>NV1, STG2000, RIVA128, Riva TNT
<p>
<tag>OAK </tag>OTI067, OTI077, OTI087
<p>
<tag>RealTek</tag>RTG3106(*)
<p>
<tag>Rendition</tag>V1000, V2x00
<p>
<tag>S3 </tag>86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964,
86C732, 86C764, 86C765, 86C767, 86C775, 86C785, 86C868, 86C968,
86C325, 86C357, 86C375, 86C375, 86C385, 86C988, 86CM65, 86C260
<p>
<tag>SiS</tag>86C201, 86C202, 86C205, 86C215, 86C225, 5597, 5598, 6326
<p>
<tag>3DLabs</tag>GLINT 500TX, GLINT MX, Permedia, Permedia 2, Permedia 2v
<p>
<tag>Tseng </tag>ET3000, ET4000AX, ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000, ET6100
<p>
<tag>Trident </tag>TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000,
TVGA9000i, TVGA9100B, TVGA9200CXR, Cyber9320(*), TVGA9400CXi,
TVGA9420, TGUI9420DGi, TGUI9430DGi, TGUI9440AGi, TGUI9660XGi,
TGUI9680, ProVidia 9682, ProVidia 9685(*), Cyber 9382,
Cyber 9385, Cyber 9388, 3DImage975, 3DImage985, Cyber 9397,
Cyber 9520
<p>
<tag>Video 7/Headland Technologies </tag>HT216-32(*)
<p>
<tag>Weitek </tag>P9000, P9100
<p>
<tag>Western Digital/Paradise </tag>PVGA1
<p>
<tag>Western Digital </tag>WD90C00, WD90C10, WD90C11, WD90C24, WD90C24A, WD90C30, WD90C31,
WD90C33
</descrip>

(*) 표시가 있는 칩셋은 제한적으로 지원되거나 지속적인 드라이버 지원이
이루어지지 않는 것들이다.

위에 나열된 카드는 모두 256 컬러를 지원하고, 어떤 것들은 모노와 16 컬러
모드가 지원되며 어떤 것들은 더 높은 컬러를 지원한다.

모노크롬 서버는 단일 뱅크의 64k 비디오 메모리를 사용하는 일반적인 VGA
카드와 허큘리스 모노크롬 카드, 현대 HGC1280, Sigma LaserView, Visa와
Apollo 모노크롬 카드를 지원한다.

VGA16 서버는 1600x1200까지의 가상 디스플레이가 가능한 ET4000, Trident,
ATI, NCR, OAK and Cirrus 6420 칩셋의 메모리 뱅킹을 지원한다. (1MB 비디오
메모리 필요) 다른 칩셋의 경우 대략 800x600 까지 지원된다.

지원되는 카드에 대한 최신 리스트는
<url url="http://www.xfree86.org/3.3.3/README3.html"
name="http://www.xfree86.org/3.3.3/README3.html">

이들 칩셋을 사용하는 비디오 카드는 VLB와 PCI를 포함, 모든 버스 타입에서
지원된다.

XFree86 개발자가 직면한 문제중의 하나는 일부 비디오 카드 제조업체에서 카드
클럭 주파수를 결정하는 데에 비표준 방식을 이용한다는 것이다. 이들중 일부는
프로그래밍에 필요한 카드 사양을 공개하지 않거나, 카드 정보 공개에 있어서
개발자들에게 비공개 원칙에 대한 동의를 요구하기도 한다.
이것은 분명 XFree86의 자유로운 배포를 제한하는 일이며 이것은 XFree86
개발팀이 원치않는 일이다. 오랫동안 Diamond사의 비디오 카드에 있어서 이러한
문제가 있었지만 XFree86 release 3.1 이후로 Diamond사는 개발팀과 협력하기
시작하여 자사 카드의 공개 드라이버를 발표하였다.

리눅스에서 XFree86을 위한 권장사양은 위에 나온 칩셋을 쓴 비디오 카드와
최소 8 MB의 램을 갖춘 486 이상이다. 최적의 실행을 위해서는 S3 칩셋 카드와
같은 가속카드를 쓰는 것이 좋다. 값비싼 하드웨어를 구입하는 모험을 하기
전에 XFree86 문서를 참고하여 지원여부를 확인해야 한다.

한가지 사족을 달자면 Matt Welsh (이 FAQ를 만든 사람)이 쓰던 리눅스
시스템은 20MB RAM과 2MB의 DRAM이 달린 VLB S3-864 칩셋 카드가 장착된
486DX-66이었다. 그는 X 성능테스트를 이 시스템과 Sun Sparc IPX
워크스테이션에서 수행했는데 그의 리눅스 시스템이 Sparc IPX보다 대략 7배
정도 더 빨랐다 (궁금한 분들을 위해 설명하자면, 이 비디오 카드가 장착된
리눅스 상의 XFree86-3.1이 작동하는 속도는 약 171,000 xstone이며 Sparc
IPX는 약 24,000 xstone이다). 일반적으로 SVGA 가속카드를 쓰는 리눅스
시스템상의 XFree86이 상용 유닉스 워크스테이션 (보통 그래픽을 위해 단순
프레임버퍼를 채용하는) 보다 훨씬 빠른 수행 능력을 보여준다.

시스템은 최소 4MB의 물리적 램과 16MB의 가상 램 (예를 들자면 8MB의 물리적
램과 8MB의 스왑영역)을 가지고 있어야 한다. 메모리 부족시에 물리적 램이
더 많을수록 시스템의 디스크 스왑이 더 적어진다는 점을 기억해야 한다.
스왑은 본질적으로 느리기 때문에 (디스크는 메모리에 비해 훨씬 느리다)
XFree86을 원활히 사용하기 위해 8MB나 그 이상의 램이 필요하다. 16MB면 더
좋을 것이다. 4MB의 물리적 램을 가진 시스템은 8MB 이상의 램을 가진
시스템보다 훨씬 (최고 10배까지) 느리다.

<sect>XFree86 설치하기

<p>
아마도 독자는 리눅스 배포판에 포함된 XFree86을 갖고 있을 텐데, 이 경우
XFree86을 따로 다운로드할 필요가 없다. 아니면 각자의 시스템에 맞는 RPM
바이너리 패키지를 구할 수 있을 것이다. 이 경우엔 rmp(1)을 써서 설치할 수
있다. 어느 쪽이든 이 절의 나머지는 건너뛰어도 된다.

XFree86의 이진파일 형태의 리눅스 배포본은 많은 FTP 사이트에서 찾을 수
있다. XFree86 사이트에서는 이것이
<url url="ftp://ftp.xfree86.org/pub/XFree86/current/binaries/">에 있다.

다운로드한 뒤에 가장 먼저 해야할 것은 'preinst.sh' 쉘 스크립트를 실행하는
것이다. 이 과정은 설치를 계속하기 전에 필요한 사항들을 알려줄 것이다.

직접 XFree86을 다운로드하는 경우라면 XFree86-3.3 배포판에는 다음에 나와
있는 파일들이 들어있을 것이다.

다음의 서버중의 하나가 필요하다:
<descrip>
<tag/X8514.tgz/ Server for 8514-based boards. <p>
<tag/XAGX.tgz/   Server for AGX-based boards. <p>
<tag/XI128.tgz/   Server for the Number Nine Imagine 128.<p>
<tag/XMach32.tgz/  Server for Mach32-based boards.<p>
<tag/XMach64.tgz/  Server for Mach64-based boards.<p>
<tag/XMach8.tgz/  Server for Mach8-based boards. <p>
<tag/XMono.tgz/  Server for monochrome video modes.<p>
<tag/XP9K.tgz/ Server for P9000-based boards.<p>
<tag/XS3.tgz/   Server for S3-based boards.<p>
<tag/XS3V.tgz/   Server for the S3 ViRGE and ViRGE/VX (considered beta)<p>
<tag/XSVGA.tgz/ Server for Super VGA-based boards.<p>
<tag/XW32.tgz/  Server for ET4000/W32-based boards.<p>
</descrip>
만약 어느 것을 택해야할지 모른다면 VGA16 서버인 XVG16.tgz를 선택한다.
다음 단계에서 자동설정 유틸리티를 실행하려면 이것이 필요하므로 어쨌거나
이것을 다운로드해야만 한다.

다음의 파일은 모두 필요한 것들이다.
<descrip>
<tag/preinst.sh/ Pre-installation script<p>
<tag/postinst.sh/ Post-installation script<p>
<tag/Xbin.tgz/ The rest of the X11R6 binaries. <p>
<tag/Xcfg.tgz/ Config files for <tt>xdm</tt>, <tt>xinit</tt> and <tt>fs</tt>.<p>
<tag/Xdoc.tgz/ Documentation.<p>
<tag/Xman.tgz/ Manual pages. <p>
<tag/Xfnts.tgz/ 75dpi, misc and PEX fonts<p>
<tag/Xlib.tgz/ Shared X libraries and support files. <p>
<tag/Xset.tgz/ XF86Setup utility.<p>
<tag/XVG16.tgz/  Server for VGA/EGA-based boards.<p>
</descrip>

다음 파일들은 선택사항이다.
<descrip>
<tag/Xf100.tgz/    100dpi fonts<p>
<tag/Xfcyr.tgz/    Cyrillic fonts<p>
<tag/Xfnon.tgz/    Other fonts (Chinese, Japanese, Korean, Hebrew)<p>
<tag/Xfscl.tgz/    Scalable fonts (Speedo and Type1)<p>
<tag/Xfsrv.tgz/    Font server and config files<p>
<tag/Xprog.tgz/    X header files, config files and compile-time libs<p>
<tag/Xlkit.tgz/    X server LinkKit<p>
<tag/Xlk98.tgz/    PC98 X server LinkKit<p>
<tag/Xnest.tgz/    Nested X server<p>
<tag/Xprt.tgz/     X print server<p>
<tag/Xvfb.tgz/     Virtual framebuffer X server<p>
<tag/Xps.tgz/      PostScript version of the documentation<p>
<tag/Xhtml.tgz/    HTML version of the documentation<p>
</descrip>

XFree86 디렉토리는 현재 버전에 대한 배포 설명서를 <tt/RELNOTES/에 포함
하고 있을 것이다. 자세한 설치사항은 그것을 참고한다.

XFree86을 설치하기 위해서는 위에 나열된 파일들이 필요하며 <tt>/usr/X11R6</tt>
디렉토리를 만들어서 (<tt/root/ 권한으로) 이 파일들을 <tt>/usr/X11R6</tt>에서
다음과 같이 풀어야 한다.

<tscreen><verb>
gzip -dc Xbin.tgz | tar xfB -
</verb></tscreen>
이 파일들은 <tt>/usr/X11R6</tt>에서 묶었으므로 다시 그곳에서 풀어야 한다는 점을
잊지말 것.

<tt>/usr/X11R6/bin</tt> 디렉토리가 패스경로로 지정되어 있어야 한다. 이를 위해서는
시스템 디폴트인 <tt>/etc/profile</tt>이나 <tt>/etc/csh.login</tt> (당신이나
타 사용자가 쓰는 쉘에 따라 다르다)를 편집한다. 단순히 당신의 쉘에서 쓰는
<tt>.bashrc</tt>나 <tt>.cshrc</tt>를 수정해서 그 디렉토리를 각자의
패스경로에 추가해도 된다.

또한 <tt>/usr/X11R6/lib</tt> 디렉토리가 런타임 링커인 <tt>ld.so</tt>에 의해 위치
지정이 되도록 해야 하는데, 이를 위해서는

<tscreen><verb>
/usr/X11R6/lib
</verb></tscreen>

을 <tt>/etc/ld.so.conf</tt> 파일에 추가하고 <tt>root</tt>로서 <tt>/sbin/ldconfig</tt>를
실행한다.

<sect>XFree86 설정
<p>
<sect1>일반 설정
<p>
마우스와 모니터, 비디오 카드를 제대로 쓰기위해 XFree86을 설정하는 것은
복잡한 설정 파일을 일일히 손으로 고쳐야 하는 방대한 작업을 요하는 일종의
마술쇼와도 같은 일이었다. 그러나 이제는 그렇게 어려운 작업은 필요하지
않다. 릴리즈 3.2/3.3에서는 설정이 아주 간단해졌다. 그냥 <tt/XF86Setup/만
실행하면 된다.

이 프로그램은 요즈음의 하드웨어가 모두 EGA/VGA를 장착하고 있기 때문에
가능했다. 이 프로그램은 SVGA16 서버를 호출하고 모든 시스템에 있어서
공통적으로 지원되는 640x480 모드에서 X를 띄운다. 그리고 마우스, 키보드,
비디오 카드, 모니터 그리고 기타 여러가지 서버 옵션의 다섯 가지 설정 패널을
가진 대화식 프로그램을 실행한다. 어려운 점은 없을 것이다.

(레드햇을 쓰고 있는 경우라면 <tt/xf86config/라는 프로그램이 있을 것이다. 이것은
<tt/XF86Setup/과 비슷하지만 X 인터페이스와 VGA16 서버를 쓰지 않는다)

한가지 알아두어야 할 것은 당신이 대부분의 PC 사용자와 마찬가지라면 당신의
키보드는 XF86Setup 프로그램에서 디폴트인 'Generic 101-key PC'가 아니라
'Generic 102-key PC (intl)'이라는 것이다. 만약 디폴트(101)을 선택하면
키보드 맨 오른쪽에 있는 키들 (숫자키 같은 것들)이 작동하지 않게 된다.

만약 모니터 종류를 잘 모르면 열거된 종류들을 차례로 시험해보면 된다. 위에
있는 것부터 시작해서 아래로 순서대로 시험한다 (윗쪽에 있는 것일수록 낮은
도트 클럭 스피드를 가지고 있으므로 보다 적은 하드웨어 사양을 요구한다).
화면이 이상해지거나 그림이 왜곡되는 경우엔 중지하고 낮은 쪽을 선택한다.
왜곡이 심하지 않은 경우는 괜찮다 (그림이 조금 너무 크다든지, 조금
작다든지, 중심에서 약간 치우쳐 있다든지). 모드를 미세 조정하면 이런 것들을
고칠 수 있다.

셋업 프로그램이 비디오 모드를 조정하기 위해 <tt/xvidtune/를 실행하는 경우
초기화면의 경고 메시지에 너무 걱정할 필요는 없다. 요즘의 멀티싱크 모니터는
(이전의 고정 주파수 모델과 달리) 그렇게 쉽게 망가지지 않는다.

XF86Config가 마우스 디바이스를 <file>/dev/mouse</file>로 가정하는 경우가 있다. 이렇게
해서 잘 안될 경우엔 마우스가 있는 아무 <file>/dev/ca[01]</file>에나 링크하도록 한다.
<tt>gpm</tt>을 실행할 때 "mouse busy" 에러가 나는 경우엔 <file>/dev/ttyS[01]</file>에 링크한다.

설정 프로세스는 비디오 카드의 타입에 맞는 서버 (<tt/XF86_VGA16/,
<tt/XF86_Mach64/, or <tt/XF86_S3/)를 선택하고 그 서버가 설치를 위한 변수값들을
찾기위해 시작시에 읽을 <tt/XF86Config/를 설정함으로써 이루어진다. <tt/XF86Config/의 위치는 OS에 따라
다르지만 주로 <tt>/etc/X11</tt> 같은 곳에 있다.

XFree86의 구형 버전에서는 <tt/XF86Setup/이 'X' 명령을 곧바로 선택된 서버에
링크한다. 최근 버전에서는 Xwrapper라는 set-user-id wrapper 프로그램에 링크
한다. 이는 모든 setuid root 관련 사항이 Xwrapper에 집중되어 서버가 setuid
root를 실행할 필요가 없는 것이다.

<sect1>문제 해결
<p>

간혹 처음으로 X 서버를 실행시켰을 때 다소 이상이 있는 경우가 있다. 이것은
대개 설정파일에 문제가 있기 때문이다. 보통은 모니터 타이밍 값이 잘못됐거나
비디오 카드의 도트 클럭이 잘못 설정되었기 때문이다. 간단한 문제라면
<tt/xvidtune/으로 고칠 수 있다. 화면이 심하게 왜곡되는 경우엔 다시 XF86Setup을
실행해서 좀 더 낮은 모니터를 선택한다.

화면이 흔들리는 것 같은 경우나 가장자리가 이상한 현상은 모니터 타이밍
값이나 도트 클럭이 잘못되었음을 말해준다. <tt>XF86Config</tt>의 디바이스 옵션뿐만
아니라 비디오 카드 칩셋이 맞게 설정되었는지 확인한다. 올바른 X 서버를
선택했는지 그리고 <tt>/usr/X11R6/bin/X</tt>가 서버에 심볼릭 링크되었는지 반드시
확인하는 것이 절대적으로 중요하다.

그래도 안된다면 한번 X의 시작 상황을 "적나라하게" 드러내보자. 다음의
명령을 쓰면된다.

<tscreen><verb>
X > /tmp/x.out 2>&ero;1
</verb></tscreen>
X > /tmp/x.out 2>&1
그리고 X 서버를 죽인다 (<tt>ctrl-alt-backspace</tt>를 써서). 그리고 <tt>/tmp/x.out</tt>의
내용을 조사한다. X 서버가 낸 경고나 에러메시지가 있을 것이다. 예를 들어
비디오 카드가 모니터가 지원하는 모드에 대응하는 도트 클럭을 가지고 있지
않다든지 하는 등의...

<tt>XF86Config</tt>의 <tt>Screen</tt> 부분에 나온 비디오 모드간의 전환을 하려면
<tt>ctrl-alt-숫자키패드 +</tt>와 <tt>ctrl-alt-숫자키패드 -</tt>를 쓸 수 있다. 고해상도에서
화면이 잘 안나올 경우 저해상도로 전환해본다. 이를 통해 최소한 X 설정사항
이 제대로 작동하고 있는지는 알 수가 있다.

모니터의 수직/수평 크기및 위치 조절 스위치도 확인해 본다. X를 띄울 때
이것을 조정해야 하는 경우도 많다. 예를 들어 화면이 한쪽으로 조금 치우쳐
보인다면 모니터에서 쉽게 조정할 수 있다.

유즈넷 뉴스그룹 <tt>comp.windows.x.i386unix</tt>과 <tt>comp.os.linux.x</tt>에서는 XFree86에
대해 주로 논의한다. 여기서 비디오 설정사항에 관련된 게시물을 찾아보는 것도
좋다. 잘하면 똑같은 문제가 발생한 경우를 찾아 볼 수 있다.

<sect1>사용자 설정
<p>
모니터가 1600x1200을 지원하는 경우 최적의 성능을 위해서는 X 설정을 직접
손으로 고칠 수 있어야 한다. XFree86Setup이 지원하는 최고 해상도는
1280x1024이다.

이런 이유 등으로 직접 비디오 설정을 고치려 할 경우 LDP의 비디오 타이밍
하우투
<url
url="http://metalab.unc.edu/LDP/HOWTO/XFree86-Video-Timings-HOWTO.html">
를 찾아보자 (이것은 XFree86의 `Videomodes.doc' 파일의 최신 HTML 버전이다).

<sect1>16비트 컬러 사용
<p>

X는 기본적으로 256색의 8비트 컬러를 사용한다. 이러한 제한을 극복하기 위해
많은 응용 프로그램이 고유의 컬러맵을 쓰는데, 서로 다른 컬러맵을
쓰는 윈도우 사이를 마우스 포인터가 움직이는 경우 갑작스런 색상변화를
일으키기도 한다. Arena 웹 브라우저의 경우가 그렇다.

그러나 좀더 나은 그래픽 응용 프로그램을 쓰는데는 256색으로는 충분치가
않다. 이런 경우 16비트 컬러 (65536색)를 사용할 수 있다. 단, 어떤 응용
프로그램은 16비트 컬러에서 돌아가지 않을 수 있다.

16비트 컬러모드를 쓰려면 X를 띄울 때 다음과 같이 옵션을 주거나

<code>
    startx -- -bpp 16
</code>

.xserverrc 파일에 다음을 추가하면 6만5천가지 색의 16비트 컬러를 사용할 수
있다.

<code>
    exec X :0 -bpp 16
</code>

이렇게 하려면 XF86Config의 <code>screen</code> 섹션에

<code>
    DefaultColorDepth 16
</code>

라고 되어 있어야 한다.

xdm을 쓰고 있으면 <file>Xservers</file> 파일을 고칠 필요가 있는데 이것은
<file>/etc/X11/xdm/</file>에 있을 것이다. 이것은 보통 밑에 나와있는 것처럼 주석이 붙지
않은 행으로 되어있다.

<code>
      :0 local /usr/X11R6/bin/X
</code>

시작 옵션에 <code>-bpp 16</code> 을 주어서

<code>
      :0 local /usr/X11R6/bin/X -bpp 16
</code>

와 같이 한다.

그리고 X config의 'screen' 섹션에 디스플레이 항목을 추가해서 16비트 컬러
를 지정해야 한다.

더 많은 색상을 쓸수록 비디오 카드는 같은 시간동안 더 많은 데이터를 주고
받아야 한다. 비디오 카드가 이를 받쳐주지 못할 경우엔 해상도나 리프레쉬율을
낮추는 방법밖엔 없다. XFree는 이 경우 해상도를 낮추도록 기본설정되어 있다.
해상도를 그대로 유지하고 대신 리프레쉬율을 낮추고 싶을 때는 그 해상도에
해당하는 XF86Config 파일의 Modeline 항목을 더 낮은 리프레쉬율로 고쳐주어야
한다. 예를 들어
<tscreen><verb>
Modeline "1024x768"  75  1024 1048 1184 1328 768 771 777 806 -hsync -vsync
</verb></tscreen>
와 같이 되어있는 것을 다음과 같이 바꾼다.
<tscreen><verb>
Modeline "1024x768"  65  1024 1032 1176 1344 768 771 777 806 -hsync -vsync.
</verb></tscreen>
여기서 75와 65는 각각 X가 .X.err 파일에 저장해 놓은 숫자들이다. 16비트
컬러모드에서 비디오 카드가 낼 수 있는 최대 클럭에 맞는 Modeline 설정에
관해서는 XF86 문서 가운데 모니터에 관한 파일을 찾아보기 바란다.

<sect>XFree86 실행하기
<p>
<tt>XF86Config</tt> 파일 설정을 다 마쳤다면 이제 X 서버를 띄워 테스트해 볼 차례다.
먼저 <tt>/usr/X11R6/bin</tt> 디렉토리가 패스에 걸려 있어야 한다.

XFree86을 시작하는 명령은
<tscreen>
startx
</tscreen>
이다. 이것은 <tt>xinit</tt>에 해당한다 (다른 유닉스 시스템에서 <tt>xinit</tt>를 써봤다면 알
것이다).

이 명령은 X 서버를 시작하고 home 디렉토리에 있는 <tt>.xinitrc</tt> 파일에 들어있는
명령을 실행한다. <tt>.xinitrc</tt>는 실행할 X 클라이언트를 담고있는 일종의 쉘이다.
이 파일이 존재하지 않는다면 디폴트인 <tt>/usr/X11R6/lib/X11/xinit/xinitrc</tt>가
대신 쓰인다.

보통 <tt>.xinitrc</tt> 파일은 아래와 같다.
<tscreen><verb>
#!/bin/sh

xterm -fn 7x13bold -geometry 80x32+10+50 &
xterm -fn 9x15bold -geometry 80x34+30-10 &
oclock -geometry 70x70-7+7 &
xsetroot -solid midnightblue &

exec fvwm2
</verb></tscreen>

이 스크립트는 두 개의 <tt>xterm</tt> 클라이언트와 <tt>oclock</tt>을 시작하고 배경색을
<tt>midnightblue</tt>로 설정한다. 그리고 윈도우 매니저인 <tt>fvwm2</tt>를 시작한다. <tt>fvwm2</tt>는
쉘의 <tt>exec</tt> 문장에 의해 실행된다는 점을 주목하자. 이것은 <tt>xinit</tt> 프로세스가
<tt>fvwm2</tt>에 의해 대치되도록 한다. 일단 <tt>fvwm2</tt> 프로세스가 종료하면 X 서버가 셧다운하게
된다. <tt>fvwm2</tt>를 종료시키려면 root 메뉴를 쓰면된다. 데스크탑 배경에서 마우스
1번 버튼을 누르면 <tt>Exit Fvwm2</tt> 팝업 메뉴가 나타난다.

<tt>.xinitrc</tt>의 마지막 명령이 <tt>exec</tt>로 시작된다는 것과 이것이 백그라운드로
실행되는 것이 아니라는 점을 확인하자 (끝에 &가 없다). 그렇지 않으면 X
서버가 <tt>.xinitrc</tt> 파일의 클라이언트를 시작하자마자 셧다운하고 말 것이다.

또 <tt>ctrl-alt-backspace</tt>를 누름으로써 X를 종료할 수도 있다. 이렇게하면 즉시
X를 끝내고 윈도우 시스템을 빠져나올 수 있다.

위의 것들은 아주 간단한 데스크탑 설정이다. <tt>.xinitrc</tt> 파일을 조금 손보면
많은 멋진 프로그램들과 시스템 설정이 가능하다.

X 윈도우 시스템 환경을 처음대하는 초보자에게는
<em>The Joy of X: An Overview of the X Window System</em> by Niall Mansfield
(Addison-Wesley 1993, ISBN 0201-565129) 같은 책을 강력히 추천하는 바이다. X의
사용과 설정은 여기서 다루기엔 벅찬 내용이다. 처음엔 <tt>xterm</tt>, <tt>oclock</tt>,
<tt>fvwm2</tt> 등에 대한 맨페이지를 보는 것이 도움이 될 것이다.

<sect1>사용 제한
<p>
	이 글의 저작권은 Eric. S Raymond에게 있다. 다음 사항만 준수한다면 마음대로
       사용할 수 있고 복사해 써도 된다.

<itemize>
<item>본 저작권에 대한 명시를 생략하거나 변경할 수 없다.
<item>문서버전과 작성날짜를 생략하거나 변경할 수 없다.
<item>현재의 웹버전을 나타낸 부분을 생략하거나 변경할 수 없다.
<item>요약한 부분이나 변경한 곳을 확실히 표시한다.
</itemize>

	이러한 사항들은 독자들이 구닥다리 버전이나 엉터리 버전을 읽게 되는 것을
       방지하기 위해서다. 예외가 필요한 경우엔 본인에게 요청하면 된다.

<sect1>감사의 말
<p>
	처음에 이 글의 윤곽을 잡는데에 Matt Welsh의 도움이 컸다. Matt에게
       감사하는 바이다.


<sect>번역판
<p>
<itemize>
<item><url name="이탈이아어"
	url="http://www.pluto.linux.it/ildp/HOWTO/XFree86-HOWTO.html">
<item><url name="슬로베니아어"
	url="http://www.lugos.si/delo/slo/HOWTO-sl/XFree86-HOWTO-sl.html">
<item><url name="크로아티아어"
	url="http://meta.mioc.hr/XFree86-KAKO.html">
<item><url name="네덜란드어"
	url="http://www.nl.linux.org/doc/HOWTO/">
</itemize>
</article>




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.0071 sec