个人工具

“UbuntuHelp:ConsoleFramebuffer/zh”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
 
(未显示同一用户的11个中间版本)
第1行: 第1行:
{{Translation}} {{From|https://help.ubuntu.com/community/ConsoleFramebuffer}} {{Languages|UbuntuHelp:ConsoleFramebuffer}} {{Translator|杏林小草}}
+
{{Copyedit translation}} {{From|https://help.ubuntu.com/community/ConsoleFramebuffer}} {{Languages|UbuntuHelp:ConsoleFramebuffer}} {{Translator|杏林小草}}
  
 
== 序 ==
 
== 序 ==
  
如果你的嵌入式系统给出这样的信息:“控制台:将显卡切换至80x30模式(Console: switching to colour frame buffer device 80x30)“,那么下面内容将能帮助你。
+
如果你的嵌入式系统给出这样的信息:“控制台:正在将显卡切换至80x30模式(Console: switching to colour frame buffer device 80x30)“,那么下面内容将能帮助你。
  
== The Blacklist Solution ==
+
== 方案:加入黑名单(The Blacklist Solution) ==
  
The reason the console switches to a frame buffer device is that during boot time a frame buffer driver was loaded for your hardware. To discover what frame buffer driver was loaded, you will have to run
+
控制台切换至frame buffer设备,是因为引导期间加载了frame buffer设备驱动。查看哪个frame buffer设备驱动被加载,可以运行命令:
  
# lsmod
+
&nbsp;&nbsp;&nbsp; #lsmod<br>
  
and look at the output. For my system, I noticed this line gxfb 8832 1 Now the question is, "How do I prevent the frame buffer driver from being loaded?" Well, Ubuntu has an unusual system for preventing the automatic loading of drivers. In /etc/modprobe.d there are a set of blacklist files. To fix my problem, I simply added blacklist gxfb to the blacklist-framebuffer file and the system no longer tried to switch to a frame buffer console.
+
在我的系统中,我注意到这样的一行:<br>
  
== Increase the number of visible rows and columns in console ==
+
&nbsp;&nbsp;&nbsp; gxfb 8832 1
  
=== Chose preferred console resolution ===
+
那么,我该如何阻止加载这个驱动呢?Ubuntu提供了一个阻止自动加载驱动的方法。在/etc/modprobe.d中存在着一个黑名单。对我来说,我只要简单地在黑名单文件中加入
  
The default size of the console is 25x80 chars using vga (640x480 pixels) for historical reasons. I order to utilize modern display resolution you will need to override this settings during the operation system boot process. Please note that widescreen format is currently not supported by the kernel console driver. Pick a appropriate value from the matrix below, e.g. '''0x31A''' for 16 bit 1280x1024.
+
&nbsp;&nbsp;&nbsp; blacklist gxfb<br>
 +
 
 +
以後,我的系统不再尝试转换到frame buffer控制台。
 +
 
 +
== 增加控制台的可见行和可见列 ==
 +
 
 +
=== 选择喜欢的控制台分辨率 ===
 +
 
 +
由于历史原因,控制台的默认大小为25x80字符,使用vga(640x480)模式。为了充分利用现代显示设备的分辨能力,你可以修改引导过程的设置。请注意,内核控制台驱动暂时还不能支持宽屏格式。从下表中选择一个合适的值,如'''0x31A'''(代表16位深1280x1024)。
 
<pre>Colours 640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200
 
<pre>Colours 640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200
 
--------+--------------------------------------------------------------
 
--------+--------------------------------------------------------------
第27行: 第35行:
 
32 bits | &nbsp;? &nbsp;? &nbsp;? &nbsp;? 0x164 &nbsp;? &nbsp;?
 
32 bits | &nbsp;? &nbsp;? &nbsp;? &nbsp;? 0x164 &nbsp;? &nbsp;?
 
</pre>  
 
</pre>  
=== Edit /boot/grub/menu.lst ===
+
=== 编辑/boot/grub/menu.lst ===
  
Append ''vga=0x31A'' in the end of the ''kernel'' line. Your root=UUID will look different and do '''not''' edit this since it will cause your computer to fail booting. Please be warned. In the kernel line below the option ''splash'' is removed since it might cause LCD monitors to entering sleep mode during the boot process when using DVI input. This is not a serious error but a very annoying side-effect from changing the console resolution. This failure might apply on other configurations as well.
+
在kernel行的末尾增加 ''vga=0x31A'' 。注意,root=UUID 在不同的机器上是不一样的,请不要编辑它,以免导致无法启动。将选项splash 删掉,不然在切换分辨率时可能导致液晶显示器进入睡眠模式,虽然这不是什么大问题,但却很烦人。
 
<pre>title Ubuntu 7.10, kernel 2.6.22-14-generic
 
<pre>title Ubuntu 7.10, kernel 2.6.22-14-generic
 
root (hd0,0)
 
root (hd0,0)
第36行: 第44行:
 
quiet
 
quiet
 
</pre>  
 
</pre>  
* Tip, If you would like to test the setting but not make a permanent change as above it's possible to edit grub options during computer booting. When grub is loading press ESC to enter the boot menu, chose to edit the kernel line and append vga=0x31A. Continue to boot linux.
+
* 小贴示:如果你只想暂时测试一下,那么可以在系统引导到grub的时候按下ESC键,进入引导菜单(boot menu),将vga=0x31A追加到kernel行末,继续引导Linux
  
=== Edit /etc/initramfs-tools/modules ===
+
=== &nbsp; 编辑/etc/initramfs-tools/modules ===
  
A framebuffer is the device forwarding the text to be outputted on your display. In order to make the operation system aware we changed the size of the console the framebuffer driver needs to be notified. Add two lines containing '''vesafb''' and '''fbcon''' to ''/etc/initramfs-tools/modules''
+
字符在传递到显示器之前,先寄存在帧缓存(framebuffer)中。我们需要告诉操作系统,我们修改了控制台的分辨率,以便显卡驱动程序做出相应调整。要做到这一点,只需将 '''vesafb''' '''fbcon''' 加入到''/etc/initramfs-tools/modules''
 
<pre>sudo bash
 
<pre>sudo bash
 
echo vesafb &gt;&gt; /etc/initramfs-tools/modules
 
echo vesafb &gt;&gt; /etc/initramfs-tools/modules
 
echo fbcon &gt;&gt; /etc/initramfs-tools/modules
 
echo fbcon &gt;&gt; /etc/initramfs-tools/modules
 
</pre>  
 
</pre>  
=== Rebuild the kernel image ===
+
杏林小草注:粗略地讲,vesafb和fbcon是两种显卡驱动。
 +
 
 +
=== 重建内核镜像(Rebuild the kernel image) ===
  
This step is necessary to include these two modules in the kernel image being used upon next reboot. This step might also be necessary to perform after a kernel upgrade.
+
这一步是必须的,以便内核在下次引导的时候加载上述两个模块。升级内核後也需要重复这一步。
 
<pre>sudo update-initramfs -u
 
<pre>sudo update-initramfs -u
 
</pre>  
 
</pre>  
=== Edit /etc/modprobe.d/blacklist-framebuffer ===
+
=== 编辑/etc/modprobe.d/blacklist-framebuffer ===
  
Framebuffers are sometimes causing problems to wake up the computer from suspend mode and are hence disabled by default. Comment out the line ''blacklist vesafb'' to load the module anyway.
+
在某些时候,Framebuffers会将计算机从睡眠状态中唤醒,然後自动失效(to wake up the computer from suspend mode and are hence disabled by default)。此时,可以找到''blacklist vesafb''这一行,在前面加上“#”(注释符)重现载入模块。
 
<pre># blacklist vesafb
 
<pre># blacklist vesafb
 
</pre>  
 
</pre>  
=== Edit /etc/modules ===
+
=== 编辑/etc/modules ===
  
Although we stopped blacklisting the the vesa framebuffer we force to load it. Append one line with '''vesafb''' '''in ''/etc/modules'''''
+
虽然,我们已经将vesa framebuffer从黑名单中剔除,但还是要在'''''/etc/modules'''''中追加一行:'''vesafb'''
 
<pre>echo vesafb &gt;&gt; /etc/modules
 
<pre>echo vesafb &gt;&gt; /etc/modules
 
</pre>  
 
</pre>  
=== Reboot ===
+
=== 重启 ===
  
Hopefully you should see the boot messages with a smaller font upon the boot process.
+
希望你在重启後看到引导过程中出现的字体都变小了。
  
=== Links ===
+
=== 链接 ===
  
This section was assembled using information from different sources.
+
本节综述了不同来源的信息。
  
 
* [http://ubuntuforums.org/showthread.php?p=3826742]
 
* [http://ubuntuforums.org/showthread.php?p=3826742]

2008年6月9日 (一) 19:44的最新版本

如果你的嵌入式系统给出这样的信息:“控制台:正在将显卡切换至80x30模式(Console: switching to colour frame buffer device 80x30)“,那么下面内容将能帮助你。

方案:加入黑名单(The Blacklist Solution)

控制台切换至frame buffer设备,是因为引导期间加载了frame buffer设备驱动。查看哪个frame buffer设备驱动被加载,可以运行命令:

    #lsmod

在我的系统中,我注意到这样的一行:

    gxfb 8832 1

那么,我该如何阻止加载这个驱动呢?Ubuntu提供了一个阻止自动加载驱动的方法。在/etc/modprobe.d中存在着一个黑名单。对我来说,我只要简单地在黑名单文件中加入

    blacklist gxfb

以後,我的系统不再尝试转换到frame buffer控制台。

增加控制台的可见行和可见列

选择喜欢的控制台分辨率

由于历史原因,控制台的默认大小为25x80字符,使用vga(640x480)模式。为了充分利用现代显示设备的分辨能力,你可以修改引导过程的设置。请注意,内核控制台驱动暂时还不能支持宽屏格式。从下表中选择一个合适的值,如0x31A(代表16位深1280x1024)。

Colours 640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200
--------+--------------------------------------------------------------
4 bits |  ?  ? 0x302  ?  ?  ?  ?
8 bits | 0x300 0x301 0x303 0x305 0x161 0x307 0x31C
15 bits |  ? 0x310 0x313 0x316 0x162 0x319 0x31D
16 bits |  ? 0x311 0x314 0x317 0x163 0x31A 0x31E
24 bits |  ? 0x312 0x315 0x318  ? 0x31B 0x31F
32 bits |  ?  ?  ?  ? 0x164  ?  ?

编辑/boot/grub/menu.lst

在kernel行的末尾增加 vga=0x31A 。注意,root=UUID 在不同的机器上是不一样的,请不要编辑它,以免导致无法启动。将选项splash 删掉,不然在切换分辨率时可能导致液晶显示器进入睡眠模式,虽然这不是什么大问题,但却很烦人。

title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd0,0)
kernel /vmlinuz-2.6.22-14-generic root=UUID=98c2b6c5-4f08-4fbf-bd9c-c470b286f614 ro vga=0x31A
initrd /initrd.img-2.6.22-14-generic
quiet
  • 小贴示:如果你只想暂时测试一下,那么可以在系统引导到grub的时候按下ESC键,进入引导菜单(boot menu),将vga=0x31A追加到kernel行末,继续引导Linux

  编辑/etc/initramfs-tools/modules

字符在传递到显示器之前,先寄存在帧缓存(framebuffer)中。我们需要告诉操作系统,我们修改了控制台的分辨率,以便显卡驱动程序做出相应调整。要做到这一点,只需将 vesafbfbcon 加入到/etc/initramfs-tools/modules

sudo bash
echo vesafb >> /etc/initramfs-tools/modules
echo fbcon >> /etc/initramfs-tools/modules

杏林小草注:粗略地讲,vesafb和fbcon是两种显卡驱动。

重建内核镜像(Rebuild the kernel image)

这一步是必须的,以便内核在下次引导的时候加载上述两个模块。升级内核後也需要重复这一步。

sudo update-initramfs -u

编辑/etc/modprobe.d/blacklist-framebuffer

在某些时候,Framebuffers会将计算机从睡眠状态中唤醒,然後自动失效(to wake up the computer from suspend mode and are hence disabled by default)。此时,可以找到blacklist vesafb这一行,在前面加上“#”(注释符)重现载入模块。

# blacklist vesafb

编辑/etc/modules

虽然,我们已经将vesa framebuffer从黑名单中剔除,但还是要在/etc/modules中追加一行:vesafb

echo vesafb >> /etc/modules

重启

希望你在重启後看到引导过程中出现的字体都变小了。

链接

本节综述了不同来源的信息。