编译内核解决console下中文显示问题
这是第二次给我的Archlinux 编译内核了,以前习惯pacman -Syu 直接升级内核。
不过默认的内核好像不支持在console(纯控制台)下面显示中文。
幸好这里已经有人开发出了支持在终端下显示UTF-8字符的内核补丁:
内核补丁:字符终端下显示UTF-8字符先下载2.6.38通用补丁的两个补丁文件:
文件显示补丁:
http://zdbr.net.cn/download/utf8-kernel-2.6.38-core-1.patch.bz2字库补丁:
http://zdbr.net.cn/download/utf8-kernel-2.6.38-core-1.patch.bz2补丁使用方法:
首先将补丁应用到对应内核的源代码中。
使用univt必须首先确保内核支持Framebuffer,内核选项如下:
勾选上”Support for frame buffer device”,同时还要设置对应的Framebuffer的驱动,如VESA的驱动(根据情况也可以选择更适合显卡的驱动)
还需要为内核在Framebuffer下显示的字符选择一个字库,通常使用8×16的字符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wget -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.8.tar.bz2
cp linux-2.6.32.8.tar.bz2 ~/kernelbuild/
cd ~/kernelbuild
$ tar -xvjf linux-2.6.38.8.tar.bz2
$ cd linux-2.6.38.8
$make mrproper
$zcat /proc/config.gz > .config
[admin@HuangYe linux-2.6.38.8]$ bzcat ../utf8-kernel-2.6.38-core-1.patch.bz2 |patch -p1
patching file drivers/video/console/bitblit.c
patching file drivers/video/console/fbcon.c
patching file drivers/video/console/fbcon_ccw.c
patching file drivers/video/console/fbcon_cw.c
patching file drivers/video/console/fbcon_ud.c
[admin@HuangYe linux-2.6.38.8]$ bzcat ../utf8-kernel-2.6-fonts-3.patch.bz2 |patch -p1
patching file drivers/video/console/fonts_utf8.h
然后就是内核配置了:
1
2
$ make oldconfig
$ make menuconfig
然后更改内核版本号
General setup —>
(-ARCH) Local version – append to kernel release
在后面加一些东东,确保不会覆盖掉原来的内核。
如我这里加了之后变为:
ARCH-HuangYe-revision2
这里一定要修改,不然可能就杯具了。
然后开始编译:
1
make -j3
如果是双核CPU就在原有核心数量上加1,我这里是core2 双核的,因此是-j3
至于为什么要这样做,目前我也不知道,官方wiki上是这样说的。
然后是安装了,这里要root权限:
1
2
3
4
# make modules_install
# cp -v arch/x86/boot/bzImage /boot/vmlinuz-2.6.38.8-ARCH-HuangYe-revision2
# cp -v System.map /boot/System.map-2.6.38.8-ARCH-HuangYe-revision2
# mkinitcpio -k 2.6.38.8-ARCH-HuangYe-revision2 -c /etc/mkinitcpio.conf -g /boot/kernel26-2.6.38.8-ARCH-HuangYe-revision2.img
然后修改grub引导项:
1
2
3
4
title Arch Linux HuangYe
root (hd0,4)
kernel /vmlinuz-2.6.38.8-ARCH-HuangYe-revision2 root=/dev/disk/by-uuid/d95683c2-582f-404f-8aa4-b0856858d4e0 ro 5 vga=773
initrd /kernel26-2.6.38.8-ARCH-HuangYe-revision2.img
reboot查看下内核版本看:
1
2
[admin@HuangYe ~]$ uname -a
Linux HuangYe2.6.38.8-ARCH-HuangYe-revision2 #1 SMP PREEMPT Sun Jun 5 17:35:30 CST 2011 i686 Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz GenuineIntel GNU/Linux
内核版本号已经是我设置的啦,OK,再到console下查看下中文是可以正常显示了:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。