Next: 多内码支持 Up: 使用指南 Previous: 使用指南

## 设置显示模式

要在控制台上显示中文，首先要使控制台进入图形状态。zhcon目前支持FrameBuffer,libggi,vga三种图形驱动。zhcon在装载时会检测是否存在FrameBuffer图形驱动，如果没有，则直接对VGA进行控制，进入640X480的16色图形模式。这样，甚至不需要重新编译内核，也可以装载汉字系统。

- FrameBuffer: FrameBuffer可以译作“帧缓冲”，这是一种独立于硬件的抽象图形设备。 FrameBuffer的优点在于其高度的可移植性，易使用性上稳定性。 fbdrv是Linux kernel很早就提供的图形驱动，它甚至可以作为X Window的底层驱动，不过有些Linux的版本并没有把它编译到核心中，或是没有缺省的配置和使用它。简单地修改/etc/lilo.cfg，执行lilo -v，重启动计算机如果您幸运的话，就可以看到可爱的企鹅图标了。 fbdrv可以支持很多老的显卡，如VGA，EGA，大力神单显等，也支持最新的VESA 2.0标准。所以，尽量选用fbdrv，可以得到最佳、最快的显示，使zhcon可以运行在640X480X8bpp到1024x768x32bpp，也就是说可以充分发挥显卡和显示屏的威力。使用Linux内核的FrameBuffer驱动（vesafb），可以轻松支持到1024X768X32bpp以上的分辩率。 FrameBuffer是推荐使用的驱动方式。 可以在系统启动时向kernel传送vga=mode-number的参数来激活FrameBuffer设备，如： lilo:linux vga=305 将会启动1024X768X8bpp模式。 下表列出了不同色彩模式和相应的参数：

  色深 | 640x400 | 640x480 | 800x600 | 1024x768 | 1280x1024 | 1600x1200
  4bits | ? | ? | 0x302 | ? | ? | ?
  8bits | 0x300 | 0x301 | 0x303 | 0x305 | 0x307 | 0x31C
  15bits | ? | 0x310 | 0x313 | 0x316 | 0x319 | 0x31D
  16bits | ? | 0x311 | 0x314 | 0x317 | 0x31A | 0x31E
  24bits | ? | 0x312 | 0x315 | 0x318 | 0x31B | 0x31F
  32bits | ? | ? | ? | ? | ? | ?

  有关FrameBuffer更详细的信息请参阅：/usr/src/linux/Documentation/fb/vesafb.txt 和＜＜Framebuffer HOWTO＞＞
- libggi:
  libggi是一个跨平台的绘图库。 由于fbdrv支持的显示类型很多，驱动方式又不统一，zhcon只内建了最常用的4bpp到32bpp的VESA 2.0支持，其它的显示类型则透过libggi的统一图形接口提供支持，所以zhcon实际上可以支持更多的fbdrv，只要是libggi支持的。 在Linux上，libggi是通过调用FrameBuffer或svgalib来完成图形操作的，因此速度比较慢。 但在某些不支持FrameBuffer和vga的系统上可以通过libggi来完成绘图操作。 要使用libggi，需要设置GGI_DISPLAY环境变量，例如： 在.bash_profile中加入export GGI_DISPLAY=display-fbdev:-noinput 将使用libggi提供的接口来完成图形输出（使用FrameBuffer）。更详细的信息请参阅libggi的文档。
- vga:
  如果您的内核并没有编译进对FrameBuffer的支持，那么可以使用内建的vga驱动来使显目工作在640X480X16色的模式下。因为vga驱动是直接对显卡上的 寄存器操作，所以这种方式的移植性很差。

系统启动时会按以下顺序来选择图形驱动：libggi（如果设置了环境变量GGI_DISPLAY）,framebuffer,vga.

Next: 多内码支持 Up: 使用指南 Previous: 使用指南