|
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 |
|
|
不点
银牌会员
不甘寂寞的人
积分 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 |
|
|
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
状态 离线
|
|
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 |
|
|
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 |
|
|
不点
银牌会员
不甘寂寞的人
积分 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 |
|