LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: youbest

[内核补丁]:字符终端下显示UTF-8字符

[复制链接]
发表于 2008-11-14 17:26:04 | 显示全部楼层
Post by waq;1879182
回楼上,
当然是进入即可显示中文,不过要求使用FrameBuffer方式,即加内核参数vga=xxx之类来启动
但是为了正常使用,应该设置LANG=zh_CN.UTF-8,这样会比较正常一些




呵呵,谢谢啦
回复 支持 反对

使用道具 举报

发表于 2008-11-21 21:41:47 | 显示全部楼层
Post by zyl19861126;1904390
谢谢, 还想问一下, 我按照你写的 linux 内核 2.6.19内核选项 编译内核, 看见:

Enable Scrollback Buffer in System RAM
在内存中开辟额外的屏幕缓冲区,这将允许你回滚屏幕

Scrollback Buffer Size (in KB)
在内存中开辟的额外屏幕缓冲区大小

上面2个选项, 是否象freebsd那样,能够在console下回滚屏幕了, 但是我编译进了内核, linux下我不能回滚屏幕阿。。。


就算加上了,Linux可能也不是为每个console开辟独立的缓冲区,所以还是不能象FreeBSD一样!也许某个终端程序可以做到这一点
回复 支持 反对

使用道具 举报

发表于 2008-11-22 09:21:12 | 显示全部楼层
我打了这个补丁, 内核选项按照补丁的要求选了fb, LANG=zh_CN.UTF-8, 启动后, ls 不能显示文件中文名字, 就是黑黑的, 好像那里没有文件一样, 偶尔还有几个字显示出来,不过是乱码, 但是用vim打开一个文件后里面的字体可以显示。。。。

用 zhcon 没有任何问题。
回复 支持 反对

使用道具 举报

发表于 2008-12-24 00:15:04 | 显示全部楼层
打上补丁编译失败:
  1. localhost linux # patch -p1  <utf8-kernel-2.6.26-core-1.patch
  2. patching file drivers/char/vt.c
  3. patching file drivers/video/console/bitblit.c
  4. Hunk #1 FAILED at 17.
  5. Hunk #2 succeeded at 112 (offset 8 lines).
  6. Hunk #3 succeeded at 190 (offset 8 lines).
  7. Hunk #4 succeeded at 255 (offset 8 lines).
  8. Hunk #5 succeeded at 271 (offset 8 lines).
  9. Hunk #6 succeeded at 282 (offset 8 lines).
  10. Hunk #7 succeeded at 335 (offset 8 lines).
  11. Hunk #8 succeeded at 345 (offset 8 lines).
  12. Hunk #9 succeeded at 434 (offset 8 lines).
  13. Hunk #10 succeeded at 455 (offset 8 lines).
  14. Hunk #11 succeeded at 510 (offset 8 lines).
  15. 1 out of 11 hunks FAILED -- saving rejects to file drivers/video/console/bitblit.c.rej
  16. patching file drivers/video/console/fbcon.c
  17. Hunk #1 succeeded at 997 (offset 4 lines).
  18. Hunk #2 succeeded at 1361 (offset 20 lines).
  19. Hunk #3 succeeded at 1627 (offset 25 lines).
  20. Hunk #4 succeeded at 1690 (offset 25 lines).
  21. Hunk #5 succeeded at 1703 (offset 25 lines).
  22. Hunk #6 succeeded at 1786 (offset 25 lines).
  23. Hunk #7 succeeded at 1809 (offset 25 lines).
  24. Hunk #8 succeeded at 1832 (offset 25 lines).
  25. Hunk #9 succeeded at 1877 (offset 25 lines).
  26. Hunk #10 succeeded at 2862 (offset 111 lines).
  27. Hunk #11 succeeded at 2982 (offset 111 lines).
  28. localhost linux # patch -p1 <utf8-kernel-2.6-fonts-1.patch
  29. patching file drivers/video/console/fonts_utf8.h
复制代码

  1. localhost linux # time make
  2.   CHK     include/linux/version.h
  3.   CHK     include/linux/utsrelease.h
  4.   CALL    scripts/checksyscalls.sh
  5.   CHK     include/linux/compile.h
  6.   CC      drivers/char/vt.o
  7.   LD      drivers/char/built-in.o
  8.   CC      drivers/video/console/fbcon.o
  9. drivers/video/console/fbcon.c: In function ‘fbcon_putc’:
  10. drivers/video/console/fbcon.c:1370: warning: passing argument 2 of ‘fbcon_putcs’ from incompatible pointer type
  11.   CC      drivers/video/console/bitblit.o
  12. drivers/video/console/bitblit.c: In function ‘bit_putcs_aligned’:
  13. drivers/video/console/bitblit.c:129: error: implicit declaration of function ‘hibyte_pos’
  14. drivers/video/console/bitblit.c:129: error: invalid type argument of ‘unary *’
  15. drivers/video/console/bitblit.c:130: error: invalid type argument of ‘unary *’
  16. drivers/video/console/bitblit.c:133: error: invalid type argument of ‘unary *’
  17. drivers/video/console/bitblit.c: In function ‘bit_putcs’:
  18. drivers/video/console/bitblit.c:343: error: ‘font_utf8’ undeclared (first use in this function)
  19. drivers/video/console/bitblit.c:343: error: (Each undeclared identifier is reported only once
  20. drivers/video/console/bitblit.c:343: error: for each function it appears in.)
  21. drivers/video/console/bitblit.c: In function ‘bit_cursor’:
  22. drivers/video/console/bitblit.c:441: error: invalid type argument of ‘unary *’
  23. drivers/video/console/bitblit.c:444: error: ‘font_utf8’ undeclared (first use in this function)
  24. make[3]: *** [drivers/video/console/bitblit.o] Error 1
  25. make[2]: *** [drivers/video/console] Error 2
  26. make[1]: *** [drivers/video] Error 2
  27. make: *** [drivers] Error 2
  28. real        0m8.843s
  29. user        0m6.749s
  30. sys        0m1.169s
复制代码
  1. localhost linux # uname -a
  2. Linux localhost 2.6.26-gentoo-r4 #1 Sun Dec 7 17:42:20 CST 2008 i686 AMD Athlon(tm) 64 Processor 3000+ AuthenticAMD GNU/Linux
复制代码


为什么会出现编译错误呢?是内核版本不对吗?
回复 支持 反对

使用道具 举报

发表于 2008-12-24 18:36:42 | 显示全部楼层
将bitblit.c.rej的内容"手动"patch到bitblit.c...
回复 支持 反对

使用道具 举报

发表于 2008-12-24 22:38:37 | 显示全部楼层
谢谢,手动patch后现在一切OK,终于不用开zhcon可以显示中文了
回复 支持 反对

使用道具 举报

发表于 2008-12-27 23:51:52 | 显示全部楼层
老大,什么时候可以升级为2.6.28呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-28 14:55:54 | 显示全部楼层
初步计划:元旦


补丁已经更新到2.6.28,并增加fbcondecor补丁。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-1 14:58:13 | 显示全部楼层
补丁已经更新到2.6.28,并增加fbcondecor补丁。
回复 支持 反对

使用道具 举报

发表于 2009-1-5 18:33:35 | 显示全部楼层
感谢,辛苦了。已经用上,fb可以正常显示中文了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表