中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
English/Chinese Fix Translation
作者:
标题: [分享]grub4dos中文化补丁 上一主题 | 下一主题
bean123
中级用户




积分 214
发帖 34
注册 2004-3-10
状态 离线
『楼 主』:  [分享]grub4dos中文化补丁 使用 LLM 解释/回答一下

grub4dos中文化补丁是我在不点grub4dos pre12版本的基础上,加入Gandalf版本中文化的相关代码,使得既保留了不点的版本全部功能,又可以显示中文,有兴趣的可以拿来试试。

该中文化补丁是在不点原有基础上的递增,打补丁的顺序为:

原版grub-0.95 -> patch1-dos -> patch2-splash -> patch3-ntfs -> patch4-findroot -> patch6-chinese -> patch7-misc

详细的请看打包里的 compile 脚本

打包里的grub.exe和grldr是编译后的版本,可以直接使用

使用中文时,要在MENU.LST中加入 fontfile 命令,例如:


default 0
fontfile (hd0,0)/boot/fonts
splashimage (hd0,0)/boot/someimage.xpm.gz
title Menu
...

fonts在打包中,使用时请先抄到相应的目录

还有一点要注意一下,就是fontfile 命令要在 splashimage 命令前出现,而且如果你要 splashimage,则fontfile也必须指定,否则会出现黑屏,什么也没有显示。

下载地址:http://windrv.minidns.net:8080/release/grub4dos_patch.tar.gz


2004-9-14 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

不知道支不支持网络启动?Gandalf在Grub中文化主页上发布的源程序支持你所说的所有功能,同时支持网络启动,但Gandalf好象还没有打上for dos pre12的补丁。




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2004-9-15 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (653668)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

很好,感谢!

我下载看了,网络补丁好像没有。不过网络是一个很有问题的模块:据 Gandalf 说,当 GRUB 可执行文件的大小超过 150K时,网络部分无法工作。这说明,网络部分仍然存在严重问题。类似地,scdrom 部分也存在严重问题,所以,在发布中不包括这两部分是有理由的。

我本来就没有打算在我的发布中加入中文支持,因为我更注重一般的国际化语言支持。不过 bean的补丁可能部分地改变我的想法。我现在在考虑,也许,我会基于 bean 的补丁,做出一个支持国际化语言的补丁。当然,我不能肯定会成功。Gandalf 或者 bean 也可以考虑做这个工作。我目前在完善 0.3 的一些基础问题,时间不是很多。

谢谢 Gandalf 的NTFS,SCDROM,中文化,网络启动等大量工作,谢谢 bean 给我们带来的另外一些惊喜。




因为我们亲手创建,这个世界更加美丽。
2004-9-15 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
bean123
中级用户




积分 214
发帖 34
注册 2004-3-10
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

以下是引用Climbing在2004-9-15 8:19:54的发言:
不知道支不支持网络启动?Gandalf在Grub中文化主页上发布的源程序支持你所说的所有功能,同时支持网络启动,但Gandalf好象还没有打上for dos pre12的补丁。


原版的GNU GRUB 已经有网络支持了。要加网络启动,只要加些参数重新编译就行了。比如说我的网卡是 3c905C 的编译时用:./configure --diskless --enable-3c90x据我的测试,网络模块可以正常运作,无盘的PXEGRUB也能正常启动。



2004-9-15 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

我觉得网络模块存在问题,肯定还是因为代码不够严谨造成的(最可能的原因是缺乏程序的整体构思),我相信在不久的将来,随着需要的激增,这部分程序会越来越完善。期待那一天!至于Grub的中文化和国际化,我个人觉得并没有太大的意义,原因很简单,这会极度加大grub的体积与不稳定性,而且与grub的中文化与国际化直接相关的就是图形方式的支持,从我目前的测试情况来看,在某些显卡上会出现图形界面不能正常初始化的问题,导致菜单不能正常显示。所以我觉得还是以英文字符界面为基础,先完善一些十分实用的功能(我觉得是网络启动),然后再考虑其它。




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2004-9-15 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (653668)  编辑帖子  回复  引用回复
bean123
中级用户




积分 214
发帖 34
注册 2004-3-10
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

刚刚编译了带网络支持的grub4dos,下载请到 http://windrv.minidns.net:8080/wingrub/grub4dos_chs_net.tar.gz 。另外,昨晚发的中文补丁有一个小问题,导致编译带网络的版本时出错,现在已经改正了,新版的汉化补丁在:http://windrv.minidns.net:8080/wingrub/grub4dos_patch.tar.gz.
网络功能的使用简单介绍如下:
客户端:
首先设定网络,这有两种方法:
bootp
这使用bootp进行自动设置,服务器上必须正确地运行bootp服务。加入 --with-configfile 选项后,grub在服务器的返回信息中寻找tag 为 150 的参数,找到则把之作为 menu.lst 的路径,载入菜单。

ifconfig
这是手动设置网络,其中address是本地IP,mask本地掩码,server是TFTP服务器IP,而gateway是网关IP地址。
在指定了网络参数后,服务器上的文件可以用 (nd) 设备来访问。
以下是一个网络版 MENU.LST 的简单例子:
ifconfig --address=192.168.2.10 --mask=255.255.255.0 --server=192.168.2.1
fontfile (nd)/fonts
splashimage (nd)/redhat-8.xpm.gz
kernel (nd)/memdisk.gz
initrd (nd)/win99.zip
boot
服务器:
WINDOWS:
在WINDOWS下测试服务器建议使用tftpd32 (http://perso.wanadoo.fr/philippe.jounin/tftpd32.html), 它同时包含了DHCP和TFTP的服务器程序。示范的配置如下图:


LINUX/UNIX:
首先设置bootp服务器,示范的bootptab文件如下:
.defaults:\
:sm=255.255.255.0:\
:gw=192.168.2.1:
grub_client:\
:tc=.defaults:\
:ip=192.168.2.10:\
:ht=1:ha=00021cf82fb0:\
:T150="(nd)/menu.lst":
接着,把inet.conf文件中启动 bootpd 和 tftpd 的项前的 # 去掉,然后 kill -HUP `cat /var/run/inetd.pid`,完成。
目前在grub中支持的网卡有:
3c509 3Com509
3c529 3Com529
3c595 3Com595
3c90x 3Com90x
cs89x0 CS89x0
davicom Davicom
depca DEPCA and EtherWORKS
eepro Etherexpress Pro/10
eepro100 Etherexpress Pro/100
epic100 SMC 83c170 EPIC/100
3c507 3Com507
exos205 EXOS205
ni5210 Racal-Interlan NI5210
lance Lance PCI PCNet/32
ne2100 Novell NE2100
ni6510 Racal-Interlan NI6510
natsemi NatSemo DP8381x
ni5010 Racal-Interlan NI5010
3c503 3Com503
ne NE1000/2000 ISA
ns8390 NE2000 PCI
wd WD8003/8013, SMC8216/8416
otulip old Tulip
rtl8139 Realtek 8139
sis900 SIS 900 and SIS 7016
sk-g16 Schneider and Koch G16
smc9000 SMC9000
tiara Tiara
tulip Tulip
via-rhine Rhine-I/II
w89c840 Winbond W89c840, Compex RL100-ATX
请按照实际情况使用相应的grub.exe和grldr文件。



2004-9-15 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
windrv
中级用户




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

bravo!


2004-9-16 00:00
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

鼓励!我觉得现在应该把主要精力放在解决grub的网络模块在同时支持多个网卡时不稳定的问题。也就是说,最好实现一个编译版本支持所有网卡。偶不懂编程,不知道为什么同时支持多个网卡会出现问题,更不知道解决这个问题难度有多大。不过,我为高手们鼓与呼!另外,Virtual PC使用的网卡是tulip,但Virtual PC不支持BIOS32,所以编译时要加上参数:--enable-pci-direct




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2004-9-16 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (653668)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

Mr. bean,我将你编译的所有grub.exe做到了一张5760KB的MS-DOS 7.10启动软盘上,然后通过diskemu1x.bin + BCDW调用,经过试验,我的启动软盘工作还算是基本正常。但同时我还发现了几个问题: 1、Grub不支持BCDW和diskemu1x.bin模拟的大于1.44M的软驱。因此,从大于1.44M的启动软盘映像上启动Grub.exe,不能将菜单文件放在上面。否则找不到。 2、你编译的grub中不支持scdrom命令。3、再就是现在所有的支持scdrom的Grub对ISO9660文件系统支持的不太好,对于光盘文件系统,它的命令所操作的文件是严格区分大小写的。例如:
configfile (cd)/boot/grub/menu.lst

configfile (cd)/BOOT/GRUB/MENU.LST
两条命令绝对不可能同时执行。希望大家继续努力,不断改进。




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2004-9-19 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (653668)  编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

关于中文化, 我想谈一点认识.

我目前没有时间来做这个, 但我还是希望有人去做.

我觉得, 中文化距离国际化, 只有一步之遥, 现在中文化的工作已经完成, 不如就直接朝国际化努力吧.

Gandalf 的中文实现很有启发性, 我本人非常佩服, 觉得是个大大的工作, 非常了不起.

Gandalf 将中文字库放置在 0x500000, 这个字库的大小是 200多K.

如果我们实现 UCS2 中全部的 65536 个字符的显示, 所需要的字库大小是 2M, 也还算不大, 放置在扩展内存的顶部是比较合适的.

我们可以利用中断 int10/ah=11 (字符方式装入用户字库)来解决 unicode 字符显示问题.

我们一开始就不只是用 UCS2, 而是直接用 UCS4 作为内码, 但是字库就先用一个小的, 先实现 UCS2 中的那些字符.

只有国际化的实现, 最终才不至于走弯路, 否则, 如果一种实现只适用于中文, 那么, 这种实现是有缺陷的, 很有可能被将来的某个国际化的实现所取代, 这样, 我们现在的投入, 就是一种重复劳动, 或者说, 多少有些浪费资源和精力.






因为我们亲手创建,这个世界更加美丽。
2004-9-19 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
sdtzyq
新手上路





积分 4
发帖 2
注册 2006-8-7
状态 离线
『第 11 楼』:  请教 使用 LLM 解释/回答一下

我想编译自己的grldr还望指教.sdtzyq@163.com


2006-8-7 10:49
查看资料  发短消息  网志   编辑帖子  回复  引用回复
sunq
新手上路





积分 8
发帖 3
注册 2007-6-6
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

找字体很久了,试试看!
谢了

不能下载!

Last edited by sunq on 2007-6-7 at 01:21 PM ]


2007-6-7 13:17
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: