中国DOS联盟论坛

中国DOS联盟

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

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

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




积分 214
发帖 34
注册 2004-3-10
状态 离线
『楼 主』:  [分享]grub4dos中文化补丁

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-15 16:13:40编辑过]




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

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

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



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

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 3 楼』:  

很好,感谢!

我下载看了,网络补丁好像没有。不过网络是一个很有问题的模块:据 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 楼』:  



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

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

[此贴子已经被作者于2004-9-15 16:12:48编辑过]




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

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 5 楼』:  

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



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




积分 214
发帖 34
注册 2004-3-10
状态 离线
『第 6 楼』:  

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

ifconfig [--server=server] [--gateway=gateway] [--mask=mask] [--address=address]
这是手动设置网络,其中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 16:23:51编辑过]




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




积分 385
发帖 118
注册 2003-11-11
状态 离线
『第 7 楼』:  

bravo!

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

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 8 楼』:  

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



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

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 9 楼』:  

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 楼』:  

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

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

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

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 楼』:  请教

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

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





积分 8
发帖 3
注册 2007-6-6
状态 离线
『第 12 楼』:  

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

不能下载!

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

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

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


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



论坛跳转: