레이블이 x11인 게시물을 표시합니다. 모든 게시물 표시
레이블이 x11인 게시물을 표시합니다. 모든 게시물 표시

2012-09-10

FreeBSD] x윈도우 설치



(2005년 01월 14일 오전 11:05)


이글은 현재 제가 사용하고 있는 FreeBSD 5.3R 버전을 기반으로 X를 띄우는 작업을 하면서 작성을 합니다.

작성시 참고서적은 FreeBSD핸드북의 Chapter5. The X Window System 원문을 참조하며, 작업중 이상하거나 본인의 시스템에 안맞는 경우는 코멘트를 달아가면서 하겠습니다.


======================================
시스템사양 :

   CPU : intel P4 1.4G
   Ram : 768M
   HDD : 8.4G 6.4G
   VGA : nVidia GeForce 3 64M
   NIC : Realtek 8194
   모니터 : 상성 syncMaster CDP17s (HorizSync  30-70/ VertRefresh 50-160)
======================================


1. 설치

FreeBSD 5.3R 부터 X11의 기본이 Xorg로 바뀌어 시작한다고 한다.
물론 그 이전에는 X11의 기본은 XFree86이었습니다.
또 Xorg는 X.Org 조직에 의해 배포되는 X11R6.7의 X11서버랍니다.

X11R6.7은 XFree86 4.4RC2 와 X11R6.6 코드에 근거하고 있습니다.
X.Org 는 X11R6.7을 2004.4월에 릴리즈했습니다.

**포트에서 Xorg  빌드 및 설치

    # cd /usr/ports/x11/xorg
    # make install clean

  주의 : Xorg 전체를 빌드하기 위해서는 최소한 4G정도의 여유공간이 있어야        
         합니다.


**포트에서 XFree86  빌드 및 설치

    # cd /usr/ports/x11/XFree86-4
    # make install clean


다른 방법으로는, X11을 패키지로부터 직접 설치할 수도 있습니다.
pkg_add(1)툴로 바이너리패키지 X11을 설치 가능합니다.
원격에서 pkg_add(1)를 사용하면 최신의 프로그램을 가지고 오게 됩니다.

    # pkg_add -r xorg
or
    # pkg_add -r XFree86

   주의 : 위의 예는 X11배포본(서버, 클라이언트, 폰트등을 포함한)을 설치할 것이다.

나머지는 X11을 설정하고 desktop 환경을 어떻게 구축하는지에 대해 설명합니다.


XFree86 에서 Xorg로 옮겨가기 (생략)

**
현재 제가 빌드하고 있는데 좀 오래걸리네요...
빌드하라고 하구선 계속 쓰고 있을랍니다... ^^
이글은 윈도우OS에서 작업을 하는거랍니다. ;P
**

FreeBSD] x윈도우 설정 및 테스트



(2005년 01월 14일 오전 11:10)



2. X11 설정하기


2.1 시작하기 전에

현재 시스템에 대한 아래사항의 정보가 있어야만 합니다.
  -모니터 사양 // 비디오카드 칩셋 // 비디오카드 메모리


2.2 X11 설정

X11의 설정작업은 multi-step작업이다.


2.2.1 첫번째는 initial 설정파일을 생성합니다.

   # Xorg -configure

XFree86 타입은

   # XFree86 -configure



위의 명령은 X11설정 스켈레톤파일을 /root 디렉토리에 xorg.conf.new 라고 하는 파일을 생성합니다.

   # Xorg -config xorg.conf.new
or
   # X -xf86config /root/xorg.conf.new


위의 명령으로 테스트한 후 Ctrl Alt Backspace키를 눌러 빠져나옵니다.


2.2.2 다음은 존재하는 설정하일을 설치하고자 하는 시스템에서 그래픽하드웨어로 작업을 할수 있는지 테스트합니다.

    # Xorg -config xorg.conf.new
or
    # XFree86 -xf86config XFree86Config.new


만약 검정과 회색의 격자와 X 마우스 커서가 보인다면 설정은 성공적인것입니다.  테스트를 빠져나가기 위해 Ctrl Alt Backspace키를 누르면 됩니다.


  주의 : 만약 마우스가 보이지 않으면 첫번재 설정작업을 다시 하세요...

           Section 2.9.10 FreeBSD인스톨을 참조하세요...


2.2.3  xorg.conf.new (혹은 XFree86config.new )설정파일수정하기

emacs나 ee 혹은 vi 같은 텍스트에디터로다가 설정파일을 엽니다. 첫번째로 설치하고자 하는 시스템의 모니터의 주사율을 추가합니다.
이것은 xorg.conf.new 파일의 'Monitor' 섹션에 아래와 같은 형식으로 값을 추가하면 됩니다.

**********************

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        HorizSync    30-107
        VertRefresh  48-120
EndSection

************************

** 한솔모니터 17인치의 경우 HorizSync : 30-75 VertRefresh : 40-160 **

HorizSync 와 VertRefresh 는 설정파일에 없을수도 있으니 알아서 넣으면 됩니다.


다음으로 해상도는 기본으로 설정을 해도 된다. 다음은 그 예입니다.("Screen" 섹션입니다.)

**************************

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth     24
                Modes     "1024x768"
        EndSubSection
EndSection

****************************


2.2.4 설정파일을 저장하고, 위에서 주어진 테스트모드로 테스트를 한다.

  주의 : 문제 발생시 /var/log/Xorg.0.log (/var/log/XFree86.0.log) 에            기록이 된다.  만약 Xorg.0.log가 있으면 Xorg.0.log~Xorg.8.log 까지의 사이의 파일에 기록이 됩니다.


2.2.5 위의 모든 작업이 정상적으로 수행이 되었다면 Xorg나 XFree86이 설치된곳에서 설치파일을 찾을것이다.  이것은 전형적으로 /etc/X11/xorg.conf 나 /usr/X11R6/etc/X11/Xorg.conf 이 된다.
(XFree86에서는 /etc/X11/XF86Config 나 /usr/X11R6/etc/X11/XF86Config)

    # cp xorg.conf.new /etc/X11/xorg.conf

혹은 XFree86 :

    # cp XF86Config.new /etc/X11/XF86Config


이렇게 해서 X11설정작업은 끝납니다.

이제 XFree86 4.x 에서의 startx로 X를 시작하기 위해서는 x11/wrapper 포트를 설치해야 합니다.
Xorg 는 이미 wrapper코드를 포함하고 있기 때문에 따로 설치하지 않아도 됩니다.
X11서버는 여전히 xdm을 사용하여 구동될 것이다.

  주의 : 그래픽적인 설정툴인 xorgcfg(XFree86의 경우 xf86cfg)가 X11배포본에           같이 포함되어 있다.   콘솔에서 작업시 명령은 xorgcfg -textmode 로 해서 작업을 하면 됩니다. 다른 것으로는  xorgconfig 가 있는데 이것은 사용자에 덜 친숙한 콘솔용 프로그램입니다.


2.3 향상된(??) 설정

2.3.1   intel i810 그래픽 칩셋 설정
 intel i810 통합칩셋의 설정은 X11을 위한 agpgart AGP 프로그래밍 인터페이스를 필요로 합니다.
apg(4)드라이버는 4.8R과 5.0R 로 릴리즈되는 동안 GENERIC 커널에 포함되어 있습니다.
이전 릴리즈버전은 , 아래의 문장을 삽입하세요.

     device agp

커널을 다시 빌드한 경우라면 , asp.ko 커널모듈을 부팅시 loader(8)에 의해 로드하기를 원할 것입니다.
그런경우  /boot/loader.conf 파일에 다음과 같이 간단한 문장을 삽입하면 OK

    agp_load = "YES"

다음으로 4.X 나 그 이전버전의 경우, 디바이스노드는 프로그래밍 인터페이스의 생성을 필요로 합니다.
AGP 디바이스 노드의 생성은 MAKEDEV(8) 을 /dev 디렉토리에서 실행합니다.

# cd /dev
# sh MAKEDEV agpgart

    주의 : FreeBSD 5.X 나 이후 버전은 devfs(5)을 사용하여 디바이스노드에 위시킬것이어서, MAKEDEV(8)작업은 필요하지 않습니다.

이러한 설정작업에 따라서 어떤 종류의 그래픽카드도 인식가능합니다.

NOTE :

언급한 시스템에 agp(4)드라이버가 컴파일된 커널에 없다면 kldload(8)과 함께 모듈을 로드해보기 바랍니다.
이 드라이버는 /boot/loader.conf. 에서 사용되거나 혹은 컴파일되어 커널 부팅시에 같이 로드될 것입니다.

만약 XFree86 4.1.0(혹은 이후버전)을 사용고 fbPictureInit 과 같은 메시지를 보게되면, 다음의 'i180'드라이버를 X11설정파일에 추가하시기 바랍니다. :

         Option "NoDDC"

2012-09-09

FreeBSD] x11에서 폰트사용



3.1 Type1폰트

X11에 기본으로 포함된 폰트들은 전형적인 출판프로그램의 것보다 덜하다.  큰폰트는 덜 전문적으로 제작된것처럼 보이고, 적은폰트들은 넷스케이프에서는 거의 알아볼 수 없는 것들도 있다.

어쨋든 몇몇은 공짜이고, 고품질은 Type1(PostScript)폰트를 사용할 수 있다.

일예로 URW폰트컬렉션(x11-fonts/urwfonts)은 고품질의 표준 Type1폰트(Time Roman, Helvetica, Palatino등)를 포함하고 있다.

Freefont컬렉션(x11-fonts/freefonts) 는 많은 폰트를 포함하고 있지만 대부분은 Gimp와 같은 그래픽용 소프트웨어에서 사용될 것이며, 화면용 폰트로는 완전하지가 않다.

게다가 X11에서는 최소한은 노력으로 트루타입폰트를 사용할 수 있다.

자세한것은 X(7) 메뉴얼페이지를 보거나 핸드북의 트루타입폰트 섹션을 참고하세요.

포트컬렉션에서 Type1폰트 컬랙션을 설치하려면 다음의 명령을 입력하세요...


# cd /usr/ports/x11-fonts/urwfonts
# make install clean


freefont나 다른 컬렉션도 마찬가지이다. X서버는 이러한 폰트들을 검출해내고, X서버 /etc/X11/(Xorg:xorg.conf, XFree86:XF86Config) 설정파일에 아래 정보를 추가한다.


 FontPath "/usr/X11R6/lib/X11/fonts/URW/"


또는  , X 세션 실행시에 다음의 명령라인을 입력한다.


% xset fp /usr/X11R6/lib/X11/fonts/URW
% xset fp rehash


이 방법은 X세션이 닫히면 잃어버리며, 그래서 시작파일(~/.xinitrc : 일반 startx세션, ~/.xsession : xdm같은 그래픽로긴관리자를 통해 로긴할경우)에 추가를 해놓는다.

3번째는 새로운 /usr/X11R6/etc/fonts/local.conf 파일에 다음섹션의 anti-aliasing을 사용하는 법이다.


3.2 트루타입폰트

XFree86 4.X 와 Xorg는 트루타입폰트를 지워하도록 되어있다.

이는 두개의 다른 모듈이 하나의 기능으로 가능하도록 할 수 있게 되어있다. freetype모듈은 이 예제에서 사용되어진다. 왜냐면 이것이 백-엔드에서 다른 폰트렌더링에 더 알맞기 때문이다.

freetype폰트 모듈은 "/etc/X11/xorg.conf " 나 "/etc/X11/XF86Config" 파일의 'Module' 섹션에 다음의 라인을 추가하면 된다.

    Load       "freetype"


XFree86 3.3.x 에서는 트루타입폰트서버는 필요에 의해서 분리했다. Xfstt는 일반적으로 앞의 목적을 위해서 사용되었다. Xfstt를 설치하기 위해서는 x11-servers/Xfstt 포트를 설치하면 간단하게 된다.

트루타입폰트를 위한 디렉토리, 예를 들면 /usr/X11R6/lib/X11/fonts/TrueType 을 만들고, 현재 디렉토리에 있는 모든 트루타입폰트를 복사한다. 트루타입폰트는 매킨토시에서 직접가지고 올 수는 없고,  UNIX/MS-DOS/Windows 포맷만이 X11에서 사용될 수 있다. 한번 복사한 후, "ttmkfdir"을 사용해서 fonts.dir 파일을 생성하면,  X 폰트 생성기(렌더러)가 이 새로운 파일들을 알아서 설치할 것이다.

ttmkfdir은 FreeBSD x11-fonts/ttmkfdir 같은 포트컬렉션으로부터 얻을 수 있다.


# cd /usr/X11R6/lib/X11/fonts/TrueType
# ttmkdir > fonts.dir


다음으로 TrueType 디렉토리에 폰트경로를 추가한다.
이것은 아래의 방법과 같이 하면 되고, 이 방법은 위에 기술된 Type1 과 같은 방법이다.


% xset fp /usr/X11R6/lib/X11/fonts/TrueType
% xset fp rehash


또는 xorg.conf 나 XF86Config 파일에  FontPath 줄을 추가한다.


이렇게 설치된 트루타입폰트들은 넷스케이프, Gimp, StarOffice 또는 다른 모든 X프로그램에서 인식이 될것이다.  
극히 작은 폰트나 극히 큰 폰트들도 이전보다 나아보일것이다.



3.3 Anti-Aliased Fonts (안티알리아스드 폰트)

Joe Marcus Clarke 가 갱신함

안티알리아싱은 XFree86 4.0.2 때부터 X11에서 사용할 수 있게 되었다.
하여간 폰트 설정은 XFree86 4.3.0 이 소개되기 전까지는 귀찮은 작업이었다.
XFree86 4.3.0 이 나오면서부터 X11의 모든 폰트가  /usr/X11R6/lib/X11/fonts/ 와 ~/.fonts 디렉토리에 있게되고 Xft-aware 프로그램들이 안티알리아싱을 자동적으로 사용가능하게 되었다.

모든 프로그램이 Xft-aware적인 것은 아니지만, 많은 것들이 Xft의 지원을 받게 되었다.   Xft-aware적인 것의 예를 들면 Qt 2.3 과 그이상버전(KDE 데스크탑을 위한 툴킷), GTK 2.0가 그이상버전(GNOME 데스크탑을 위한 툴킷)과 Mozilla 1.2 이상버전들이다.

폰트를 조절하거나 또는 안티알리아싱 속성을 설정하기에 따라서 안티알리아스드되기도 하고,  /usr/X11R6/etc/fonts/local.conf파일을 생성(존재하는것을 수정) 해서 만들기도 한다.

Xft폰트시스템의 더 나은 방법은 이 파일을 튜닝할 수 있다는 것이다.
이 섹션은 단지 약간의 가능성만  보여준다. 더 자세한 사항은 fonts-conf(5)를 보기 바랍니다.

이 파일은 아래와 같은 XML포맷으로 되어 있고  DOCTYPE로 정의된 XML헤더를 따르고 있으며,  <fontconfig>라는 태그를 사용한다.


      <?xml version="1.0"?>

      <!DOCTYPE fontconfig SYSTEM "fonts.dtd">

      <fontconfig>



이전 상태에 따라,/usr/X11R6/lib/X11/fonts/과 처럼 ~/.fonts/ 에 있는 모든 폰트는 Xft-aware 프로그램에서 사용가능하게 만들어졌다.
만약 이런 두개의 디렉토리 트리외에 다른 디렉토리를 더하고자 하면, 다음과 같은 라인을 /usr/X11R6/etc/fonts/local.conf 파일에 추가하면 된다.



     <dir>/path/to/my/fonts</dir>



새 폰트를 추가하거나 새폰트 디렉토리를 추가한 후,  아래의 명령으로 폰트 캐시를 리빌드해야한다.


# fc-cache -f


안티 알리아싱은 경계를 약간 흐리게 만들어,  아주 작은 텍스트와 큰 텍스트의 계단현상을 제거해줌으로 해서 가독성을 높여주지만, 일반 텍스트에 적용하면 눈의 피로의 원인이 될 수 있습니다.

안티알리아싱을 14포인보다 작은 폰트사이즈는 제외하고자하면 애래의 문장을 추가하세요.



        <match target="font">
            <test name="size" compare="less">
                <double>14</double>
            </test>
            <edit name="antialias" mode="assign">
                <bool>false</bool>
            </edit>
        </match>
        <match target="font">
            <test name="pixelsize" compare="less" qual="any">
                <double>14</double>
            </test>
            <edit mode="assign" name="antialias">
                <bool>false</bool>
            </edit>
        </match>



어떤 모노스페이스된 폰트의 간격은 안티알리아싱에 부합하지 않을수도 있다.

특히 KDE에서...  이런 문제를 해결하는 것들 중 하나는 폰트의 간격을 100으로 고정하는것이다.

그 예는 아래에 있다.



       <match target="pattern" name="family">
           <test qual="any" name="family">
               <string>fixed</string>
           </test>
           <edit name="family" mode="assign">
               <string>mono</string>
           </edit>
        </match>
        <match target="pattern" name="family">
            <test qual="any" name="family">
                <string>console</string>
            </test>
            <edit name="family" mode="assign">
                <string>mono</string>
            </edit>
        </match>




 아래의것도 첨부.



          <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>mono</string>
             </test>
             <edit name="spacing" mode="assign">
                 <int>100</int>
             </edit>
         </match>





Helvetica같은 폰트는 안티알리아싱을 할때 문제가 발생할 수 있다. 이런 문제는  폰트가 수직으로 반절이 잘려진것처럼 보인다는 것이다. 더욱 안좋은 것은 Mozilla와 같은 프로그램과 충돌이 발행하는 원인이 될 수 있다는 점이랍니다.  이현상을 피하기 위해, local.conf 파일에 아래의 사항을 추가하는것을 고려해봄직합니다.




         <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>Helvetica</string>
             </test>
             <edit name="family" mode="assign">
                 <string>sans-serif</string>
             </edit>
         </match>  




local.conf 파일의 수정을 마친후 파일의 끝에 </fontconfig> 태그를 추가해야만 합니다.  이것이 없다면 수정 사항이 무시되니까요....


X11에 설정되어 있는 기본폰트는 안티알리아싱 적용시 적절해 보이지 않는다.  
x11-fonts/bitstream-vera 포트에 있는것이 기본 폰트보다 더 많이 찾을 수 있다.

이 포트는 만약 없다면 /usr/X11R6/etc/fonts/local.conf 파일을 설치할 것이다.
위 파일이 존재한다면, 포트는 /usr/X11R6/etc/fonts/local.conf-vera 파일을 생성한다.

 /usr/X11R6/etc/fonts/local.conf 파일에  /usr/X11R6/etc/fonts/local.conf-vera 의 내용을 합하면, 비트스트림폰트는 X11의 Serif, Sans Serif, Monospaced 폰트를 자동으로 대체하게 될것이다.

마지막으로, 사용자들은 자신의 고유의 설정을 자신들의 .fonts.conf 파일을 통해 추가할 수 있다.

이때 할 일은 각 유저는 ~/.fonts.conf 파일을 생성하기만 하면 된다. 이 파일도 XML형식을 가진다.


마지막 사항: LCD인 경우 sub-pixel 샘플링을 요구할 지도 모른다.

이는 기본적으로 (수평으로분리된) Red, Green, Blue 색상요소들의 향상된 분리(?)로 , 수평주사율을 의미한다.

그 결과물은 드라마틱하다.  이를 가능하게 하려면, local.conf 파일에 다음의 문장을 넣어준다.



          <match target="font">
             <test qual="all" name="rgba">
                 <const>unknown</const>
             </test>
             <edit name="rgba" mode="assign">
                 <const>rgb</const>
             </edit>
         </match>




이렇게 하면 안티알이아싱을 X 서버가 시작되면서 사용할 수 있게 된다.