+ -
当前位置:首页 → 问答吧 → fbterm + unimf 中文字符界面安装指南

fbterm + unimf 中文字符界面安装指南

时间:2009-04-01

来源:互联网

系统需求:
framebuffer 支持编译进内核 或者 KMS 支持编译进内核
基本系统
中文字体 随意
fontconfig http://cblfs.cross-lfs.org/index.php/FontConfig
freetype http://cblfs.cross-lfs.org/index.php/FreeType
启动参数加上 video=vesafb:ywrap,mtrr:3 vga=0x315(根据自己显卡调整),或者使用 KMS 支持(不需加 video=xxx vga=xxx,效果见附图)。

简单点说,如果您在 X 下可以正常显示中文,只要以 root 身份拷贝粘贴、或复制执行下面脚本,即可自动安装配置。
代码:
#!/bin/sh
#-----------------UserManual-----------------
wget -c http://ucimf.googlecode.com/files/UserManual.pdf
wget -c http://ucimf.googlecode.com/files/UserManual.txt

#-----------------install--------------------
cd

wget -c http://ucimf.googlecode.com/files/libucimf-2.2.8.tar.gz
tar -xvf libucimf-2.2.8.tar.gz 
cd libucimf-2.2.8/
./configure --prefix=/usr --sysconfdir=/etc
make
make install
cd
rm -rf libucimf-2.2.8/


wget -c http://ucimf.googlecode.com/files/ucimf-openvanilla-2.10.5.tar.gz
tar -xvf ucimf-openvanilla-2.10.5.tar.gz 
cd ucimf-openvanilla-2.10.5/
./configure --prefix=/usr
make
make install
cd
rm -rf ucimf-openvanilla-2.10.5/


wget -c http://ucimf.googlecode.com/files/openvanilla-modules-0.8.0_9.tar.gz
tar -xvf openvanilla-modules-0.8.0_9.tar.gz 
cd openvanilla-modules-0.8.0_9/
./configure --prefix=/usr --with-zh_CN
make
make install
cd
rm -rf openvanilla-modules-0.8.0_9/


wget -c http://fbterm.googlecode.com/files/fbterm-1.5.tar.gz
tar -xvf fbterm-1.5.tar.gz 
cd fbterm-1.5/
./configure --prefix=/usr
make
make install
cd
rm -rf fbterm-1.5/


wget -c http://ucimf.googlecode.com/files/fbterm_ucimf-0.2.5.tar.gz
tar -xvf fbterm_ucimf-0.2.5.tar.gz 
cd fbterm_ucimf-0.2.5/
./configure --prefix=/usr
make
make install
cd
rm -rf fbterm_ucimf-0.2.5/


wget -c http://ftp.debian.org/debian/pool/main/d/dialog/dialog_1.1-20080819.orig.tar.gz
tar -xvf dialog_1.1-20080819.orig.tar.gz
cd dialog-1.1-20080819/
./configure --prefix=/usr
make
make install
cd
rm -rf dialog-1.1-20080819/
整理输入模块(可选)
代码:
mkdir -v /usr/lib/openvanilla/OVIMGeneric/bak
mv /usr/lib/openvanilla/OVIMGeneric/*.cin /usr/lib/openvanilla/OVIMGeneric/bak
mv /usr/lib/openvanilla/OVIMGeneric/bak/{pinyin,wubi}*.cin /usr/lib/openvanilla/OVIMGeneric/
运行
代码:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

fbterm -i fbterm_ucimf

代码:
LANG=zh_CN.UTF-8 fbterm -i fbterm_ucimf
普通用户需要把用户加入 video 组。

注意:
fbterm 安装时被设置 suid bit(机子上有 libcap 的话是另一种情况),当前 ucimf 依赖 root 权限设置键盘映射,仅执行 fbterm 则不需要 suid bit。

如果您以普通用户身份安装,请参考
http://groups.google.com/group/ucimf...755f32322d9b48

注意:
有问题请先看安装脚本下载的 pdf 用户手册,再参考下面资源。
如果您使用发行版,请使用相应发行版的安装方式。
如果想按上面源码方式安装,请自行解决 编译环境、依赖问题 特别是头文件。


参考资源
http://code.google.com/p/ucimf/wiki/FAQ
http://code.google.com/p/ucimf/issues/list
http://groups.google.com/group/ucimf
http://code.google.com/p/ucimf/
http://code.google.com/p/fbterm/

工作在 ATI KMS 上的 fbterm + ucimf 效果图
上传的附件
fbterm_ucimf-install.sh.gz (427 字节, 45 次查看)
fbterm-1.5_ucimf-2.2.8-install.sh.gz (436 字节, 18 次查看)

作者: 聚焦深空   发布时间: 2009-04-01

既然有比较好用的中文字符界面,那就该继续 完善 字符界面 下使用 中文用户名 登录的问题。
如何支持 中文用户名、中文主机名 http://www.linuxsir.org/bbs/thread336648.html

问题是 fbterm 不支持 型如 chroot /path /bin/login 的命令

作者: 聚焦深空   发布时间: 2009-04-01

看来中文用户名的推广又进了一步 :)

作者: d00m3d   发布时间: 2009-04-01

给 fbterm 写了个补丁,现在可以在命令行指定运行的程序,如:
代码:
fbterm -i fbterm_ucimf -- vi newfile
上传的附件
fbterm-1.4_run_command.patch.gz (700 字节, 6 次查看)
fbterm-1.4_launch_from_non-current_vt.patch.gz (638 字节, 6 次查看)

作者: 聚焦深空   发布时间: 2009-04-04

方法如下:
0、建立一个中文用户名的用户
debian、ubuntu 提供的 shadow 软件包打过补丁 506_relaxed_usernames,
可以直接建立 非ascii编码的用户名的用户,包括中文用户名的用户;
其他发行版可以自己给 shadow 软件包打补丁 506_relaxed_usernames,
或手工编辑 /etc/passwd /etc/group /etc/shadow /etc/gshadow 创建中文用户名的用户。

1、给 fbterm 打补丁(fbterm-1.5 不需打补丁)
fbterm-1.4_run_command.patch
fbterm-1.4_launch_from_non-current_vt.patch
并重新编译安装。

2、写一个登录脚本 /bin/login.sh
------------------------------
cat > /bin/login.sh << eof
#!/bin/sh
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
export HOME=/root
exec /usr/bin/fbterm -i /usr/bin/fbterm_ucimf /bin/login
eof
chmod 700 /bin/login.sh
==============================

3、编辑 /etc/inittab
修改其中一行,
如 5:2345:respawn:/sbin/agetty -I '\033(K' tty5 38400
为 5:2345:respawn:/sbin/agetty -I '\033(K' tty5 38400 -n -l /bin/login.sh
如果不用登录脚本,应修改为
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 38400 -n -l /usr/bin/env
- LANG=zh_CN.UTF-8 /usr/bin/fbterm -i /usr/bin/fbterm_ucimf /bin/login
但这样 init 会抱怨这一行参数太长,并拒绝运行。

4、init q,之后切换到 tty5 就可以用 Ctrl_Space 激活输入法,用中文登录系统。

遗留问题(已解决):
1、agetty timeout 不知怎样设置为无穷大(-t 参数不知行不行),
fbterm 启动时会刷新屏幕,不管当前使用的是不是启动 fbterm 的虚拟终端,甚至是 X,
这样会把 两个虚拟终端 显示混合在一起,X 下类似,
切换到 fbterm 所在虚拟终端,再切换回来则正常,超时则继续这样循环,
如果登录到 fbterm 所在虚拟终端,则一切正常。:(

2、想在登录脚本 /bin/login.sh 中做修正,
可不知道怎么得到当前正激活的虚拟终端设备号,
tty 命令只能得到 shell 运行的虚拟终端设备号。:(

补丁:
fbterm-1.4_run_command.patch(见上帖)
http://code.google.com/p/fbterm/issues/detail?id=15
fbterm-1.4_launch_from_non-current_vt.patch(见上帖)
http://code.google.com/p/fbterm/issues/detail?id=16

debian shadow 506_relaxed_usernames
http://ftp.debian.org/debian/pool/ma....1.orig.tar.gz
http://ftp.debian.org/debian/pool/ma....1.1-6.diff.gz 补丁在这里
http://ftp.debian.org/debian/pool/ma...ow_4.1.1-6.dsc
这里有提取出来的单个文件
http://www.linuxsir.org/bbs/attachme...=48886&d=12233...

参考:
http://groups.google.com/group/ucimf...a5fd4dffdcb27d

作者: 聚焦深空   发布时间: 2009-04-04

fbterm下推荐使用文泉驿Unibit字体,其它字体感觉不是很清晰.

作者: digwtx   发布时间: 2009-04-06

fbterm下普通用户无法启动svgalib程序,比如看pdf的svp,而root可以,请问怎么解决?谢谢。

作者: carptain   发布时间: 2009-04-06

我是新手,zhcon,cce尝试或好多,但是最终选择了fbterm。但是字体不会弄。现在是软件都装好了,中文显示和输入法都没问题。就是显示太难看了。
不知道终端模式下的默认字体是什么,我想应该是bios里面自带的字体吧。不知道fbterm中可不可以采用那样的显示效果,或者是采用一个相似的字体。原因一个是我觉得这个字体好看一些,再就是启动fbterm后就不会感觉不适应了。
希望中文采用simsun的字体,不知道怎么装到系统里,怎么使用。

作者: knifeflying   发布时间: 2009-04-06

引用:
作者: digwtx
fbterm下推荐使用文泉驿Unibit字体,其它字体感觉不是很清晰.
是个好主意,不过其英文字体挺丑的。

更好的做法是,设置 fongconfig,使 mono 字体英文使用 Dejavu Sans Mono 或 Bitstream Vera,中文使用 wqy 或 uming、ukai,然后分别配置 fbterm 和 ucimf 使用 mono 做字体。
具体配置可在论坛搜索 ~/.fonts.conf。

作者: 聚焦深空   发布时间: 2009-04-06

还有个问题,就是我按照说明启动fbterm,但是怎么也调用不了输入法
ucimf_fbterm好像有错误,但是编译的时候通过了,好奇怪。

作者: digwtx   发布时间: 2009-04-06

-
引用:
作者: digwtx
还有个问题,就是我按照说明启动fbterm,但是怎么也调用不了输入法
ucimf_fbterm好像有错误,但是编译的时候通过了,好奇怪。
我现在就是采用ucimf在w3m下写的回复,您的问题我同样遇到过,请检查您的framebuffer配置,既vga=XXX,分辨率没有具体的要求,甚至可以是扩展的vga模式,但是其色深一定要大于8bit,在8bit色深模式下无法开启输入法,具体原因尚不清楚.

作者: knifeflying   发布时间: 2009-04-06

引用:
作者: carptain
fbterm下普通用户无法启动svgalib程序,比如看pdf的svp,而root可以,请问怎么解决?谢谢。
svgalib 貌似很久没维护,建议丢掉,此问题无一般性。

不清楚 framebuffer svgalib 是否兼容,您可以试着找找 framebuffer 下的 pdf 阅读程序,或使用 zhcon 其支持 svgalib。

如果您说的 root 下可以是真的,那就是权限问题,用 strace lsof 之类的工具跟踪一下,看看打开了什么文件,尤其是设备文件,给普通用户赋予相应权限,应能解决问题。

作者: 聚焦深空   发布时间: 2009-04-07

引用:
作者: digwtx
还有个问题,就是我按照说明启动fbterm,但是怎么也调用不了输入法
ucimf_fbterm好像有错误,但是编译的时候通过了,好奇怪。
请先按首贴检查系统需求是否满足,其次是 fbterm 权限(root 所有、并设置suid bit),当前 ucimf 需要 root 权限设置键映射。

作者: 聚焦深空   发布时间: 2009-04-07

引用:
作者: knifeflying
我是新手,zhcon,cce尝试或好多,但是最终选择了fbterm。但是字体不会弄。现在是软件都装好了,中文显示和输入法都没问题。就是显示太难看了。
不知道终端模式下的默认字体是什么,我想应该是bios里面自带的字体吧。不知道fbterm中可不可以采用那样的显示效果,或者是采用一个相似的字体。原因一个是我觉得这个字体好看一些,再就是启动fbterm后就不会感觉不适应了。
希望中文采用simsun的字体,不知道怎么装到系统里,怎么使用。
要知道,比您懒的人有很多,比如俺。
您连资料都懒的查,那就没人帮的了您啦。
google 是好工具。
精华区是好资料。

相对来说,当前 zhcon cce 还是比 ucimf 成熟,只是已无人维护、过时。

bios 自带字体仅覆盖 ASCII。
linux-kernel 启用 framebuffer 时,使用编译进内核的字体。
用户空间程序可以使用更高级的实现,如 fbterm 使用 freetype 支持字体,可直接使用 ttf 字体。

simsun 有自己的版权,请自重。
当前,开源字体显示效果已很好。

作者: 聚焦深空   发布时间: 2009-04-07

哦,明白了,谢谢。

作者: knifeflying   发布时间: 2009-04-07

引用:
作者: 聚焦深空
请先按首贴检查系统需求是否满足,其次是 fbterm 权限(root 所有、并设置suid bit),当前 ucimf 需要 root 权限设置键映射。
怎么设置suid bit?
我的键盘映射是kbd_mode -u
vga=788
请问哪里还要修改?

作者: digwtx   发布时间: 2009-04-08

引用:
作者: digwtx
怎么设置suid bit?
我的键盘映射是kbd_mode -u
vga=788
请问哪里还要修改?
您应该看看首贴最后提到的资料,特别是 FAQ。

如果您按首贴方法安装,不必关心这些问题,直接使用即可。


您的问题应该自己用 google、精华区、或找其他书本资料 解决,属于基本概念性质,不要太懒惰。

作者: 聚焦深空   发布时间: 2009-04-08

添加 KMS 上 fbterm + ucimf 运行效果图,见首帖。

作者: 聚焦深空   发布时间: 2009-04-24

英文我喜欢用console,就是kde终端konsole所带的字体console8x16.pcf.gz,和原来的控制台字体一个样

作者: kgnn   发布时间: 2009-04-25

字体您可以自己设置的。

作者: 聚焦深空   发布时间: 2009-04-25

好帖,收藏,已经开始使用fbterm了 ^^

作者: xeon00   发布时间: 2009-06-14

如果不用fbterm,能否使用unimf?

因为打了内核中文补丁之后已经可以实现中文显示,只是没输入法。

----------

看了下,应该不行。

还有别的替代程序么。控制台下输入中文是个问题。没想用额外的console

作者: jarryson   发布时间: 2009-06-15

理论上 内核中文补丁 与 fbterm 不冲突。

内核中文补丁,提供 内核级中文字体 和 驱动一级中文显示支持。
fbterm 只使用内核提供的 framebuffer 驱动,显示是由用户空间的 freetype fontconfig 处理。

ucimf 需要 fbterm jfbterm 一类程序支持,至少目前是这样。
如果能把输入法支持做到 libc 一级,您的想法应该能实现。

作者: 聚焦深空   发布时间: 2009-06-15

确实是不冲突,主要是fbterm在我这里字体很难看,因为图形界面下使用的是矢量字体,而在控制台下看起来模糊不说,而且还只能显示一半,几乎没字体可以正常,fixed字体可以,但是太难看了。

所以就没想用fbterm。

作者: jarryson   发布时间: 2009-06-15

其实您设置好 fontconfig,调整好字体大小即可,和 X 下类似。
有 hint 的字体显示可能差些,可以用点阵字体,如 wqy。
另,中文内核补丁提供的也是点阵字体。

作者: 聚焦深空   发布时间: 2009-06-16

引用:
作者: jarryson
确实是不冲突,主要是fbterm在我这里字体很难看,因为图形界面下使用的是矢量字体,而在控制台下看起来模糊不说,而且还只能显示一半,几乎没字体可以正常,fixed字体可以,但是太难看了。

所以就没想用fbterm。
用konsole带的那个点阵字体console啊,看起来和原来的控制台字体一样的!
我的rxvt-unicode,roxterm都用它,fbterm也用它,其它字体都不喜欢
删掉符号连接/etc/fonts/conf.d/70-no-bitmaps.conf,允许点阵字体,如果讨厌太多的点阵字体,就修改/etc/fonts/fonts.conf字体路径,去掉含X核心点阵字体的的路径, 像我的只有这些
<dir>/usr/share/fonts/truetype</dir>
<dir>/usr/local/share/fonts</dir>
<dir>~/.fonts</dir>

只能显示一半是什么意思?中文问题?
我的没发现有问题,我的.fbtermrc字体设置
font-names=console,simsun
font-size=14

作者: kgnn   发布时间: 2009-06-16

引用:
作者: 聚焦深空
请先按首贴检查系统需求是否满足,其次是 fbterm 权限(root 所有、并设置suid bit),当前 ucimf 需要 root 权限设置键映射。
刚发现的,ucimf依赖sqlite3,不装无法出现输入法。

作者: carptain   发布时间: 2009-06-22

楼上,ucimf 不依赖 sqlite,应该是您系统有问题。

作者: 聚焦深空   发布时间: 2009-06-23

见图。
.ucimf-log.
上传的图像
未命名.JPG (34.5 KB, 20 次查看)

作者: carptain   发布时间: 2009-06-23

好吧,sqlite 是可选的,但不是必须的。
偶这里没有 sqlite,运行良好。
偶只用 拼音输入法,也许和您使用的输入法有关。

您截图只是说明 openvanilla 可以用插件形式使用 sqlite,和 ucimf 没关系。
感兴趣的话,可以看看这个
http://www.gnu.org/software/libtool/...interface.html

作者: 聚焦深空   发布时间: 2009-06-23