Ubuntu 10.04下cce-0.51原代码编译安装

编译打包和其他
头像
arkansas_ubuntu
帖子: 56
注册时间: 2010-05-18 10:00

Ubuntu 10.04下cce-0.51原代码编译安装

#1

帖子 arkansas_ubuntu » 2010-05-18 11:29

花了将近一个星期的时间,终于在Ubuntu 10.04 LTS下把cce-0.51用原代码的方式安装好了,太不容易了,值得好好庆祝一下,特意写此文记录一下心得体会。

先介绍一下什么是 cce,如果大家用过DOS和DOS下的中文平台,那么这个Linux下的cce就相当于DOS中的UCDOS等中文平台。

Linux功能强大,尤其是控制台(console)下的命令对于系统管理和网络管理来说非常重要,可是以原代码方式编译安装软件还是很有些难度的。为了方便安装软件和所倚赖的软件包,Redhat发展了自己的rpm包,Debian也发展了deb包,Ubuntu则使用了新立德软件管理器,但是有些软件在特定版本下的Linux没有安装包可用,只能用原代码来编译,而这种安装方式要求使用者有一定的Linux编程经验,这个门槛可不低,这也是难倒很多用惯了 Windows的人的原因之一。

在控制台下以命令行运行软件的好处是快捷,可以完全脱离X-window。此外,真正的Linux高手是在控制台下练出来的。

Ubuntu10.04 LTS新立德软件包列表中含有zhcon,但下载安装后依然有很多的问题,看不到状态行,只有拼音输入法,无法切换半角和全角模式。我曾经在 CDLinux 0.4和Red Flag Linux 5下用过cce,感觉非常好,使我想起了当年使用UCDOS、天汇DOS和龙梦2000的美好岁月。

一方面要把自己练就成Linux高手,另一方面要好好回忆一下十几年前的美好岁月,我决定在Ubuntu 10.04 LTS下装cce。

安装过程远比想像的要复杂得多,不过当我安装好了之后,也在实践中学习了很多Linux知识。以后再用原代码安装就没这么困难了。在Ubuntu10.04下,一共需要打3个补丁外加手动修改一个文件才能编译安装。

cce 0.51 软件代码下载:
http://sourceforge.net/projects/cce2k/

将原代码包用以下命令解包:

代码: 全选

tar -xzvf cce-0.51-02132004-dist.tgz
你会看到当前目录中有个 cce-0.51的新目录。
该原代码是在gcc3下编译通过的,在gcc4下编译要作些修改,首先要下载补丁cce-gcc4.patch,以适合gcc4的编译。

cce-gcc4.patch下载地址:
http://bbs.linuxsir.org/attachment.php? ... 1143630302

http://cid-0c366edfd373452f.skydrive.li ... gcc4.patch


补丁下载后还要安装能供执行补丁的工具patch,运行如下命令:

代码: 全选

sudo apt-get install patch
安装好了 patch工具后就可以打补丁了。

补丁使用方法:
如果cce-gcc4.patch和cce-0.51目录平级(cce- gcc4.patch位于cce-0.51的父本目录中),执行命令:

代码: 全选

patch -p0<cce-gcc4.patch
如果将 cce-gcc4.patch拷入cce-0.51目录中,则执行:

代码: 全选

patch -p1<cce-gcc4.patch
如果此时就开始./configure、make会出错:IF_MASK等未定义,所以还要修改一个头文件cce-0.51/include/lrmi.h

用 vi或gedit打开cce-0.51/include/lrmi.h
在该文件的大段注释结束后和第一行正式代码前添加如下代码:

代码: 全选

#ifndef IF_MASK
#define IF_MASK X86_EFLAGS_IF
#endif

#ifndef IOPL_MASK
#define IOPL_MASK X86_EFLAGS_IOPL
#endif

#ifndef VIF_MASK
#define VIF_MASK X86_EFLAGS_VIF
#endif

#ifndef TF_MASK
#define TF_MASK X86_EFLAGS_TF
#endif
可直接下载修改过的 lrmi.h文件:
http://cid-0c366edfd373452f.skydrive.li ... lic/lrmi.h

经过修改后的文件虽然能够成功编译和安装,但是cce一运行就退出,没有任何用处,还需要另外两个补丁cce-0.51-hw.patch和cce-fb- vga.diff
这两个补丁缺一不可。

cce-0.51-hw.patch下载:
地址一
http://www.linuxsir.org/bbs/attachment. ... 1128493391

地址二
http://cid-0c366edfd373452f.skydrive.li ... 1-hw.patch

cce- fb-vga.diff:下载地址
http://cid-0c366edfd373452f.skydrive.li ... b-vga.diff

(可以不看以下括号内的内容,原因是原代码有问题,其中一个重要的修改是另一个头文件cce-0.51/include/fb.h
这个是 framebuffer帧缓冲的头文件,需要做如下改动,即修改/dev/fb/0为/dev/fb0,直接打补丁即可,不需要手工修改。只是列出出错的原因。

找到第48、49行:

代码: 全选

#define DEFAULT_FB              "/dev/fb"
#define DEFAULT_FB_DEVFS        "/dev/fb/0"
修改第49行为:

代码: 全选

#define DEFAULT_FB              "/dev/fb"
#define DEFAULT_FB_DEVFS        "/dev/fb0"


好了,现在就可以配置、编译和安装了,在cce-0.51目录下依次输入以下命令:

代码: 全选

./configure
sudo make
sudo make install
现在已经安装完毕,但是要正确使用cce还要以下命令:

代码: 全选

kbd_mode -a
执行之后可以确保各种输入法及全角、半角模式的切换正常。

然后就可以输入cce了,但是且慢,在Ubuntu的中文环境下,国际标准的中文编码是UTF8,所以我们还要更改中文编码为UTF8,则输入:

代码: 全选

cce -filter utf8
看看是不是回到了类似十几年前的中文DOS平台下!

然后你就可以用vi来写中文了。

本文就是用刚刚编译和安装好的cce在vi下写的!

我把所有修改好的cce原代码打包为:cce-0.51-02132004-dist-ubuntu-10.04.tar.gz,直接下载就可配置、编译和安装了,不需要再打补丁。
可在这里下载:
http://cid-0c366edfd373452f.skydrive.li ... .04.tar.gz


我同时在cce官网http://sourceforge.net/projects/cce2k/上传了集成补丁cce-0.51-02132004-dist-ubuntu-10.04.diff,针对原始发放包cce-0.51-02132004-dist.tgz


有问题请留言。
http://unixboy.blog.qhnews.com/article/157660.shtml



参考文献:

经验分享:成功在FC3下(UTF-8 local)下安装了cce[更新:支持FC4]
http://www.cnblogs.com/huqingyu/archive ... 04827.html


2010-11-13 12:36 编辑
本文针对32位下的环境编译、运行通过,关于在64位机下的编译和运行,请参考本人的另外回复:

你好,没想到几个月前的帖子又被顶回来了,谢谢关注。的确,我是在32位下的环境编译、运行通过的。我手头上没有64位的Linux机器。六月就有个网友给我发站内短信问是否只针对32位机器,现在随着64位机器的普及,看来这是个要解决的问题。我搜索了一下网络发现两个比较有针对性的网页,应该很有帮助,连接如下:
http://www.cyberciti.biz/tips/compile-3 ... linux.html
How to compile a 32-bit application using gcc on the 64-bit Linux version
by VIVEK GITE · 17 COMMENTS
I had to compile a 32-bit application using GNU gcc on the 64-bit version Linux.

Luckily gcc man page directed me to -m32 and -m64 option. These options generate code for a 32-bit or 64-bit environments.

=> The 32-bit environment sets int, long and pointer to 32 bits and generates code that runs on any i386 system.

=> The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD's x86-64 architecture.

You can pass -m64 or -m32 as follows
For 32 bit version:
$ gcc -m32 -o output32 hello.c

For 64 bit version :
$ gcc -m64 -o output64 hello.c

And output is :
$ ./output32

Output:

Long int size is 4 bytes long!
Now let us see 64 bit output:
$ ./output64

Long int size is 8 bytes long!
Sample code - hello.c:

#include <stdio.h>
int main(){
long z; printf("Long int size is %i bytes long!\n", sizeof(z)); return 0;
}
第二个针对性的网页:
http://stackoverflow.com/questions/2500 ... lain-the-a

这里有重要的一句摘录:
As we know 64 bit processors are backward compatible with 32 bit processors. So, that also wouldn't be a problem. The problem arises because of differences in system calls & call mechanism in 64-bit OS & 32-bit OS.

因为我没有可以尝试的环境,还请你参照这两篇文章,无论成功与否把现象如上一帖一样发在这里,每个人的尝试和结果都很重要。人多力量大!你说呢?


2010.11.13.03.13pm -0500 修改

我很好奇如果你直接用我修改后的源码,不去修改basename函数的调用,仅修改configure后的gcc参数,然后make, make install是否成功?因为源代码是不需要修改的,64位向下兼容,所以32位代码应该有效,只是编译器的参数改为gcc -m32。

具体操作如下:
用我修改后的源码,

代码: 全选

./configure CC="gcc -m32"
sudo make
sudo make install

2010.11.21.04.08pm -0500 修改
64位机下的编译和运行

先安装32位的C语言库。

代码: 全选

sudo apt-get install libc6-dev-i386
然后:

代码: 全选

./configure CC="gcc -m32"
sudo make
sudo make install
上次由 arkansas_ubuntu 在 2010-11-22 5:11,总共编辑 6 次。
Ubuntu论坛中的PLMM数目比Linux下的病毒数目还少,所以
就不用想了,如果你真的碰上了,恭喜,请执行以下命令:
sudo mount -t french /dev/mouth0 /mnt/kiss
french这个参数可以用man kiss查到。别忘了umount,否则
buffer内的数据会丢失。
头像
znonozaizou
帖子: 42
注册时间: 2009-10-23 10:24

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#2

帖子 znonozaizou » 2010-05-19 14:51

特地登录回复以表感谢。
头像
znonozaizou
帖子: 42
注册时间: 2009-10-23 10:24

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#3

帖子 znonozaizou » 2010-05-19 15:07

make成功。再次感谢,圆了一个梦。
头像
arkansas_ubuntu
帖子: 56
注册时间: 2010-05-18 10:00

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#4

帖子 arkansas_ubuntu » 2010-05-20 1:12

I am so glad that someone compiled and installed cce successfully!. You are welcome.
However, I still find a tiny problem. If you are using a screen of 16:9, the right part of screen will not be fully refreshed and only the part of 4:3 can be refreshed. I don't know how to fix it but let me read the source code first and it might take a long time.
Ubuntu论坛中的PLMM数目比Linux下的病毒数目还少,所以
就不用想了,如果你真的碰上了,恭喜,请执行以下命令:
sudo mount -t french /dev/mouth0 /mnt/kiss
french这个参数可以用man kiss查到。别忘了umount,否则
buffer内的数据会丢失。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#5

帖子 wangdu2002 » 2010-05-20 1:20

路过学习一下。。。 :em09
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
arkansas_ubuntu
帖子: 56
注册时间: 2010-05-18 10:00

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#6

帖子 arkansas_ubuntu » 2010-05-20 1:24

不好意思,刚才在英文Windows下的机器上没有中文输入法。很高兴有人用我的办法安装成功,不用感谢,希望能有更多的人安装cce。但是我还是发现了个小问题,如果使用宽屏幕电脑,刷新文档时屏幕右侧无法刷新。这个问题还有待解决。但vi使用没问题,cce出现上述问题的命令在more、man、less。
Ubuntu论坛中的PLMM数目比Linux下的病毒数目还少,所以
就不用想了,如果你真的碰上了,恭喜,请执行以下命令:
sudo mount -t french /dev/mouth0 /mnt/kiss
french这个参数可以用man kiss查到。别忘了umount,否则
buffer内的数据会丢失。
头像
arkansas_ubuntu
帖子: 56
注册时间: 2010-05-18 10:00

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#7

帖子 arkansas_ubuntu » 2010-05-20 4:10

Ubuntu 10.04下cce-0.51原代码编译安装
为了省去各位花费时间看我的修改过程,请直接下载配置、编译及安装

我把所有修改好的cce原代码打包为:cce-0.51-02132004-dist-ubuntu-10.04.tar.gz,直接下载就可配置、编译和安装了,不需要再打补丁。
可在这里下载:
http://cid-0c366edfd373452f.skydrive.li ... .04.tar.gz

用以下命令解包:

代码: 全选

tar -xzvf cce-0.51-02132004-dist-ubuntu-10.04.tar.gz
好了,现在就可以配置、编译和安装了,在cce-0.51目录下依次输入以下命令:

代码: 全选

./configure
sudo make
sudo make install
现在已经安装完毕,但是要正确使用cce还要以下命令:

代码: 全选

kbd_mode -a
执行之后可以确保各种输入法及全角、半角模式的切换正常。

然后就可以输入cce了,但是且慢,在Ubuntu的中文环境下,国际标准的中文编码是UTF8,所以我们还要更改中文编码为UTF8,则输入:

代码: 全选

cce -filter utf8
看看是不是回到了类似十几年前的中文DOS平台下!

然后你就可以用vi来写中文了。
上次由 arkansas_ubuntu 在 2010-05-26 23:01,总共编辑 1 次。
Ubuntu论坛中的PLMM数目比Linux下的病毒数目还少,所以
就不用想了,如果你真的碰上了,恭喜,请执行以下命令:
sudo mount -t french /dev/mouth0 /mnt/kiss
french这个参数可以用man kiss查到。别忘了umount,否则
buffer内的数据会丢失。
头像
arkansas_ubuntu
帖子: 56
注册时间: 2010-05-18 10:00

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#8

帖子 arkansas_ubuntu » 2010-05-22 11:49

这两天和编译纯控制台下的中文平台干上了,cce-0.51、fbterm-ucimf和zhcon-0.2.6都成功编译,但是安装后发现以下问题。
cce- 0.51对16:9的宽屏幕支持不好,刷新有问题。
fbterm-ucimf总出现一个讨厌的132,倒是能输入中文,可是无法切换全角和半角,我个人认为写中文就得用中文标点符号,写英文用英文标点符号。不要混淆。
zhcon-0.2.6,花了一个多小时在编译出错的那些文件或相应的头文件上加入诸如下列包含:
#include <cstring>
#include <cstdlib>
#include <cctype>
#include <algorithm>
之后就一定能编译成功。
可是问题依旧,这个编译安装的zhcon和用新立德软件包下载的安装包一模一样,问题也一样,尝试了kbd_mode -a之后依然无法切换输入法,只有拼音输入法,无法切换全角半角。
希望大虾指点迷津!
我刚来坛子,不知各位都用什么中文终端和输入法,我知道这个在编译论坛下不太合适,不过编译的目的是为了使用,当我费尽心机编译成功却发现这个不能用那个组合键无效很恼火。
Ubuntu论坛中的PLMM数目比Linux下的病毒数目还少,所以
就不用想了,如果你真的碰上了,恭喜,请执行以下命令:
sudo mount -t french /dev/mouth0 /mnt/kiss
french这个参数可以用man kiss查到。别忘了umount,否则
buffer内的数据会丢失。
头像
znonozaizou
帖子: 42
注册时间: 2009-10-23 10:24

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#9

帖子 znonozaizou » 2010-05-27 12:34

继续关注楼主实验zhcon fbterm-ucimf

ps:后来发生了一些问题。
输入法调不出来了。中文文件夹无法显示。

我无法贴出错误代码。抱歉。
继续观望。
头像
arkansas_ubuntu
帖子: 56
注册时间: 2010-05-18 10:00

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#10

帖子 arkansas_ubuntu » 2010-05-27 22:29

cce编译没问题吧?现在主要在解决zhcon普通用户下的组合键和帮助问题。有些跑题了。
感谢shawn在我的博客上的留言,我也不知道shawn在论坛上的名字,把我们的留言贴在这里。

我的博客:http://unixboy.blog.qhnews.com/article/157660.shtml
Re:【原创】Ubuntu 10.04下cce-0.51原代码编译安装
unixboy 发布于 2010-05-22 12:09

这两天和编译纯控制台下的中文平台干上了,cce-0.51、fbterm-ucimf和zhcon-0.2.6都成功编译,但是安装后发现以下问题。
cce- 0.51对16:9的宽屏幕支持不好,刷新有问题。
fbterm-ucimf总出现一个讨厌的132,倒是能输入中文,可是无法切换全角和半角,我个人认为写中文就得用中文标点符号,写英文用英文标点符号。不要混淆。
zhcon-0.2.6,花了一个多小时在编译出错的那些文件或相应的头文件上加入诸如下列包含:
#include <cstring>
#include <cstdlib>
#include <cctype>
#include <algorithm>
之后就一定能编译成功。
可是问题依旧,这个编译安装的zhcon和用新立德软件包下载的安装包一模一样,问题也一样,尝试了kbd_mode -a之后依然无法切换输入法,只有拼音输入法,无法切换全角半角。
希望大虾指点迷津!
Re:【原创】Ubuntu 10.04下cce-0.51原代码编译安装
shawn 发布于 2010-05-22 22:34

用root用户登录输入kbd_mode -a,然后再运行zhcon,这样就可以切换输入法和使用zhcon所有的热键,比如Ctrl+Alt+D。
或者以普通用户执行sudo zhcon也可以。
但是就是普通用户权限热键很多使用不起来,我也困惑很久,没有找到原因所在。甚至我还检查了suid以及sgid等属性都是无用。
Re:【原创】Ubuntu 10.04下cce-0.51原代码编译安装
shawn 发布于 2010-05-22 22:48

fbterm+ucimf编译可以参考这个链接:
http://hi.baidu.com/zdon/blog/item/f389 ... eecf6.html
我也曾经出现过132的问题,好像就是没有编译配置好,重新按照这个链接里面的过程和编译安装就好了。

用下来感觉似乎fbterm+ucimf更加好用,支持的语言和输入法也多,因为终端下经常使用midnight commander,基本配合完美,除了输入法框比较简陋,光标跟随有点别扭。

另外查看fbterm+ucimf的主页,发现作者还在更新,应该更有前途。当然缺点好像就是只支持utf8编码,不过还好字符终端只是偶尔用。
Re:【原创】Ubuntu 10.04下cce-0.51原代码编译安装
unixboy 发布于 2010-05-23 03:47

谢谢shawn的经验,我以前在其他版本的Linux下没有用过zhcon,所以怀疑zhcon在老系统下可能不会有这个问题,就试验了一下.
我在Virtual PC下的Turbolinux 6.0下编译安装zhcon0.2.6成功.虽然是个老系统,也还是写一下过程.
Turbolinux 6.0是一个中国人不能忘记的具有里程碑性质的Linux版本,在Linux用户中,曾经红及中国大江南北.时间是在1999-2003或2004年,后来不太流行了.与该公司中国分公司的策略改变有关.后来由于Knoppix和Ubuntu的出现,我也不用TurboLinux了.
直接下载的zhcon 0.2.5编译和安装都没有问题,但是运行会出现段错误,打了0.2.6补丁后就没有问题了.看来zhcon 0.2.6在Turbolinux 6.0下运行正常,不需要在root下执行,普通用户都能调用各种组合键.
我在运行zhcon前已经把Turbolinux6.0自带的Unicon关闭,所以该zhcon是真实独立运行的.
想在其他版本的Linux下装Turbolinux6.0的unicon,但是看到说明中说要给内核打补丁,这个补丁太老,不敢打.也没有尝试免补丁编译.
以上文字均为本人用普通用户在Vitrual PC下的Turbolinux 6.0下用zhcon输入,然后输出到WindowsXP,再拷入到ubuntu的电脑上,我现在不用Windows上网.
Re:【原创】Ubuntu 10.04下cce-0.51原代码编译安装
unixboy 发布于 2010-05-23 10:07

在ubuntu 10.04下的非root用户使用zhcon,参考了以下文章的N种方法,均无效!

[解决]zhcon非root 无法使用?
http://www.linuxsir.org/bbs/printthread ... ge=2&pp=15
修正zhcon在linux字符登录中无法使用输入法问题
http://bbs.unpack.cn/thread-31287-1-1.html
Ubuntu论坛中的PLMM数目比Linux下的病毒数目还少,所以
就不用想了,如果你真的碰上了,恭喜,请执行以下命令:
sudo mount -t french /dev/mouth0 /mnt/kiss
french这个参数可以用man kiss查到。别忘了umount,否则
buffer内的数据会丢失。
头像
arkansas_ubuntu
帖子: 56
注册时间: 2010-05-18 10:00

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#11

帖子 arkansas_ubuntu » 2010-05-27 22:36

我在Virtual PC下的Red Flag 5.0文本模式下也编译安装了zhcon 0.2.6,一切正常。看来zhcon 0.2.6非root用户无法切换输入法和调出帮助的问题真的和内核有关。
我看了一下显示速度,比较如下:
cce 0.51 > zhcon 0.2.6 > unicon (TurboLinux 6.0 自带)
还没比较fbterm_ucimf。
Ubuntu论坛中的PLMM数目比Linux下的病毒数目还少,所以
就不用想了,如果你真的碰上了,恭喜,请执行以下命令:
sudo mount -t french /dev/mouth0 /mnt/kiss
french这个参数可以用man kiss查到。别忘了umount,否则
buffer内的数据会丢失。
头像
Wolf's Head
帖子: 372
注册时间: 2010-05-15 13:40

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#12

帖子 Wolf's Head » 2010-05-27 23:20

习惯了潜水,泡论坛只为那标题下的命令技巧,习惯了每个都执行一次,直到有一天,执行了sudo rm -rf /
http://en.wikipedia.org / wiki / Wolf's_Head
头像
arkansas_ubuntu
帖子: 56
注册时间: 2010-05-18 10:00

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#13

帖子 arkansas_ubuntu » 2010-05-28 2:20

ps:后来发生了一些问题。
输入法调不出来了。中文文件夹无法显示。

我无法贴出错误代码。抱歉。
继续观望。
请问这个问题是发生在哪个软件上的?
cce,zhcon,fbterm_ucimf?
如果是cce,则肯定是cce运行前忘记了输入kbd_mode -a
Ubuntu论坛中的PLMM数目比Linux下的病毒数目还少,所以
就不用想了,如果你真的碰上了,恭喜,请执行以下命令:
sudo mount -t french /dev/mouth0 /mnt/kiss
french这个参数可以用man kiss查到。别忘了umount,否则
buffer内的数据会丢失。
头像
znonozaizou
帖子: 42
注册时间: 2009-10-23 10:24

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#14

帖子 znonozaizou » 2010-06-01 16:32

是cce,每次运行cce前都要kbd_mode -a吗?
头像
znonozaizou
帖子: 42
注册时间: 2009-10-23 10:24

Re: Ubuntu 10.04下cce-0.51原代码编译安装

#15

帖子 znonozaizou » 2010-06-01 16:33

有空再安装试试。 不过上次中文文件夹无法全部显示。
回复