· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Vesafb

Vesafb mini-HOWTO

Vesafb mini-HOWTO

Alex Buell, alex.buell@tahallah.demon.co.uk

v0.5, 2 August 1998번역: 이국현, errai@hitel.net1999년 2월 20일
이 문서는 인텔플렛폼에서 돌아가는 VESA 2.0 을 지원하는 그래픽 카드가 리눅스에서 어떻게 vesafb장치를 사용할 수 있는지를 설명 하고 있습니다.

1. 공헌하신분들

vesafb HOWTO를 만들어나가는데 도움을 주신 아래명단의 분들께 감사드립니다.

  • Jeff Noxon jeff@planetfall.com
  • Francis Devereux f.devereux@cs.ucl.ac.uk
  • Andreas Ehliar ehliar@futurniture.se
  • Martin McCarthy marty@ehabitat.demon.co.uk
  • Simon Kenyon simon@koala.ie
  • David Ford david@kalifornia.com
  • Chris Black cblack@cmpteam4.unil.ch
  • N Becker nbecker@fred.net
  • Bob Tracy rct@gherkin.sa.wlk.com
  • Marius Hjelle marius.hjelle@roman.uib.no
  • Aaron Tiensivu tiensivu@pilot.msu.edu

그리고 물론 프레임버퍼 장치의 저자분들께도 감사드립니다.

  • Gerd Knorr kraxel@cs.tu-berlin.de
  • Geert Uytterhoeven Geert.Uytterhoeven@cs.kuleuven.ac.be
  • Martin Mares mj@ucw.cz
  • 기타 여러 의견을 내주셨던 분들 :o)

2. Vesafb란 무엇인가?

Vesafb는 VESA2.0을 지원하는 그래픽카드와 함께 작동하는 인텔기반의 프레임버퍼 드라이버로써 커널에 있는 프레임버퍼 장치와 밀접한 관련이 있습니다.

vesafb는 여러분의 인텔플렛폼에서 비트맵 텍스트 콘솔을 이용해 그래픽모드를 사용할수 있게 해주는 디스플레이장치 입니다.또한 로고를 볼수있게 해줄수도 있습니다만, 이점이 대다수의 사람들이 vesafb를 사용하길 원하는 기본적인 이유인것 같습니다. :o)

불행하게도 VESA 1.2카드 들은 프레임버퍼링을 이용할수 없기 때문에 vesafb를 성공적으로 사용할수가 없습니다. 아마 누군가 이카드들을 위해 vesafb12 장치를 코딩하겠지만, 귀중한 커널 메모리를 잡아먹게 될겁니다.:o(

그러나 여러분의 VESA1.2카드를 위해 VESA2.0의 범위에 덧붙여진 잠재적인 작동법이 있습니다. 도스상에서 작동시킬수 있는 TSR 타입의 프로그램을 다운받는 것입니다. 그리고 loadlin을 이용해서 적절한 그래픽콘솔모드로 카드를 조정하는걸 도울수 있습니다.참고적으로 이것은 항상 작동하진 않을것입니다. 한가지 예로 VLB 54xx시리즈들과 같은 Cirrus Logic카드들은 프레임버퍼링을 위해 메모리주소의 범위가 mapped됩니다.(15MB-16MB안에서) 이것은 32MB보다 더 많은 메모리를 가진 시스템에서는 성공적으로 작동되었습니다.[ 32MB보다 작은 메모리에서 작동할수 있는 방법이 여기 있습니다.만약 여러분꼐서 15MB-16MB의 범위를 메모리 홀에서 떼어버리는 BIOS옵션을 가지고 계시다면 그것은 작동할 것입니다만, 리눅스는 이것을 지원하지 못합니다.] 여러분께서 위의 옵션을 이용해서 실험해보고자 했다면 UNIVBE같은 TSR타입의 많은 프로그램들을 인터넷을 통해 찾을수 있으실 것입니다.

3. 프레임버퍼 장치란 무엇인가?

프레임버퍼 장치는 그래픽 하드웨어를 위해 분리된 것입니다.그것은 어떤비디오하드웨어의 프레임버퍼를 말하기도 하고, 꽤 명백한 장치에 의해 그래픽 하드웨어에 접근하기 위해 허락된 응용프로그램을 말하기도 합니다. 그래서 소프트웨어는 저수준장치에 대해 어떤것도 알필요가 없습니다.[ 리눅스 커널소스안에 있는 Geert Uytterhoeven 의 framebuffer.txt에서 얻었습니다.]

4. 어떻게 vesafb 드라이버들을 작동시킬수 있는가?

[참고: 이 정보는 P75+, ATI VideoExpress 2MB그래픽카드 그리고 리눅스커널버젼 2.1.112에서 제가 얻어낸 정보들을 기초로 쓰여졌습니다. 저에게 정보나 다른 그래픽 카드들을 가진 특별한 사례를 email로 보내주시는것은 자유입니다.]

여러분께서는 menuconfig를 사용하신다고 가정하고 설명을 드리겠습니다.

우선 Code Maturity Level menu 로 가신후 development and/or incomplete drivers부분을 사용할수 있도록 해주십시오.[ 이부분은 차후에 나오는 커널에서는 변경될것 같습니다. 만약 변경된다면 이 HOWTO도 개정될 것입니다.]

그다음 Console Drivers menu로 가셔서 다음의 부분을 모두 사용할수있도록 체크해주십시오.

  • VGA Text Console
  • Video Selection Support
  • Support for frame buffer devices (experimental)
  • VESA VGA Graphic console
  • Advanced Low Level Drivers
  • Select Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp and 32bpp packed
  • pixel drivers
  • VGA character/attributes support

VGA Chipset Support (text only) -vgafb- 이것은 위의 리스트의 부분적으로 이용될수 있지만 제거되는 중입니다. 왜냐하면 현재 가치가 없고, 더이상 지원하지 않기 때문입니다. 결과적으로 제거될것입니다. 대신 VGA Text Console을 이용하십시오.

Mac variable bpp packed pixel support는 사용할수 없습니다. [커널 2.1.111에서는 만약 Advanced Low Level 드라이버를 선택했다면 사용할수 있는것처럼 보입니다.]

명심해야 할점은 모듈로는 동작하지 않는다는 점입니다. [ 확실하진 않지만 모듈로 만드는것이 가능하다면 저를 일깨워 주십시오. ]

이제 커널을 다시 만들었다면 /etc/lilo.conf에데가 VGA=ASK 란 부분을 첨가하도록 고쳐주십시오. 그다음에 lilo를 실행시킵니다. 이부분은 여러분께서 희망하는 모드를 선택하도록 하기 위함입니다.

커널을 리부팅 시킨다음 간단한 테스트를 해봅시다. VGA prompt에다가 0301이라고 타이핑해 넣습니다.(이것은 640x480 @ 256 으로 작동시켜줍니다.) 그후 여러분의 눈에 작고 귀여운 펭귄 로고가 보인다면 성공한 것입니다.

잘 작동하는것을 보실수 있으신 후에는 다양한 VESA 모드(아래쪽참고) 를 탐험하실수 있습니다. 그리고 가장 좋아하는 모드를 결정하십시오. 그다음에 lilo.conf화일 안에 VGA=어쩌고 라고 써넣어줘야 합니다. 여러분께서 가장 맘에 드는것을 고르신 후에는 아래표에 보이는숫자와 동일한 십진법의 숫자를 찾으십시오. ( 예를 들어 1280x1024 @ 256이라면 "VGA=775"라고 적어주는것입니다.) 그리고 lilo를 다시 실행시킵니다. 그러면 다 끝났습니다. 이부분에 대한 더 자세한 관련문서는 LoadLin/LILO HOWTO들을 읽어보십시오.

5. 나에게 유용한 VESA모드는 무엇인가?

이부분은 여러분 시스템의 VESA 2.0지원 카드들의 타입과 비디오메모리의 양에 달려있습니다. 여러분의 그래픽카드가 최상으로 돌아갈수 있는 모드를 테스트하는것이 제일 중요할것입니다.

다음 표의 모드넘버 들은 VGA 프롬프트 에다가 입력하실수 있습니다. 실은 이 숫자들은 표를 참조하기 쉽게 하기 위해 0x200을 더한 것들입니다.

Colours   640x480 800x600 1024x768 1280x1024 1600x1200
--------+---------------------------------------------
256     |  0301    0303     0305     0307      031C
32,768  |  0310    0313     0316     0319      031D
65,536  |  0311    0314     0317     031A      031E
16.8M   |  0312    0315     0318     031B      031F

여기는 위의 것도 같은 십진수로된 표입니다.

Colours   640x480 800x600 1024x768 1280x1024 1600x1200
--------+---------------------------------------------
256     |   769     771      773      775       796
32,768  |   784     787      790      793       797
65,536  |   785     788      791      794       798
16.8M   |   786     789      792      795       799

[ 만약 여러분께서 1152x900? 과 같은 더 추가된 모드들을 위해 추가된 03xx넘버들을 저에게 공급해 준다면 필자는 정말 행복할 것입니다. ]

6. Vesafb를 위한 X11 드라이버 가 있는가?

그렇고 말구요, 있습니다.만약 어떤 이유에서든지 현재여러분의 X11 드라이버가 vesafb를 좋아하지 않는다면 XF86_FBdev 드라이버가 필요할것입니다. http://www.xfree86.org로 달려가십시오, 그다음 X332servonly.tgz를 다운받으신후 패키지를 풀고 xc/conf/cf/xf86site.def화일을 에디트 해주신후 #define for XF68FBDevServer부분을 주석처리시키지 않게 해주십시오. m68k 레퍼런스에 대해서는 걱정하지 마십시오 인텔 플렛폼은 지원해 줍니다. 그다음 모든것들을 만드십시오 - 큰 소스인것만큼 시간이 무척많이 걸릴것입니다. (역자주: 역자의경우 펜II333에서 약 30분정도 걸렸음.)

미리 컴파일된 XF86_FBdev 바이너리가 아직은 얻을 수 없지만, 데비안에서 이에 대한 작업을 하고 있을 거라고 알고 있습니다. 그리고 그들은 libc5/glibc2 두가지 모두에 대한 바이너리를 만들 수 있을 것입니다.

X11에서 vesafb의 기능을 이용가능한 확실한 그래픽 카드들이 작동하지않는 이유에 관한 보고가 있었습니다. 만약 이러한 경우가 발생한다면 X11을 위한 새로운 XF86_FBdev 드라이버로 시도해 보십시오.

vesafb장치는 현재 X11에서 지원하지 않고 있는 최신그래픽카드들이 X11에서 돌아갈수 있도록 도울수 있습니다. 예를 들어 MGA g200같은카드. (역자 주 : 99년2월까지도 지원이 안되고 있는 S3 trio 3D등의 카드포함)

바라건대 미래에는 그래픽카드에 관한 X11의 문제들이 고쳐질 것입니다.

7. vesafb를 모듈로 만들수 있는가?

커널 버젼 2.1.112에서 vesafb는 모듈화 할수없습니다. 시간이 걸리겠지만 vesafb개발자들이 모듈화에 대해 소스를 변경하기로 결정할지도 모릅니다. 하지만 모듈화가 가능하다하더라도 여러분은 vesafb가 'modprobed'되어지기 까지는 화면에 어떤 출력물도 볼수없을 것입니다. 이런 부팅문제들과 같은 사례를 보더라도 vesafb는 커널안에 놔두는 쪽이 훨씬 현명할것 같습니다.

8. 잡다한 이야기들/Caveats

이것은 현재 오직 리눅스 커널 2.1.112를 위해 쓰여졌습니다. 이 HOWTO문서는 커널이 발전진보함에 따라 지속적으로 업데이트 될것입니다. 그리고 정보나 이야기들을 저자에게 email을 보내는것은 자유입니다. :o)

스크롤백 버퍼링은 아직 작동하지 않습니다. 아마도 미래에는 고쳐져서 발표되겠지요.




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