|
|
第 1 帖 | |
|
|
标题: Unicon重见天日 Unicon重见天日
我是上个世纪70年代出生的上海人,最早接触的电脑是街机游戏,在小学里中午上学途中,只玩过一次,2元钱换来3分钟的快乐.在读闵行中学初中部的时候,学校里有 Apple II 和 LASER 300,非电脑兴趣小组的学生只能在电脑房外看看放拖鞋的柜子,偶尔一个星期进去上节电脑课.我到现在还记得机房里那股电子元件,机箱塑料受热发出的气味,真是让我上瘾.为了能混进电脑小组,我曾经一连几个星期在兴趣小组活动的时间到电脑房外晃悠,总算电脑老师发慈悲,收留了我,后来还推荐我去少年宫学电脑.DOS3.3是我最早接触的操作系统,我这个年纪的人都还记得吧?一个黑底白字的屏幕,没有鼠标,软盘启动,5英寸的那种,软软薄薄的,软驱运转起来喜欢发出剃头一样的声音.统统是命令行的界面,编程用BASIC,PASCAL,DBASE,LOGO,游戏有LoadRunner什么的.我这个人就是喜欢往机器的最底层去钻研,看见用张5寸的软盘塞进去,一开机,游戏就自动运行,真是神奇啊,我到处找资料,最后知道在机器里住着个监控系统,为了搞清楚监控系统是怎么回事,偷偷地拿少年宫老师的打印机和纸张来打印,老师发现后大发雷霆.少年宫的电脑老师姓阴,名字我记得,这里先不说,免得他生气.老师是个白面书生,戴副眼镜,很聪明,用PASCAL编了个猜数游戏让我们去参加比赛,得了奖. 后来我考进了上海市第一师范,也没怎么再正经学过电脑,四年光阴有三年都花在练钢琴上了,总算和键盘有缘吧,反正现在都忘记了. 工作后在学校里当小学老师.在1995年时学校里配了许多486的兼容机,8M内存,640M的硬盘,运行windows3.1什么的,前两年学校里买废品,我花20元买了一台,后来给它升级,装了64M内存,40G硬盘,slackware-current,当然少不了Unicon.现在它还在我的阁楼上放着.我最遗憾的事是当时没把 Apple II 和 LASER 300 的机子也买下来,主要是怕老婆说我乱花钱.我对自己的童年感到最最遗憾的事就两件,另一件就是我妈把我小时候积攒的连环画都送人了. 如今我家中有三台电脑,一台是自己配的,华硕P4B533的主板,金士顿256M,GF4MX440,60G硬盘什么的,反正现在也还凑合,还有一台是学校老师自己家里淘汰不要的,CY433,SLOT1接口接触不良,我花120元配了个815ep的主板什么的,现在还行.反正我大多数时间都是在学校里抱着我的486上网,玩BT下载什么的,办公室人多,自己有台电脑用着方便.看来看去,都是黑乎乎的屏幕,大家都以为我有病.哼,谁会把家里好的电脑搬来? 各种中文控制台我是都试过的,zhcon,cce都很好,只是Unicon实在是用起来最方便的一个,zhcon能很好适应内核的升级,基本不需要太多的修正就能运行,只有那个包含头文件缺失的小问题,可是zhcon一开,screen什么的使用伪终端的程序好像都不能运行,控制台间切换会有黑屏(486上),控制台间不能用鼠标复制,等等.cce有点小bug,许多人会报告启动时黑屏;我的问题是字体大小什么的调不好,但是cce可以在hurd上运行,这时毛病也有,屏幕中间最左端有个短横去不掉. 说来说去,我最喜欢的还是Unicon.但是要在今天用上Unicon,还不是件容易的事,原因如下: 1> Unicon的源码最近一次发布是2001年9月24日,这是我根据源码包的编号猜的,源码包全名是 unicon-3.0.4-20010924.tar.gz ,然后有韩国人打过一个补丁 vd_unicon-userland-20031122vd.patch,这两个都是关于Unicon输入法部分的源码.今天,在slackware10.1上已不能正常编译,主要是g++头文件更新,还有是其中的部分函数过时了. 2> 要使Unicon工作,还要对内核打补丁,我试过最好的2.4版内核补丁是 vd_kernel-2.4.21+unicon-3.0.4-20010924.patch 和 vd_kernel+unicon-3.0.4-20010924-2.4.21-2.4.22-incr.patch,内核2.6版的补丁是一个日本人维护的,最新的网站好像是http://vdlinux.sourceforge.jp/dists/. 我使用后发现Unicon输入法不能工作,就发邮件向他询问,得到的答复是输入法不关他的事,这在他的网页上有记录的. 3> 使用framebuffer的控制台可以用图片作背景,有朋友也想在zhcon上用用,但我没见过有人去整的.在2.4版上Unicon可以配合fbsplash(gensplash),但有网友说在2.6版的内核上不行,我没有试过,据这个论坛里的帖子说,gentoo有补丁可以解决这个问题,我还没有研究. 今天,我在经过连续两周的奋斗后,终于整出了可以在内核2.6.14.2上运行的Unicon,包括输入法部分,主要工作向大家汇报如下: 1> 输入法部分:更正过时的头文件,使得g++编译的部分不再出现警告.不足之处是具体的输入法模块是c语言的文件,有警告出现,但不影响使用. 更正过时的string方法,使得程序可以正常读取unicon.ini文件.文件在MyConfig.cpp. 更正Unicon输入法在内核2.6.14.2上运行的一个bug,问题症状是输入条跑到屏幕的顶部去了,不足之处是更正的手法很次.文件在 SysConfig.cpp.而这个问题产生的原因是内核中的fbcon.c发生了很大变化,这里揭示出像Unicon这样的基于内核的中文平台的一个最大的弱点是受内核发展的牵制很大,zhcon基本没有这个问题,只要内核暴露出来的接口不变,zhcon就可以一直用下去.当然,能够通过修改内核的方式提高自己的编程能力也是Unicon存在的很好借口. 2> 内核补丁部分:主要是修改 drivers/input/keyboard/atkbd.c,在 atkbd_interrupt 函数的 input_event 函数前进行拦截,试图过滤 Unicon 需要的键,然后修改 include/linux/tty_flip.h,这是完全仿照2.4版的修改方法。把 xl_keymasks.c 请回到 drivers/video/unicon. 更正 xl_unikey.c 中刷新底部输入条的位置参数,方法同输入法,太次了. 最终效果: 我想要装个framebuffer控制台下面截图的软件,我知道有几个,还没试了. 反正使用时跟2.4版的一样就是了. 要说不同,只有三点: 1> 2.6版的内核采用udev,所以要采取措施使/dev/unikey加入 /etc/udev/scripts/make_extra_nodes.sh ,不然,每次开机都要mknod. 2> 除了第一个控制台外,其他的控制台都要运行loadunimap,不知有没有办法在开机脚本中一次解决这个问题,loadunimap本身已经过时,应该用setfont来取代. 3> 关机时一行行的警告多了点,需要在关机脚本中先kill unicon的进程. 另外,这次修改是在默认安装的Slackware10.1的版本上进行,10.2正在下,虽然我不是很愿意没事找事的去升级到没有gnome的版本。不过我想在10.2上应该是没什么大问题的。 安装过程: 0> 下载点: gmail http://mail.google.com 名字: mysoft008 密码: mysoft007 永硕E盘 http://hj18.ys168.com 用IE浏览 mofile 匿名提取文件连接 http://pickup.mofile.com/7857813975846167 或登录Mofile,使用提取码 7857813975846167 提取文件 1> 输入法: 源码包: unicon-3.0.4-20010924.tar.gz 补丁: unicon-3.0.4-update.patch 放在同一个目录下面. 安装步骤: PHP 代码:
2> 内核补丁 原因是我没有掌握好patch的用法. 源码包: linux-2.6.14.2.tar.bz2 补丁: unicon-kernel-20051125.patch 字体文件: unicon-fonts.tar.gz 为表达方便,把这些文件放在/usr/src/ 然后以root身份执行: PHP 代码:
在确定其他 config 的选项后,编译内核 PHP 代码:
在 lilo 或 grub 或其他鬼知道是什么的引导管理器中设定内核加载,我就不多说了,不明白的看置顶帖.就是要加上这句: PHP 代码:
PHP 代码:
在 /etc/rc.d/ 中放个文件叫做 rc.unicon PHP 代码:
PHP 代码:
在最后加上: PHP 代码:
PHP 代码:
PHP 代码:
在 PATH=/sbin:/etc:/bin:/usr/bin的后面加上 PHP 代码:
__________________
生活是个骗子,就像在《无极》里说的:“不管你得到什么,最后都会失去更多”。 个人博客:http://hjonline.bokee.com/ 此帖于 05-11-29 07:45 被 hj_18 编辑. |
|
|
|
|
|
|
|
第 2 帖 | |
|
|
太好了..一会试试
__________________
天鸟霹鸣食死狗,圣兽雳嘶踏残窗-----Gentoo无敌 www.gentoo-wiki.com 是好地方啊! |
|
|
|
|
|
|
|
第 3 帖 | ||
|
|
引用:
|
||
|
|
|
||
|
|
第 4 帖 | ||
|
|
引用:
|
||
|
|
|
||
|
|
第 5 帖 | |
|
|
scim说是很快就发布控制台的输入法,可是没有了动静。
unicon这种被动的打补丁做法实在是郁闷的很。 不知道能不能做成那种不用打补丁,而能在内核源码支持下单独编译成内核模块的形式 这样维护起来也方便,使用起来也方便。 谢楼上的兄弟,马上试试去!能使用输入法就不错,现在2.6内核下的unicon虽然能显示汉字,但是输入法不能使用也实在是够郁闷的。 |
|
|
|
|
|
|
|
第 6 帖 | ||
|
|
引用:
|
||
|
|
|
||
|
|
第 7 帖 | |
|
|
是难度大点,但是完成了以后就几乎无忧了,不是吗?
要是做不成这样的话实在是没有发展前途,只能跟在kernel后面跑,不是根本办法。 既然scim有意放出控制台的输入法(估计已经差不多了),你不如参与苏哲的这个东西,然后为scim写一个kernel模块,这样也能达到unicon的效果。毕竟unicon真的是老了。 |
|
|
|
|
|
|
|
第 8 帖 | |
|
|
我打的是这两个补丁,中文能正常显示,但不能 输入中文
vd_unicon-kernel-20051029-2.6.14.patch vd_unicon-kernel-fonts-20040205.patch 楼主,我想问下,要让中文得以输入,应该还打哪个patch。
__________________
OS: Slackware 10.2 GNU/LINUX Kernel: 2.4.31+2.6.14 Celeron1 466MHZ+Asus cusl2 i815E+128x2 SDRAM+YMH724F+Seagate 20Gx2+Fireball10G |
|
|
|
|
|
|
|
第 9 帖 | ||
|
|
引用:
|
||
|
|
|
||
|
|
第 10 帖 | ||
|
|
引用:
|
||
|
|
|
||
|
|
第 11 帖 | ||
|
|
引用:
__________________
Simplicity is beauty! |
||
|
|
|
||
|
|
第 12 帖 | |
|
|
我怎么打不上这个补丁啊,还是有问题。
搂住能提供你编译出来的ko文件吗? |
|
|
|
|
|
|
|
第 13 帖 | |
|
|
Unicon支不支持utf8阿?
__________________
This is who I am My Blog: http://zlbruce.blogspot.com/ |
|
|
|
|
|
|
|
第 14 帖 | ||
|
|
引用:
|
||
|
|
|
||
|
|
第 15 帖 | ||
|
|
引用:
|
||
|
|
|
||