|
发表于 2004-8-8 13:35:18
|
显示全部楼层
[code:1]How to use it?
==============
If you are running your system on hardware platform where vm86 is supported
(this is 32-bit x86 only as of the time of writing this document), you can
either compile vesafb into the kernel or use it as a module. The graphic mode
you want to use is in both cases specified using the standard modedb format.
If your system doesn't support vm86 calls yet (all 64-bit platforms), things
get a little more tricky. Since on such systems you can't do BIOS calls from
protected mode in which kernel runs, you have to decide at boot time whenever
you want to run in text or in graphics mode. Swithcing mode later on is
impossible. Switching modes is done using the vga=... boot parameter. Read
Documentation/svga.txt for details. Below is a more detailed description of
what to do on systems with old-style mode switching.
You should compile in both vgacon (for text mode) and vesafb (for graphics mode).
Which of them takes over the console depends on whenever the specified mode is
text or graphics.
The graphic modes are NOT in the list which you get if you boot with vga=ask
and hit return. The mode you wish to use is derived from the VESA mode number.
Here are those VESA mode numbers:
| 640x480 800x600 1024x768 1280x1024
----+-------------------------------------
256 | 0x101 0x103 0x105 0x107
32k | 0x110 0x113 0x116 0x119
64k | 0x111 0x114 0x117 0x11A
16M | 0x112 0x115 0x118 0x11B
The video mode number of the Linux kernel is the VESA mode number plus 0x200.
Linux_kernel_mode_number = VESA_mode_number + 0x200
So the table for the Kernel mode numbers are:
| 640x480 800x600 1024x768 1280x1024
----+-------------------------------------
256 | 0x301 0x303 0x305 0x307
32k | 0x310 0x313 0x316 0x319
64k | 0x311 0x314 0x317 0x31A
16M | 0x312 0x315 0x318 0x31B
To enable one of those modes you have to specify "vga=ask" in the lilo.conf
file and rerun LILO. Then you can type in the desired mode at the "vga=ask"
prompt. For example if you like to use 1024x768x256 colors you have to say
"305" at this prompt.
If this does not work, this might be because your BIOS does not support
linear framebuffers or because it does not support this mode at all.
Even if your board does, it might be the BIOS which does not. VESA BIOS
Extensions v2.0 are required, 1.2 is NOT sufficient. You will get a
"bad mode number" message if something goes wrong.
1. Note: LILO cannot handle hex, for booting directly with
"vga=mode-number" you have to transform the numbers to decimal.
2. Note: Some newer versions of LILO appear to work with those hex values,
if you set the 0x in front of the numbers.[/code:1]
title Fedora Core (2.6.7-1.47
root (hd0,9)
kernel /boot/vmlinuz-2.6.7-1.478 ro root=/dev/hda10 rhgb vga=0x317 append="video=vesa:ywrap,mtrr"
initrd /boot/initrd-2.6.7-1.478.img |
|