수세 리눅스에서 VESA framebuffer driver사용하기

고객지원 지식기반 (cg_framebuffer6_3)
적용 범위

SuSE Linux: 버전 이래로 6.3
Kernel: 버전 이래로 2.2.0

Request:

  • 제 비디오 카드가 XFree86의 지원을 받지 않지만 그래도 X 윈도우즈 그래픽 환경을 가지고 싶습니다.
  • 예를 들어, 160x64 텍스트 모드를 가지고 싶습니다.
  • 그래서 시스템 시작후 귀여운 펭귄 부트로그를 보고 싶습니다.^^
  • Idea:

    리눅스 커넬이 32비트 보호 모드로 변경되기 전에 BIOS 콜을 해서 원하는 그래픽 비디오 모드로 바꾼다는 것입니다. 그래서 리눅스가 실행되는 동안에는 이 그래픽 모드가 변화지 않은 채 그대로 남는다는 것입니다.

    Prerequisites

    비디오 카드가 VESA-BIOS 확장 버전 2.0(VBE 2.0 이상)에 호환성을 가지고 있어야 합니 다.

    Procedure:

  • 프레임버퍼 콘솔을 사용하기 위해서는 커넬이 소위 말하는 프레임버퍼 장치를 지원해 주어 야 합니다. 이것은 커넬을 다시 컴파일시켜야 한다는 말이 됩니다. 프레임버퍼 X 서버(비디 오 어댑터가 다른 방법으로 지원되지 않을 때 필요합니다.)를 사용하고 싶다면 해당 CD에 있는 패키지를 또한 인스톨해야 합니다.
  • 만약 수세 리눅스 6.3 이상을 가지고 있다면 VESA 프레임버퍼 지원에 대해서 표준 커넬에 이미 컴파일 되어 있기 때문에 커넬을 재컴파일시켜 줄 필요가 없습니다.
  • The Procedure in details

  • 야스트에서 시리즈 xsrv에 있는 xfbdev 패키지를 인스톨합니다.
  • 다음 테이블을 이용해서 요구된 해상도와 색상을 선택합니다. 시스템을 재부팅하고 부트 파 라미터 "vga=x"를 입력합니다. 여기어세 x 변수값은 아래의 테이블에서 선택한 값으로 하십시오.
                                Resoultion in pixel
    Color depth      | 640x480  800x600  1024x768 1280x1024
    -----------------+-------------------------------------
    256        (8bit)|  769      771       773      775
    32000     (15bit)|  784      787       790      793
    65000     (16bit)|  785      788       791      794
    16.7 Mill.(24bit)|  786      789       792      795
    
    예를 들어, 16비트 색상의 1024x768 해상도를 원하는 경우에는 다음과 같이 LILO 부트 파 라미터를 입력시켜야 합니다.
    vga=791
    
    자신이 가지고 있는 비디오 카드가 위에 나와 있는 모든 해상도와 색상을 지원하지 않을 수 도 있다는 것을 명심하십시오.
  • 리눅스 커넬이 직접적으로 선택된 비디오 모드로 변경되게 됩니다. 그리고 스크린 상단 왼 쪽 구석에 귀여운 팽귄 로고가 나타나게 됩니다.
  • Configuring the framebuffer device with SaX

  • 이제 SaX를 가지고 환경설정을 할 차례입니다. SaX는 다음 명령으로 실행시킬 수 있습니 다.
    sax -s vga16
    
  • "!!!Generic Server Selection!!!"을 자신의 비디오 카드로 선택하고 "FRAMEBUFFER"를 모 델 타입으로 지정하십시오. 모니터 세팅을 결정해야 될 때에는 리눅스 시작시 지정한 해상 도와 색상 파라미터 변수값으로 하시면 됩니다.
  • 이제 X 서버를 테스트하는 동안 프레임버퍼가 정확한 해상도에서 활성화 되어야 합니다.
  • 만약 이것이 성공적이지 못하다면 다음과 같이 매뉴얼 방식으로 직접 환경 설정을 해 줍니 다.
  • Editing XF86Config manually

  • /etc/XF86Config 파일이 이미 존재하고 있다면 다음 명령으로 저장되어야 합니다.
    mv /etc/XF86Config /etc/XF86Config.backup
    
    그런 다음 내용으로 새로운 /etc/XF86Config 파일을 만들어 줍니다.
  • # Start of file /etc/XF86Config
    Section "Files"
      RgbPath	"/usr/X11R6/lib/X11/rgb"
      FontPath	"/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
      FontPath	"/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
      FontPath	"/usr/X11R6/lib/X11/fonts/Type1"
      FontPath	"/usr/X11R6/lib/X11/fonts/URW"
      FontPath	"/usr/X11R6/lib/X11/fonts/Speedo"
      FontPath	"/usr/X11R6/lib/X11/fonts/misc"
      FontPath	"/usr/X11R6/lib/X11/fonts/75dpi"
      FontPath	"/usr/X11R6/lib/X11/fonts/100dpi"
      FontPath	"/usr/X11R6/lib/X11/fonts/misc:unscaled"
    EndSection
    
    Section "ServerFlags"
      AllowMouseOpenFail
    EndSection
    
    Section "Module"
    EndSection
    
    # This section is no longer supported
    # See a template below
    # Section "XInput"
    # EndSection
    
    Section "Keyboard"
      Protocol	"Standard"
      XkbRules	"xfree86"
      XkbModel	"pc104"
      XkbLayout	"us"
      XkbVariant	"nodeadkeys"
    EndSection
    
    Section "Pointer"
      Protocol		"PS/2"
      Device		"/dev/psaux"
      SampleRate		60
      BaudRate		1200
    EndSection
    
    Section "Monitor"	
      Identifier	"Primary-Monitor"
    EndSection
    
    Section "Device"
      Identifier	"fbdev"
      VendorName	"x"
      BoardName	"y"
    EndSection
    
    Section "Screen"  
      Driver	"fbdev"
      Device	"fbdev"
      Monitor	"Primary-Monitor"
      SubSection "Display"
        Depth	32
        Modes	"default" 
      EndSubSection
      SubSection "Display"
        Depth	24
        Modes	"default" 
      EndSubSection
      SubSection "Display"
        Depth	16
        Modes	"default" 
      EndSubSection
      SubSection "Display"
        Depth	15
        Modes	"default" 
      EndSubSection
      SubSection "Display"
        Depth	8
        Modes	"default" 
      EndSubSection
    EndSection
    # Ende of file /etc/XF86Config
    
    위에 나와 있는 환경 설정은 표준 PC 키보드와 PS/2 마우스의 사용을 위해서 준비된 것입 니다. 만약 다른 종류의 마우스를 사용한다면 위 파일의 "Pointer" 섹션을 적절하게 채워야 합니다. 사용 가능한 마우스 종류에 대한 사항은 해당 맨 페이지(man XF86Config)를 참조 하시기 바랍니다.
  • 필요한 프레임버퍼 장치를 생성시킵니다. 이것을 위해 다음 명령어를 입력시킵니다.
    for i in 0 1  2 3 4 5 6  7; do z=$(expr $i \*  32) ; mknod /dev/fb${i} c  29 ${z} ; done
    
  • 이제 다음 명령으로 프레임버퍼 X 서버를 시작해 봅니다.
    XF86_FBDev -bpp 16
    
    "-bpp 16" 옵션은 16비트 색상을 선택한다는 것을 의미합니다. 이 옵션으로 선택된 색상은 리눅스를 시작할 때 선택된 vga 옵션과 같아야 합니다. 그렇지 않으면 X 서버가 제대로 실행되지 않고 "invalid argument"라는 에러 메시지가 나오게 됩니다.

    X 서버를 성공적으로 시작하고 나면 스크린 중앙에 X 표시가 나오면서 전형적인 X 백그라운드가 나타나게 됩니다. 이제 중앙에 있는 X 표시를 이동시켜 보십시오. 모든 것이 정상적으로 작동되면 ALT+CTRL+BACKSPACE 조합키로 X 서버의 실행을 종료시킵니다.

  • 다음 링크를 생성해 줍니다.
    ln -s /usr/X11R6/bin/XF86_FBDev /var/X11R6/bin/X
    
  • 다음 명령으로 X를 시작합니다.
    startx -- -bpp 16
    
    "-bpp" 옵션은 원하는 색상을 말합니다.
  • 모든 것이 정상적으로 작동되면 "vga" 파라미터를 /etc/lilo.conf 파일에 입력시킬 수 있습니다. 이것을 위해 "vga" 환경 설정 옵션을을 사용해 야 하며 변수 값은 위에서 설정한 값과 같도록 해야 합니다. 이렇게 변경을 해 주고 나서는 반드시 lilo를 다시 실행시켜 주시기 바랍니다.
    키워드: FRAMEBUFFER, FBDEV, XF86_FBDEV, VIDEOCARD, X-WINDOW

    카테고리:

    SDB-cg_framebuffer6_3, Copyright SuSE Linux AG, Nrnberg, Germany - 버전: 19. Feb 2001
    SuSE Linux AG - 최근에 만들어진 : 19. Feb 2001 에 의해 cg (sdb_gen 1.40.0)