X 초보자를 위한 팁 시리즈(3)

    저 자 : 이성주 / Hitel ID : linuxlee

     

 

    리눅스의 개인 사용자들이라면 좀더 화려한 리눅스 머신을 꿈꾸게 된다. 이러한 생각 때문에 대부분의 리눅서들은 X Windows 는 필수적으로 설치하기 마련이다. 그러나 X Windows 는 리눅스의 사용에 익숙한 사용자라 하여도 설치나 운용이 쉽지 않다.

    X Windows 에 대한 자세한 사항은 내용이 많기 때문에 팁 수준을 벗어나므로 여기서는 다루지 않겠다. 여기서는 PC에서 운용할 수 있는 XFree86 의 설치부터 간단한 사용을 언급할 것이다.

      XFree86 Homepage : http://www.xfree86.org/

     

◆ XFree86 설치 및 설정

    리눅스에 익숙한 사용자라도 어려워하는 부분이다. 왜냐하면 하드웨어에 민감한 사항들이 많기 때문이다. 그래서 자신의 하드웨어에 잘 된다고 해서 다른 사람의 하드웨어에서도 잘 된다는 보장이 없기 때문에 여러 가지 가능성과 테스트를 해봐야 한다. XFree86 패키지의 설치는 각 배포본을 사용하면 그렇게 어렵지 않게 설치할 수 있다. 그러나 설치는 그렇게 중요하지 않다. 설치가 잘 되었다고 해서 X 가 구동된다고 볼 수 없기 때문이다. 설치 중에 나오는 여러 가지 설정의 예를 들어보자. 설정에 앞서 자신의 비디오 카드와 모니터 매뉴얼을 옆에 놔두는 것이 좋을 것이다.

    1. 모니터

    모니터는 자신의 모니터 매뉴얼을 참고하여 수평동기 주파수와 수직동기 주파수, 그리고 최대표현해상도를 알고 있어야 한다.

    hsync 와 vsync을 선택하거나 입력하면 된다.

    2. 비디오 카드

    최신의 비디오 카드보다는 나온지 오래된 것이거나 사용자들이 많다고 생각되는 칩셋을 사용한 비디오 카드가 설정이 쉽다. XFree86 의 버전에 따라서 지원하는 칩셋이 차이가 있으므로 가능하다면 최신의 XFree86 버전을 사용하는 것이 좋다. 현재 가장 최신 버전은 XFree86 3.3.1 버전이다. 자신의 칩셋을 선택하면 그 칩셋에 맞는 X 서버를 설치한다. 이 서버의 선택이 제대로 되어있느냐에 따라서 성능의 차이가 난다. 자신의 칩셋 전용 X 서버를 선택하면 많은 색상표현이 가능하고 가속기능을 사용할 수 있다(XF86_S3, XF86_Mach32, XF86_Mach8, XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64). 자신의 칩셋이 제대로 지원되지 않는다면 일반적인 Super VGA 서버(XF86_SVGA)가 선택되므로 특성을 제대로 이용할 수 없다.

    쳅셋 선택을 하고 나면 비디오 램을 선택한다. 자신의 비디오 카드의 램 용량을 정확히 알고 있어야 고해상도에 다양한 색을 표현할 수 있다.

    만약 자신의 비디오카드가 특성한 회사의 제품이고 이 제품을 XFree86 이 지원한다면 제품이름을 사용해도 된다. 목록에서 선택할 수 있다.

    다음은 clockline을 설정하는데 probeonly 모드에서 실행하여 값을 얻고 추가한다.

    다음은 디스플레이 모드에 대해서 설정한다. 여기서 자신이 원하는 해상도와 색상 수를 선택한다.

    여기까지 마치면 /etc/XF86Config(또는 /etc/X11/XF86Config) 파일이 만들어진다. 이 파일은 텍스트 파일로 되어있으므로 추후에 자신의 설정을 바꿀 수 있다.

    3. XF86Config의 요약
     

    #<Ctrl><Alt><BS>를 사용하여 서버를 종료할 수 있게 한다.
    #   DontZap
    #<Ctrl><Alt><KP_+>/>KP_-> 키를 사용하여 모드를 변경할 수 있게 한다.
    #   DontZ
    #수평주파수
       HorizSync   31.5 - 79.0
    #수직재생률
       VertRefresh 40 - 150
    #모니터에서 지원하는 비디오 모드의 정보
    #640x480 @ 72 Hz, 36.5 kHz hsync
    Modeline "640x480"  31.5  640    680   720    864   480  488  491  521
    #800x600 @ 60 Hz, 37.8 kHz hsync
    Modeline "800x600"   40    800   840   968   1056   600  601  605  628
    +hsync + vsync
    #1024x768 @ 60 Hz, 48.4 kHz hsync
    Modeline "1024x768"  65  1024  1032  1176  1344  768  771  777  806
    -hsync - vsync 

     
    위의 모드라인에 자신이 원하는 설정을 넣어 주면 표준적인 해상도 이외에도 다양한 해상도를 사용할 수 있다. 예를 들면 1152x864 이나 960x660 등과 같은 해상도도 가능하다. 이러한 설정은 주의가 필요하다. 모니터 정보가 잘못 기록되어 있으면 화면에 작게 나온다든지 또는 한쪽으로 치우쳐서 나온다든지 하는 문제가 발생한다. 이런 경우에는 모니터의 조절장치를 이용하지 말고 일단 X 상태에서 조절프로그램을 사용하여 설정할 수 있는 수치를 얻어낸다. 이때 사용하는 프로그램이 xvidtune 이다.

    현재 화면상에 나타난 해상도가 위치한 modeline을 이 프로그램을 이용하여 알아낸 수치로 바꾸어 주면 다음에 X를 실행시킬 때는 이 수치가 적용되어 나타난다.

    다음에 장치섹션에는 비디오카드에 대한 특성이 기록되어있다. X가 잘 실행되지 않는 특정한 비디오카드를 사용하는 경우에 다음과 같은 선택 사항을 조정함으로서 실행시킬 수 있는 경우도 있다.
     

    #nolinear
    #nomemaccess


    스크린 섹션에는 X 서버가 사용할 비디오카드와 모니터에 대한 내용이 기록되어있다. 해상도와 색상수등을 조절함으로써 원하는 내용으로 X를 조절할 수 있다. 예를 들어보자.

    위의 설정에서 자주 사용하는 부분은 다음의 부분들이다.
     

    # Screen sections
    # The Colour SVGA server
       Section "Screen"
       Driver     "svga"
    # Use Device "Generic VGA" for Standard
       VGA 320x200x256
    # Device   "Generic VGA"
       Device   "My Video Card"
       Monitor  "My Monitor"
       DefaultColorDepth  16
       Subsection  "Display"
       Depth    8
    # Omit the Modes line for the "Generic VGA" device
       Modes     "1024x768"  "1280x1024"
       ViewPort  0 0
    # Use Virtual 320 200 for Generic VGA
       Virtual     1280  1024
       EndSubsection
       Subsection "Display"
       Depth         16
       Modes        "1024x768"
         ViewPort   0 0
         Virtual       1024 768
       EndSubsection
       Subsection "Display"
         Depth         32
         Modes        "800x600"
         ViewPort     0 0
         Virtual         800x600
       EndSubsection 
       EndSection 

     
     

    DefaultColorDepth : X 가 기동될 때 색상 수를 지정한다. 여기에서 지정된 값과 subsection 들 중에 depth 에 지정된 값이 같은 subsection 이 기본적으로 실행되게 된다.

    Depth : 해당 display 의 색상 수를 지정한다.

    Modes : 나타날 수 있는 해상도를 기록한다. 이 값하고 modeline 의 값하고 연결되어서 실제로 X 가 기동된다. 적혀진 순서를 적당히 바꾸어 줌으로써 실행되는 해상도의 순서를 조절할 수 있다. 또한 <Ctrl><Alt><KP_+><KP_->를 사용하여 해상도 변경을 하는 경우에 여기에 지정된 해상도들 사이에 변경이 이루어지는 것이다.

    Virtual :가상 데스크탑을 지정한다. 현재 적은 치수의 모니터를 사용하고 비디오 메모리가 현재의 해상도보다 훨씬 많다고 한다면 한 화면에 표시되는 부분보다 더 큰 영역의 데스크탑 영역을 사용할 수 있다. 반드시 여분의 비디오 메모리가 있어야 한다.

     

◆ X - Window 의 실행

    위의 조금은 복잡하고 어려워 보이는 과정을 거치고 나서 명령 행에서 startx 와 같이 입력하면 화려한 X Windows 화면을 볼 수 있다. 이 과정까지 거치고 나면 여러 X 애플리케이션을 활용할 수 있다.

    그러나 좀더 나아가 나의 환경에 맞는 X Windows를 만들 수 있다. 이를테면 자신이 원하는 아이콘을 화면상 배치한다거나, 원하는 메뉴가 나오도록 한다거나, 원하는 배경색과 배경그림을 넣는다든지 하는 작업은 또다른 설정이 필요하다. 이때 사용되는 X 애플리케이션이 윈도우 매니저이다. 이 윈도우 매니저의 디자인을 어떻게 하느냐에 따라서 자신이 원하는 상태를 만들어 낼 수 있다. 이러한 윈도우 매니저에는 여러 가지가 있다. 그러므로 자신이 원하는 윈도우 매니저를 사용함으로써 독특한 화면을 만들어 낼 수 있다.

    윈도우 매니저들에는 fvwm, twm, olwm, kde, enlightenment, afterstep 등이 있다. 각 윈도우 매니저마다 설정파일이 존재하므로 이 설정파일을 편집함으로써 원하는 X Windows를 만들 수 있다. 이 설정파일들이 위치하는 장소는 자신의 홈 디렉토리이고 이곳에는 보통 fvwm 이라면 .fvwm afterstep 이라면 .afterstep twm 이라면 .twm 등과 같은 이름을 가지고 있다. 만약 이곳에 없다면 /etc/X11 에 해당 윈도우매니저의 디렉토리가 있다. 여기에 system.fvwm 등과 같이 system 이라는 말이 붙어있는 설정파일들이 있다. 실제로 startx라고 명령행에서 입력하는 경우에 startx는 binary 파일이 아니라 스크립트로 이루어졌다.

    다음은 startx 스크립트의 예이다. 내용을 보면 서버를 지정하고 인자들을 지정하며 마지막에 xinit를 호출하고 있다.

    실제로 X 가 실행되는 것은 이 xinit 가 실행되는 것이다. 다시
     

    #!/bin/sh
    userclientrc=$HOME/.xinitrc
    userserveerc=$HOME/.xservertrc 
    sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc 
    sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc 
    clientargs=""                        serverargs=""
    xinit $clientargs - $serverargs


    xinit 파일은 해당 디렉토리에 있는 .xinitrc 의 파일을 사용하게 되는데 이 파일에 X 가 실행되면서 사용하게 될 여러 가지 설정들이 적혀져 있다. 다음은 xinitrc 의 예이다. 마지막에 윈도우 매니저를 실행시키고 있다.

    윈도우 매니저 역시 실행되면서 자신의 설정파일에 기록되어 있는 내용을 토대로 화면을 구성한다. 각 윈도우 매니저의 설정파일은 상당히 복잡한 구조를 가지고 있어서 매뉴얼을 참조해 보거나 또는 통신망의 강좌등을 찾아보면 도움을 얻을 수 있을 것이다. 자신과 같은 윈도우 매니저를 사용하는 사람들의 설정파일을 가져다가 사용해 보는 것도 연습에 도움이 될 것이다.
     

    #!/bin/sh
    userresources=$HOME/.Xresources
    usermodmap=$HOME/.Xmodmap 
    sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
    sysmodmap =/usr/X11R6/lib/X11/xinit/.Xmodmap 
    # merge in defaults and keymaps
    if [ -f $sysresources ];then
       xrdb - merge $sysresources
    fi
    if [ -f $sysmodmap ];then 
       Xmodmap $sysmodmap
    fi
    if [ -f $userresources ];then 
       xrdb - merge $userresources
    fi
    if [ -f $usermodmap ];then
    fi
    exec fvwm

     

◆ X Windows 의 참고사항

    1. xsetroot : 루트윈도우의 모습을 변경할 수 있게 하는 프로그램이다.
       -solid : 색상이름을 지정할 수 있다. 색상 명은 /usr/lib/X11/rgb.txt 파일을 참조한다.
       -bitmap : 비트맵 그래픽 파일을 배경으로 사용한다.
       -gray : 배경을 회색으로 설정한다.

        설정파일에 다음과 같이 입력해 놓으면 원하는 결과를 얻을 수 있다.

    2. 자신의 홈디렉토리에 .Xdefault 나 .Xmodmap 등의 파일은 X 의 리소스 설정에 관한
       것이므로 편집이 가능하다. 특히 .Xmodmap 파일은 X에서 키보드 설정등에 관한 사항이
     

    xsetroot -solid black


       들어있기 때문에 자신의 애플리케이션 중에서 키보드 때문에 문제가 발생하는 경우에는
       이용할 수 있다. 그리고 /usr/lib/X11/app-defaults 디렉토리는 애플리케이션의 리소스파일
       들이 위치한 디렉토리로서 이곳의 설정파일들로 눈여겨 볼 필요가 있다.

    3. X 터미널처럼 자신의 리눅스박스가 X 화면으로 로그인 하도록 하려면 X 디스플레이 관리자
       (xdm)라는 프로그램을 사용한다. X 로그인하려면 /etc/inittab에서 필요한 설정(init6)을하고
       자신의 홈디렉토리에 .xsession 파일을 적당히 편집한다. 자세한 사항은 xdm 설명서를
       읽어보기 바란다.

    4. X에서 마우스의 이상증상이 있는 경우가 있다. 이를테면 X 서버가 시작되지 않고
     

    device not found (/dev/psaux)


       등과 같은 메시지가 나오는 경우에는 자신의 XF86Config 파일을 잘 살펴봐야 한다.
       그리고 /dev 에 있는 mouse 링크가 자신의 하드웨어에 맞게 설정되어 있는지도 확인할
       필요가 있다. 또한
     

    device busy


       에러메세지가 나오는 경우는 텍스트모드에서 마우스를 사용할 수 있게 해주는 gpm 이라는
       프로그램과 충돌의 가능성이 있는 경우이므로 시작 스크립트에서 gpm을 실행시키는
       부분을 제거하면 된다.

    5. 여러 개의 X 서버를 띄우는 경우에 다음과 같이 입력하면 된다.
     

    [bada /sjlee]$ startx-:1


       뒤에 쓰는 번호를 증가시켜 가면서 실행을 시키면 된다. 이때 각 X 서버 사이의 이동은
       첫 번째 실행시킨 X 서버는 Ctrl-Alt-F7, 두 번째는 Ctrl-Alt-F8 등과 같은 순으로
       기능키를 선택하면 된다. 텍스트모드에서는 Alt-F7, Alt-F8 .... 순서로 하면 된다.

    6. 랜에 연결이 되어있는 경우에 원거리의 리눅스 박스의 X 애플리케이션을 현재 자신의
       X 서버위에 실행을 시킬 수 있다. 일단 해당 호스트로 telnet을 통해서 접속하여 자신의
       환경변수중에서 DISPLAY를 현재 자신의 눈앞에 보이는 X 서버의 IP address 로 설정해
       준다. 그 다음에 명령행에서 X 애플리케이션을 실행시키면 자신의 X 서버에 해당
       프로그램들이 실행되는 것을 볼 수 있다. 다음은 이러한 작업을 하는 순서이다.

       그러면 자신의 서버(163.152.39.200)에 xterm 과 netscape 이 나타나는 것을
       확인할 수 있다.
     

    [bada /sjlee]$ telnet 163.152.39.201
    linux:/home/sjlee> DISPLAY = 163.152.39.200
    linux:/home/sjlee> export DISPLAY 
    linux:/home/sjlee> xterm & : netscape &


    7. X 서버를 실행시킬 때 색상 수를 조절하려면 다음과 같이 실행시키면 된다.
       이 경우는 16bpp 로 실행된다.
       이 경우는 32bpp 로 실행된다.
     

    [bada /sjlee]$ startx --bpp 16


    8. X 용 애플리케이션에서 한글을 사용하는 경우 HanX를 사용한다.
     

    [bada /sjlee]$ startx --bpp 32


       그리고 일부 프로그램(Netscape Communicator, 한텀)은 한글 폰트를 사용하여 어떠한
       외부적인 도움 없이 한글을 사용할 수 있게 하기 때문에 일부에서만 한글을 사용할 경우라면
       HanX를 설치할 필요가 없다. 그러나 아직 한텀을 제외하고는 한글입력이 자유롭지 못하다.
       그래서 요즘은 한글 입력기들이 나오고 있는데 대표적인 프로그램으로 KIMS, 벼루 등이
       있고 이러한 프로그램을 사용한다고 해도 역시 완전한 한글의 입력은 불가능하다.




▲ top

home으로...