sunmoon1997 发表于 2004-12-20 17:11:23

让你的终端同时支持中文和 PP 的背景:)

在控制台使用一些中文终端时(如 zhcon, cce 等等), 这些终端都将背景设为黑色, 把 gensplash
PP 的背景都挡住了, 十分难看。 有没有两全的办法了, 既可以使用中文, 又可以有漂亮的背景
了?前几天 jackey 告诉我 unicon 补丁可以用在 2.6.9-nitro4 的内核上, 使我感觉有希望了,
通过对比 gensplash 和 unicon 的补丁, 找出了 2.6.9 内核上实现这个“小梦想”的方法。具体该
怎么做了, 且听我慢慢说来。
首先 unicon 和 gensplash 都需要给内核打补丁。这里只以打上 nitro 补丁 2.6.9 内核为例。
1.内核解压到 /usr/src/。
#tar jvxf linux-2.6.9.tar.bz2
2.下载所需补丁并给内核打补丁。
http://gentoo.linuxsir.org/download/gentoo/distfiles/patch-2.6.9-nitro4.bz2
http://gentoo.linuxsir.org/download/gentoo/distfiles/linux-2.6.9-nitro4-unicon.patch.bz2

#cd /usr/src/linux-2.6.9
#bzcat ~/patch-2.6.9-nitro4.bz2 | patch -p1
#bzcat ~/linux-2.6.9-nitro4-unicon.patch.bz2 | patch -p1

3. 配置和编译内核。
这里不多说, 假设您已经会配置编译和内核。只是注意以下几个选项。

│ │         [*]   UNICON console support (EXPERIMENTAL)                      │ │
│ │         <M>   UNICON GB Font support                                 │ │
│ │         <M>   UNICON GBK Font support                                  │ │
│ │         <M>   UNICON Big5 Font support                                 │ │
│ │         <M>   UNICON EUC-JP Font support                               │ │
│ │         <M>   UNICON JIS Font support                                  │ │
│ │         <M>   UNICON Shift-JIS Font support                            │ │
│ │         <M>   UNICON KSCM Font support                                 │ │

gensplash 的安装方法见:
http://www.linuxsir.org/bbs/showthread.php?t=132656&highlight=fbsplash
4。编译和安装 unicon 用户态工具。
下面 unicon 源码和补丁。
http://gentoo.gg3.net/distfiles/unicon-3.0.4.tar.bz2
http://www.magiclinux.org/cgi-bin/viewcvs.cgi/*checkout*/gentoo/portage/app-i18n/unicon/files/vd_unicon-userland-20031122vd.patch?rev=1.1
http://www.magiclinux.org/cgi-bin/viewcvs.cgi/*checkout*/gentoo/portage/app-i18n/unicon/files/unicon-3.0.4-gcc34.patch?rev=1.1
编译安装:

#tar jvxf unicon-3.0.4.tar.bz2
#cd unicon-3.0.4
#patch -p1 < vd_unicon-userland-20031122vd.patch
#patch -p1 < unicon-3.0.4-gcc34.patch
#./configure --prefix=/usr
#make && make install
#make data && make data-install


5。配置 unicon, 实现在 gensplash 的打开的情况下显示中文。
使用新的内核重新启动机器。
假设你使用 gbk 作为中文编码。
加载内核模块:

#modprobe unikey
#modprobe encode-gbk

配置并打开 unicon

#setfont -u /usr/lib/unicon/direct.uni
或者
#loadunimap /usr/lib/unicon/direct.uni
#uniconctrl --gbk

然后退出会话,再重新登录即可。

对于使用中文 portage 的 gentooer,会相当来说简单一点。
只要下载最新的中文 portage。

#emerge =nitro-sources-2.6.9-r4
#emerge unicon
#rc-update del keymaps
#rc-update del consolefont
#rc-update add unicon default
另外还需要把 /etc/rc.conf 中的
UNICODE 设为 no

编译内核使用新内核重新启动即可, 不过有个小毛病。
重新启动,直接登录之后并不能显示中文, 要退出再登录一次就可以了。

另外还可以参考一下 jackey 的方法。
http://euler.acadiau.ca/~043936y/index.php?job=art&articleid=a_20041209_221844

EricNeon 发表于 2004-12-20 17:40:48

我的中文解决办法也是这样的。花了我一个星期的时间才试验成功。那个背景你是用gensplash,我不太清楚这个东西。我是直接emerge splashutils的。

但是目前的问题是,一旦启动X,就不能再用Alt+Control+Fn回到console,必须退出桌面才行。不知道是什么原因。xorgconf和.xinitrc都检查过了。用twm和fvwm都是老样子。现在我正在安装gdm,看看会不会出现同样的情况。

sunmoon1997 发表于 2004-12-20 18:02:49

附上一着图:
http://sunmoon.512j.com/fbsplash-unicon-1.png

cnhnln 发表于 2004-12-20 22:05:39

精之

PS:希望楼主把内核里相关部分的修改方法直接放上来,多谢

黑企鹅 发表于 2004-12-20 23:41:57

非常棒. 不过控制台使用的时间还是少哈. 都在 GNOME 桌面里用终端了. 啥问题没有. :mrgreen:

ps: 我加精了

atfa 发表于 2004-12-21 08:28:49

真好看



但是我实在不知道,一个控制台弄那么高分辨率和那么PP有什么太大用处


还是羡慕加嫉妒加赞一个

黑企鹅啊,你找hew把他那边的论坛图标拿过来了咋个没有看见效果呢?

linky_fan 发表于 2004-12-23 20:14:06


但是目前的问题是,一旦启动X,就不能再用Alt+Control+Fn回到console

开机直接进x?

cnhnln 发表于 2004-12-23 22:37:52

http://vdr.jp/d/unicon.html

EricNeon 发表于 2004-12-24 09:05:10

开机是没有直接进X的。为了解决切换不回console的问题,我尝试安装了gdm,开机,然后启动gdm,进入fvwm,居然真的解决了。后来又重新试了几次,没有用gdm,直接用startx进入桌面,也可以切换回console,所以觉得很奇怪啊。

这个方法我正在debian上测试,并另外整理一份过程说明。希望这将是console完美主义的一次大反攻的前奏。

cnhnln 发表于 2004-12-25 00:23:46

不支持utf8所以不打算用

speme 发表于 2004-12-25 15:47:57

我只是想用中文及想让 ls 显示出来的有颜色

我用过ZHCON,但是LS没有颜色。我见过同学的TURBO ls后有颜色。它用的是
unicon。我还见过xterm也是控制台有颜色。但我觉得跟turbo的差不多。
但我现在用的是FC2。我也想让它的控制台有颜色。而且最好还能支持中文五笔。我不知道我是不是该装unicon。

sunmoon1997 发表于 2004-12-26 18:47:45

又完善了一下补丁, 修正了鼠标经过中文时, 中文会变乱码的 bug, 也部分解决了半个汉字的问题。另外还发现了 gensplash 有个小 bug, 不过一般情况下对系统没有影响(fbsplash_putc 将字体的前景和背景色反调了)。

wjping119 发表于 2005-6-3 18:05:15

sunmoom1997,来看看我的问题
slackware10.1,用官方2.6.11.9内核编译unicon
给内核打补丁顺利通过,没有任何错误.
编译过程中出现如下问题

LD drivers/video/aty/built-in.o
CC drivers/video/aty/atyfb_base.o
drivers/video/aty/atyfb_base.c: In function `aty_init':
drivers/video/aty/atyfb_base.c:2180: warning: unused variable `pll_ref_div'
drivers/video/aty/atyfb_base.c: At top level:
drivers/video/aty/atyfb_base.c:495: warning: `ram_dram' defined but not used
drivers/video/aty/atyfb_base.c:496: warning: `ram_resv' defined but not used
CC drivers/video/aty/mach64_accel.o
CC drivers/video/aty/mach64_cursor.o
CC drivers/video/aty/radeon_base.o
CC drivers/video/aty/radeon_pm.o
CC drivers/video/aty/radeon_monitor.o
CC drivers/video/aty/radeon_accel.o
CC drivers/video/aty/radeon_i2c.o
LD drivers/video/aty/atyfb.o
CC drivers/video/aty/aty128fb.o
LD drivers/video/aty/radeonfb.o
LD drivers/video/backlight/built-in.o
CC drivers/video/console/dummycon.o
CC drivers/video/console/vgacon.o
CC drivers/video/console/fbcon.o
drivers/video/console/fbcon.c: In function `fbcon_putc':
drivers/video/console/fbcon.c:1087: warning: passing arg 2 of `fbcon_putcs' from incompatible pointer type
CC drivers/video/console/bitblit.o
drivers/video/console/bitblit.c: In function `bit_putcs_wrap':
drivers/video/console/bitblit.c:382: warning: passing arg 3 of `bit_putcs' from incompatible pointer type
drivers/video/console/bitblit.c:386: warning: passing arg 3 of `bit_putcs' from incompatible pointer type
CC drivers/video/console/fonts.o
CC drivers/video/console/font_8x8.o
CC drivers/video/console/font_8x16.o
LD drivers/video/console/font.o
LD drivers/video/console/built-in.o
LD drivers/video/unicon/built-in.o
CC drivers/video/unicon/xl_fm.o
CC drivers/video/unicon/xl_hzfb.o
CC drivers/video/unicon/xl_keyhooks.o
drivers/video/unicon/xl_keyhooks.c:101: warning: `fnOurTtyKeyHook' defined but not used
drivers/video/unicon/xl_keyhooks.c:127: warning: `fnOurLowKeyHook' defined but not used
CC drivers/video/unicon/xl_keymasks.o
CC drivers/video/unicon/xl_unikey.o
LD drivers/video/unicon/unikey.o
CC drivers/video/unicon/encode-gb.o
CC drivers/video/unicon/encode-gbk.o
CC drivers/video/unicon/encode-big5.o
CC drivers/video/fbmem.o
CC drivers/video/fbmon.o
CC drivers/video/fbcmap.o
CC drivers/video/fbsysfs.o
CC drivers/video/modedb.o
CC drivers/video/softcursor.o
CC drivers/video/vesafb.o
CC drivers/video/cfbfillrect.o
CC drivers/video/cfbcopyarea.o
CC drivers/video/cfbimgblt.o
CC drivers/video/vga16fb.o
CC drivers/video/vgastate.o
LD drivers/video/built-in.o
LD drivers/built-in.o

很奇怪character devices中的support for user-space parael port device drivers第一次看到已经选中了(默认),可是再次看的时候就再也找不到这一项了,可是默认应该是选中的.
然后mknod /dev/unikey c 100 0
大补丁编译unicon-3.0.4,顺利通过,没有任何错误
运行unicon --gbk
仍然是 can not open unikey

cnhnln 发表于 2005-6-4 00:50:45

看看作者的主页 http://vdr.jp/d/unicon.html

以前弄过,输入法弄不成,也没啥意思,又不支持utf8,所以不弄了
页: [1]
查看完整版本: 让你的终端同时支持中文和 PP 的背景:)