X WINDOW SYSTEM 소개와 설치법

    저 자 : 이 수 준   

     

 

Linux에서도 WINDOWS 95와 같은 GUI 환경을 가질 수 있다. X WINDOW가 그 해답을 준다.
X WINDOW를 쓰지 않는 Linux System은 상상할 수 없을 정도로 그 중요성은 크다.

     

X WINDOW SYSTEM

    X WINDOW는 미국 MIT에서 개발된 그래픽 윈도우와 네트워킹 시스템이다. X WINDOW SYSTEM은 네트워크 지향형이고, 그 응용 프로그램들은 장치 독립적이어서 이식성이 뛰어나다. 여기서 네트워크 지향적이라는 말은 쉽게 말해서 사용자가 데이터나 명령을 입력하고 그 결과를 그래픽 윈도우로 보여주는 컴퓨터와 실지로 입력 받은 것을 계산 처리하는 컴퓨터가 달라도 된다는 것이다. 즉 네트워크 상에서 다른 곳에 있는 컴퓨터에게 일을 시키고, 자기 컴퓨터로는 그 결과가 마치 자신의 컴퓨터가 처리한 것처럼 볼 수 있다는 말이다. 장치 독립적이란 말은 X WINDOW가 이식된 모든 종류의 컴퓨터에서 특정 디스플레이나 그 기종에 관계없이 됭일한 프로그래밍을 할 수 있는 것을 말한다. 무엇보다도 사용자들이 X WINDOW를 좋아하는 이유는 GUI를 통하여 사용자에게 만족할 만한 그래픽 환경을 만들어주고 그것을 구축하기 위한 유용한 툴들을 지원한다는게 가장 큰 이유가 아닐까?

     

X WINDOW 설치

    여러분들은 대부분 책자나 인터넷에서 받은 Linux 배포판에는 기본적으로 XFREE86이 제공된다. 하지만 자신이 가진 배포판의 버전이 낮다거나 혹은 항상 XFREE86의 최신버전만을 고집하는 이들은 ftp.xfree86.org에서 최신의 버전의 binary와 source를 구할 수 있다. (평소에 여기엔 많은 사람들이 몰려 접속하기가 어렵다. ftp.cdrom.com 등 mirror site로 접속하여 다운로드 받는 것도 좋은 방법이다.) 여기에는 비단 Linux 용만이 아니라 x86용 FreeBSD나 Solaris에서도 돌아가는 X WINDOW도 구할 수 있다. 지금 설명하고자 하는 내용들은 모두 Linux-ix86 directory에 있는 파일들을 중심으로 한다. (필자가 글을 쓸 당시의 XFREE86의 버전은 3.3.1이다.) 먼저 파일들을 받아서 설치하기 전에 README 파일과 RELNOTES 파일을 꼭 읽어보기 바란다. 여기에는 기본적인 설치 방법과 그 외 유용한 정보들이 담겨져 있다. 기본적으로 필요한 파일들은 다음과 같다.

    <그림. XFREE86 공식 Web page : http://www.xfree86.org>
     

    preinst.sh

    Pre-installation script

    postinst.sh

    Post-installation script

    extract

    XFree86 extraction utility

    X331bin.tgz

    Clients, run-time libs, and app-defaults files

    X331doc.tgz

    Documentation

    X331fnts.tgz

    75dpi, misc and PEX fonts

    X331lib.tgz

    Data files required at run-time

    X331man.tgz

    Manual pages

    X331set.tgz

    XF86Setup utility

    X331VG16.tgz

    16Colour VGA server
    (XF86Setup needs this server)

    X331upd.tgz

    Changes since 3.3 (except the servers)

    X331cfg.tgz

    sample config files for xinit, xdm

     

    그리고 자신의 컴퓨터에 설치된 디스플레이 어댑터와 동일한 X SERVER를 구한다.
     

    X3318514.tgz

    8512/A server

    X331AGX.tgz

    AGX server

    X331|128.tgz

    |128 server

    X331Ma32.tgz

    Mach 32 server

    X331Ma64.tgz

    Mach 64 server

    X331Ma8.tgz

    Mach 8 server

    X331Mono.tgz

    Mono server

    X331P9K.tgz

    P9000 server

    X331S3.tgz

    S3 server

    X331S3v.tgz

    S3 ViRGE server

    X331SVGA.tgz

    SVGA server

    X331TGA.tgz

    Dec 21030 (TGA) server

    X331VG16.tgz

    16 colour VGA server
    (XF86Setup needs this server)

    X331W32.tgz

    ET4000/W32, ET6000 server

     

    그 외의 파일들은 모두 선택적으로 설치하면 된다. 일단 자신이 설치하고자 하는 파일들을 /usr/X11R6 directory로 옮긴다. (RELNOTE에서는 /var/temp에서 작업할 것을 권하고 있다.) 파일들을 설치하기 전에 먼저 preinst.sh를 실행시킨다. 다음부터 자기에게 필요한 파일들을 설치한다. 설치시 tar나 gzip으로 설치하는 것보다 extract라는 프로그램을 쓰는 것이 좋다. 더 이상 설치할 파일이 없다면 마지막으로 postinst.sh를 실행시켜 준다.

    RedHat 4.2를 쓰시는 분들은 RedHat ftp site로 가면 /pub/redhat-4.2/updates/i386 directory에 XFREE86 3.3.1version을 rpm 압축 파일로 구할 수 있을 것이다. 역시 필요한 파일들을 다운받아서 rpm의 -Uvh나 -re placepkgs option을 이용해서 설치를 하면 된다. 파일들을 무사히 설치만 했다고 해서 X WINDOW가 작동이 되는 것은 아니다. X WINDOW를 실행하기 위해서는 자신의 모니터와 디스플레이 어뎁터에 맞게 XF86Config파일을 만들어주어야 한다.

     

XF86Config File의 작성

    XF86Config File은 X WINDOW를 사용하기 위한 설정 파일로 이것을 만드는 방법은 크게 두 가지로 나뉘는데 여기서 설명할 xf86config이라는 script와 XF86Setup이라는 script이다. XF86Setup은 xf86config이 하는 일을 tcl/tk와 XF86_VG16 server를 이용하여 보다 손쉽게 XF86Config을 작성할 수 있도록 도와준다.

    <그림 XF86Setup의 실행화면>

    먼저 xf86config을 실행시키면 xf86config에 대한 기본 설명이 나온다. 계속 리턴을 치고 넘어가면 맨 처음 자신이 가지고 있는 마우스의 종류를 물어온다.

      First specify a mouse protocol type. Choose one from the following list :

      1. Microsoft compatible (2-button protocol)
      2. Mouse Systems (3-button protocol)
      3. Bus Mouse
      4. PS/2 Mouse
      5. Logitech Mouse (serial, old type, Logitech protocol)
      6. Logitech MouseMan (Microsoft compatible)
      7. MM Series
      8. MM Hit Tablet
      9. Microsoft IntellMouse

      If you have a two-button mouse, it is most likely of type 1, and if you have a three-button mouse, it can probably support both protocol 1 and 2. There are two main varieties of the latter type : mice with a switch to select the protocol, and mice that default to 1 and require a button to be held at boot-time to select protocol 2. Some mice can be convinced to do 2 by sending a special sequence to the serial port (see the ClearDTR/ClearRTS options).

    Enter a protocol number :

    보통 2버튼의 마우스는 1번을 누르면 되고 특별히 PS/2타입의 마우스를 가진 사람이면 4번을 선택하자. 다음 마우스를 Emulate3Buttons 할 것인지 선택을 하고 곧 이어 마우스 디바이스를 선택하는 항목이 나온다.

      Now give the full device name that the mouse is connected to, fot example /dev/tty00,. Just pressing enter will use the default, /dev/mouse.

    Mouse device :

    Linux를 처음 설치할 때 mouse 드라이버를 제대로 설정해주었다면 여기서는 기본적으로 /dev/mouse라고 해주기만 하면 잘 될 것이다. 다음 XFREE86에서 제공하는 keybord layout을 설정할 것인지를 묻는 메시지를 처리하면 이제 중요한 모니터에 관한 사항이 나타난다. 처음 묻는 것은 자신의 모니터에 맞는 수평 주사율(horizontal range)을 선택하는 것인데 만약 자신의 모니터에 대해 잘 모르겠다면 모니터 제품 설명서를 참조하거나 모니터 뒷면에 보면 간단히 나와있을 것이다.

      hsync in kHz;monitor type with characteristic modes

      1   31.5; Standard VGA, 640x480 @ 60 Hz
      2   31.5 - 35.1; Super VGA, 800x600 @ 56 Hz
      3   31.5, 35.5 : 8514 Compatible, 1024x768 @ 87 Hz interlaced(no 800x600)
      4   31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz
      5   31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz
      6   31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz
      7   31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz
      8   31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz
      9   31.5 - 79.0; Monitor that can do 1280x1024 @ 74Hz
      10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz
      11 Enter your own horizontal sync range

    Enter your choice (1-11);

    다음 설정해주어야 하는 것은 수평 주사율(vertical range)인데 이는 대부분 1번이나 2번을 선택하여 주면 된다.

      You must indicate the vertical sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry-standard monitor types, or give a specific range. For interlaced modes, the number that count is the high one (e.g. 87 Hz rather than 43 Hz)

      1 50-70
      2 50-90
      3 50-100
      4 40-150
      5 Enter your own vertical sync range

    Enter your choice :

    다음은 이제껏 설정한 모니터에 대한 이름을 부여한다. 대부분 자신의 모니터의 이름을 적어주면 되지만 귀찮다면 그냥 리턴을 두드리면 기본 이름이 설정된다. 다음 설정해주어야 할 것은 자신이 가진 그래픽 어뎁터를 지정해주는 작업인데 그리 만만한 편이 아니다. 대부분 그래픽 어뎁터들은 그것이 어떤 종류의 칩셋을 쓰는지는 잘 알려주지 않고 이상한 상품명으로만 팔리기 때문에 잘못사게 되면 X WINDOW를 구경도 못하게 될지도 모르거나 16색으로만 써야하는 불상사가 일어날지도 모른다. 가장 많이 쓰는 칩들은 S3계열이거나 ET4000/6000 이다. 역시 자신의 그래픽 어뎁터 매뉴얼을 꼼꼼히 읽은 후 그것이 어떤 칩셋을 쓰는지 확인한 후에 설정하길 바란다. 제대로 설정했다면 선택된 X 서버는 /var/X11R6/bin/X라는 이름으로 링크될 것이다. 다음 그래픽 어뎁터의 메모리 사이즈를 선택해주고 역시 모니터에서처럼 이름을 설정해준다. 다음엔 RAMDAC과 Clockchip을 설정해주는 부분인데 잘 모르겠으면 그냥 넘어가자. 다음엔 자신이 쓸 색상수를 선택하는 부분인데 이것은 그래픽 어뎁터 메모리 사이즈와 밀접한 관련이 있다. 대부분 1 Mega 이하의 그래픽 어뎁터는 800x600 16dpp 이상을 쓰지 못하고 2 Mega라 하더라도 1024x768 16dpp 이상은 못쓴다. 리스트를 보고 자신이 쓰고자 하는 화면 크기와 색상 수를 정하자.

      for each depth, a list of modes (resolutions) is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card.
      Currently it is set to:

      "640x480" "800x600" "1024x768" for 8bpp
      "640x480" "800x600" for 16bpp
      "640x480" for 24bpp
      "640x400" for 32bpp

      Note that 16, 24 and 32bpp are only supported on a few configurations. Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server.

      1 Change the modes for 8pp (256 colors)
      2 Change the modes for 16bpp (32K/64K colors)
      3 Change the modes for 24bpp (24-bit color, packed pixel)
      4 Change the modes for 32bpp (24-bit color)
      5 The modes are OK, continue.

    Enter your choice :

    이제 모든 작업이 끝났다. /etc/XF86Config으로 지금껏 설정한 내용들이 모두 알맞게 저장될 것이다. (끝에 y를 선택하는 것을 잊지 말자.) 이제 X WINDOW를 띄워보자. 처음이라면 다소 밋밋하지만 그래도 반가운 X WINDOW가 뜰 것이다. startx!!!

    처음부터 뜨지 않고 에러가 난다고 해도 너무 실망할 필요는 없다. 지금까지 해 온 방법대로 다시 차근차근히 몇 번 해보면 대부분 성공할 것이다. X WINDOW가 제대로 떴다면 CTRL-ALT-+와 CRTL-ALT-키를 이용하면 자신의 컴퓨터가 지원하는 화면 모두를 보여준다. 대부분 800x600 이하는 잘 쓰지 않을 것이다. 나중에 필요없는 화면 모드는 XF86Config 파일에서 지우도록 하자.

    X WINDOW가 뜨기는 했지만 좀 이상하게 뜨는 경우가 있을 것이다. 화면이 너무 한쪽으로 치우칠 때가 있따. 모니터 스위치를 이용해 맞추어 주면 되기는 하지만 DOS/WINDOW를 오가며 매번 맞추어 주기는 어렵다. 그럴 경우에는 xvidtune이라는 것을 사용하면 된다. X WINDOW가 뜬 상태에서 터미널(한텀)을 하나 띄워놓고 vi로 /etc/XF86Config 파일을 읽어들인다. 그리고 다른 창으로는 xvidtune을 실행시킨다. 실행시키면 자신의 XF86Config 파일에 있는 자신의 모니터의 주파수 정보가 나온다. xvdtune은 오른쪽과 왼쪽이 각각 따로 나타나는데 오른쪽은 수직 주파수에 관한 부분이고 왼쪽은 수평주파수에 관한 부분이다. 각각의 버튼들을 보면 대충 화면을 어떻게 잡아준다는 것을 알 것인데 그냥 눌러주기만 한다고 그것이 바로 나타나는 건 아니다. 아래쪽 버튼을 살펴보면 Auto라는 것은 각각의 버튼을 누를 때마다 바로바로 그 설정을 잡아주며 Apply는 제일 적절한 화면일 때 선택하면 그 환경으로 설정이 된다. 그러나 Apply를 했다고 해서 다음 번에도 계속 지금의 환경대로 나오는 것은 아니다. Show라는 버튼을 누르면 지금껏 행한 환경을 문자로 출력해주는데 이것을 XF86Config의 대항 부분에 그대로 적어주면 된다. 그러면 다음 X WINDOW 실행 때부터는 지금의 화면 그대로 실행이 된다.

     

나가는 글

    지금까지 순전히 X WINDOW를 실행하기 위한 작업들을 지루하게 나열했다. 어떻게 보면 너무 쉬운 부분들을 많은 지면을 할애하여 설명한 것이 낭비라고 생각하는 독자들도 있겠지만 초보자들의 많은 요청에 의해 한번쯤 이렇게 정리해 본 것도 나쁘지는 않다고 생각한다. 다음호에는 X WINDOW에서 할 수 있는 많은 일들, 프로그램들에 대해 소개할 예정이며 계속 초/중급자들을 위해 Motif프로그래밍을 몇 회 연재할 예정이다.
    이제 Linux는 무시 못할 만큼 많은 사용 층을 확보하고 있으며 웬만한 통신망엔 모두 Linux 동호회가 있다. 천리안에도 UNIX 동호회에서 독립하여 Linux 동호회가 생겼다. 여기서 못다한 X WINDOW에 대한 내용들은 각각의 Linux 동호회에 가면 더 많은 정보를 얻을 수 있다. 필자는 하이텔, 천리안, 나우누리 세 곳에 모두 활동을 하고 있다.

    기타 궁금증이 있으면 필자에게 연락하면 성심성의껏 답변해드리겠습니다.
    천리안, 나우누리 ID : dislevel
    하이텔 ID : dltnwns




▲ top

home으로...