无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: zhaohj
打印 上一主题 下一主题

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
271#
发表于 2011-5-1 13:54:40 | 显示全部楼层
谢谢报告,是由于""引起的,
不小心被吃了一个引号.^_^.

等晚上才能修改上传了.
回复

使用道具 举报

272#
发表于 2011-5-1 15:01:34 | 显示全部楼层
抽空更新了,麻烦再试试看有没有其它问题.
回复

使用道具 举报

273#
发表于 2011-5-1 20:09:03 | 显示全部楼层
试了没有发现问题??

你看看(cd)的设备号是多少.

新版的find改动只影响硬盘设备对CD没有影响.

也许是其它BUG?

有cd设备没有理由找不到的.

[ 本帖最后由 chenall 于 2011-5-1 20:11 编辑 ]
回复

使用道具 举报

274#
发表于 2011-5-1 20:35:16 | 显示全部楼层
哦,看到上面的贴图我明白了.

不知是要算BUG,还是什么?

你们用的是什么虚拟机呀?CD设备是0x9f

而在find的定义中0x9f是属于硬盘的.所以才会这样..

你们用旧版的如果用以下命令来查找应该也是找不到的.甚至之前最早不支持(hdx)的版本也是找不到的.
find --devices=c /XXX

对一些我不是很清楚,CD设备可能的值到底是什么?0-0xff都有可能吗?还是..
回复

使用道具 举报

275#
发表于 2011-5-1 20:45:11 | 显示全部楼层
对cd处理了一下,应该正常了.

传上来试一下.

grldr.rar

127.5 KB, 下载次数: 13, 下载积分: 无忧币 -2

回复

使用道具 举报

276#
发表于 2011-5-1 22:51:12 | 显示全部楼层
自从支持输出转向开始就有进行限制了.并不是新版的问题

不能大于3K字节. >=0xc00就会提示这个错误的.
回复

使用道具 举报

277#
发表于 2011-5-1 22:57:52 | 显示全部楼层
这个就没有必要追究了吧,

没事非要这样子转?
回复

使用道具 举报

278#
发表于 2011-5-2 00:01:54 | 显示全部楼层
报歉,也许我最近脑袋瓜有一点老化了.

我又看不懂了.最近碰到好多次了,没能反应过来.
回复

使用道具 举报

279#
发表于 2011-5-4 10:12:08 | 显示全部楼层
目前无解,UNICODE显示的字体是完全由UNIFONT控制的.

即使是GRUB4DOS内部也没有办法处理.

你可以考虑自己写一个小程序,首先获取当前光标位置,显示完后再读取一下光标位置,两个位置之间的距离就是总长度了.

C语言的话,获取fontx/fonty变量的值就行了.
比如未显示之前读一次存为fontx1,fonty1
显示之后读一次存为fontx2,fonty2
如果fonty2不等于fonty1则已经跳行了.
fontx2-fontx1就是显示的长度.

另外如果不想写外部命令,直接用批处理也是可以获取fontx/fonty的值的.

根据GRUB4DOS.H的定义.
#define fontx ((*(int **)0x8304)[26])
#define fonty ((*(int **)0x8304)[27])

所以fontx的值获取方法如下
set /a fontx=26<<2+*0x8304
set /a fontx1=*%fontx%&0xffffffff
fonty类似,
再给你一个测试的批处理.
set /a fontx=26<<2+*0x8304
echo -n 1234567890 && read %fontx%
会得到0xa即10个字符.
注:如果没有加-n则读到的是0,因为回车后就是在下一行的起始位置了.
回复

使用道具 举报

280#
发表于 2011-5-6 14:11:49 | 显示全部楼层
直接打上补丁,并上传了,没有其它改变,未测试。
回复

使用道具 举报

281#
发表于 2011-5-7 19:51:49 | 显示全部楼层
OK,直接打上补丁了。
最近GOOGLE帐号登不上,改天再把你的帐号加进去,以后你也可以帮忙维护。
^_^
回复

使用道具 举报

282#
发表于 2011-5-8 14:54:14 | 显示全部楼层
正常的fontx的值只是一个内存地址,是固定的.

你需要再读取一下这个内存地址的值就行了.

我上面只是为了测试直接使用read %fontx%读,你可以用
set /a x1=*%fontx%&0xff
回复

使用道具 举报

283#
发表于 2011-5-9 23:13:20 | 显示全部楼层
编译失败的会有错误提示的,你看一下错误提示是什么。

我这里编译一切正常。

[ 本帖最后由 chenall 于 2011-5-9 23:17 编辑 ]
回复

使用道具 举报

284#
发表于 2011-5-9 23:32:37 | 显示全部楼层
原帖由 zxw 于 2011-5-9 23:20 发表
用slitaz编译的,没有什么提示。也唯独unifont、unitest两个命令没有编译成功。
看了一下源代码,include的函数都有啊。奇怪。


在src目录下执行./build会有提示的。
回复

使用道具 举报

285#
发表于 2011-5-10 00:01:27 | 显示全部楼层
可能是大小写敏感。

修改font/unicode/unicode.h里面的语句
#include "../../include/typedef.h"

直接改成下面的应该就可以了。
#include "TypeDef.h"
回复

使用道具 举报

286#
发表于 2011-5-10 10:47:10 | 显示全部楼层
外部命令的源码下载
http://grubutils.googlecode.com/svn/trunk
回复

使用道具 举报

287#
发表于 2011-5-10 12:14:17 | 显示全部楼层
原帖由 2010roytam1 于 2011-5-10 12:08 发表
編出來的不能用…
build chkpci.c --> ./tmp/chkpci.o --> ./bin/chkpci
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 00000000080480b8
build diskid.c --> ./tmp/diskid.o -->  ...


你用什么编译的呀,

外部命令目前只能在LINUX环境下编译才可以使用。
回复

使用道具 举报

288#
发表于 2011-5-10 13:44:18 | 显示全部楼层
所有的命令都不能用?
可以用十六进制编程器打开这些文件,看看文件尾部有没有GRUBEXEC的签名。
回复

使用道具 举报

289#
发表于 2011-5-10 13:45:34 | 显示全部楼层
原帖由 2010roytam1 于 2011-5-10 13:43 发表
另:Unifont對單字節的顯示有問題。
120928


使用了--all-font?这个只有一些等宽字体显示效果才会比较好。
回复

使用道具 举报

290#
发表于 2011-5-10 14:34:20 | 显示全部楼层
原帖由 2010roytam1 于 2011-5-10 14:06 发表

一調用我自編的外部指令QEMU就重啟了。


我用的字体是等宽的。


看来我是帮不上什么忙了,对这些不熟悉,也许不点会知道些什么。

关于字体,这个目前的处理方法不是很完美。有些字体显示起很就很好看,有一些就会有偏差。我没有搞明白。
回复

使用道具 举报

291#
发表于 2011-5-10 20:53:45 | 显示全部楼层
原帖由 2010roytam1 于 2011-5-10 19:41 发表

build 中的 gcc 加上 "--entry main" 可消除警告,但 gcc 4.4/4.5 編的都不能用…
chenall 你是用哪版的 gcc 和 binutils 來編譯的?



[email=root@colinux]root@colinux[/email]:~# gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.3-5ubuntu4' -
-with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,
fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecd
ir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --wit
h-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gn
u --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all -
-with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-
linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
[email=root@colinux]root@colinux[/email]:~# ld -v
GNU ld (GNU Binutils for Ubuntu) 2.19.1
[email=root@colinux]root@colinux[/email]:~#
回复

使用道具 举报

292#
发表于 2011-5-10 21:38:58 | 显示全部楼层
原帖由 zhaohj 于 2011-5-10 21:17 发表
以前从没有处理过P处理带参数同时P处理内部又有call :label 参数1 参数2..
这种情况,:label里面的参数怎么写,与P处理的参数怎么区分?


CALL :LABLE 相当于执行了一个新的批处理,只不过是从指定标签处运行罢了。

如果没有明白,可以自己用WINDOWS的批处理自己试试。
回复

使用道具 举报

293#
发表于 2011-5-11 11:52:50 | 显示全部楼层
@zxw
这个只能自己控制,输出转向只是负责把输出转向,其它的一概不管。

@zhaohj
很早就有支持的吧,看看MODBOOT就知道了。

MODBOOT里面一些菜单是使用变量控制的。
回复

使用道具 举报

294#
发表于 2011-5-11 11:59:59 | 显示全部楼层
原帖由 2010roytam1 于 2011-5-10 21:41 发表

奇怪。
我的ubuntu 10.04上裝了gcc 4.3.4/4.4.3但還是不行…
120961


我对这些不清楚,所以没有办法帮上你了,等不点看看。
回复

使用道具 举报

295#
发表于 2011-5-11 14:33:26 | 显示全部楼层
原帖由 fdd_ds 于 2011-5-11 14:21 发表
汇报一个现象

(ud)区启动实机,U盘识别为(hd0),进行一次磁盘交换,U盘变为(hd1),再用configfile (绝对路径)调用(ud)区的lst,不能成功,只能到命令行,按ESC也没反应。如再进行一次磁盘交换,U盘为(hd ...


这个很正常,ud就是U盘的一部份,你把U盘的位置改掉了,它当然找不到了。
回复

使用道具 举报

296#
发表于 2011-5-12 16:03:07 | 显示全部楼层
@fdd_ds
好像你还是没有明白。
交换磁盘之后(ud)里面的文件已经不可以访问了,(ud)文件列表能用那是因为缓存。

@tuxw
好像目前就是这样子的啊。insmod之后这个命令就相当于内部命令了。
回复

使用道具 举报

297#
发表于 2011-5-12 16:25:54 | 显示全部楼层
哦,明白了。这个应该可以通过一个扩展命令列表来实现。

不过DOS的COMMAND.COM可以做到这样吗?我印像中是不行的吧。
回复

使用道具 举报

298#
发表于 2011-5-17 09:21:19 | 显示全部楼层
@tuxw
可以使用“”,“”之内的参数都算是一个。

另外关于SHELL的问题,我觉得与其让GRUB4DOS处理,还不如自己处理。
WENV也可以有自己的SHELL,比如执行WENV SH之后进入的SHELL就是WENV自己的SHELL,
这时的命令处理是完全就WENV来处理的。想怎么办就怎么办。

另外要实现一个SHELL就比较简单的。
1.获取用户的输入get_cmdline
2.命令处理器再处理上面输入的内容。
3.属于自己的命令由自己解释,不认识的直接丢给GRUB4DOS处理就行了。
回复

使用道具 举报

299#
发表于 2011-5-17 20:05:25 | 显示全部楼层
很早之前就已经有了
--length参数指定要查找的文件长度。
回复

使用道具 举报

300#
发表于 2011-5-17 21:52:59 | 显示全部楼层
原帖由 zxw 于 2011-5-17 21:42 发表
我原先认定--length参数能达到这个要求。但请看图:

121568

第一条命令,返回B,显示超出--length所控制的范围了。


因为查找是以16个字节为基数的,所以最好是16的倍数。

我记得之前曾经尝试过修正这个情况的,改天抽空再看一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-13 00:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表