无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5351|回复: 34
打印 上一主题 下一主题

yaya 留意,0.4.6 不支持 geometry --lba127sector 参数,是丢掉补丁了吗?

[复制链接]
跳转到指定楼层
1#
发表于 2014-10-26 02:17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
记得你上次专门检查过 0.4.5 和 0.4.6,消除了差别。但仍然有补丁丢失。

再检查一下,消除死角。

2#
发表于 2014-10-26 17:09:12 来自手机 | 只看该作者
不点,还是天天忙g4d
回复

使用道具 举报

3#
 楼主| 发表于 2014-10-26 17:15:54 | 只看该作者
x9tian 发表于 2014-10-26 17:09
不点,还是天天忙g4d

有人忙,我不太忙了。
回复

使用道具 举报

4#
发表于 2014-10-26 17:28:10 来自手机 | 只看该作者
点大,你的DriveDroid  能做附件发上来么,我一直是修改下手机里面的那个驱动iso文件为启动盘做维护盘,因为做在手机自带存储空间里好多电脑不能正常进入,感觉你的drivedroid 好符合需要
回复

使用道具 举报

5#
 楼主| 发表于 2014-10-26 17:48:26 | 只看该作者
x9tian 发表于 2014-10-26 17:28
点大,你的DriveDroid  能做附件发上来么,我一直是修改下手机里面的那个驱动iso文件为启动盘做维护盘,因 ...

你的问题提得好棒啊。你以为 chenall 就是我,chenall 在忙,就等于是我在忙。

drive droid 不是我的,我是从 chenall 那里听到的。也许是 chenall 的,也许是别人的。

我不太了解,真的抱歉。

回复

使用道具 举报

6#
发表于 2014-10-26 17:59:17 来自手机 | 只看该作者
C大和不点大还是分得清,汗我以为你们和g4d相关的成果都是共享的
回复

使用道具 举报

7#
 楼主| 发表于 2014-10-26 18:17:40 | 只看该作者
本帖最后由 不点 于 2014-10-26 18:40 编辑

大家大概有一点是共同的。那就是,凭兴趣开发软件,本来是给自己用,由于不指望因此谋利,就共享出来让别人随便使用。

在技术上,差别蛮大的。我熟悉的东西,chenall 不一定太熟悉,而 chenall 熟悉的,我也不一定很了解。


大家走到一起来,也是偶然的,是缘分。是碰巧了,大家都有相同的兴趣和爱好,才走到一起的。没人号召大家都来到这里开发 grub4dos。

在这种自由当中,才能发挥每个人最大的优势。
回复

使用道具 举报

8#
发表于 2014-10-26 19:57:50 | 只看该作者
x9tian 发表于 2014-10-26 17:28
点大,你的DriveDroid  能做附件发上来么,我一直是修改下手机里面的那个驱动iso文件为启动盘做维护盘,因 ...

DriveDroid 直接从官方下载的,我是从Google Play上下载的,对国内的市场不太放心。
除非明确知道或没有别的选择,否则我只从Google Play上下载软件。
回复

使用道具 举报

9#
发表于 2014-10-26 20:23:14 来自手机 | 只看该作者
chenall 发表于 2014-10-26 19:57
DriveDroid 直接从官方下载的,我是从Google Play上下载的,对国内的市场不太放心。
除非明确知道或没有 ...

C大  我就是没安google 服务框架,也是对国内市场不放心所以才开口找你们要
回复

使用道具 举报

10#
发表于 2014-10-27 10:44:42 | 只看该作者
x9tian 发表于 2014-10-26 20:23
C大  我就是没安google 服务框架,也是对国内市场不放心所以才开口找你们要

传了一个最新版的在这里

http://pan.baidu.com/s/1qWluroS
回复

使用道具 举报

11#
发表于 2014-10-27 15:22:24 | 只看该作者
记得你上次专门检查过 0.4.5 和 0.4.6,消除了差别。但仍然有补丁丢失。

上次检查时注意到了这个补丁。记得当时你只让 chenall 把这个补丁打在 0.4.5c 上。
由于 0.4.6a 加载内置 usb 驱动后,按 127 扇区读取失败后自动改为按 1 扇区读取(按提示拔插一次 u 盘,不需要重启)。
如果不点觉得此补丁应当打上,可告知 chenall 。由于是公共补丁,我不方便打在 0.4.6a 上发布。
回复

使用道具 举报

12#
 楼主| 发表于 2014-10-27 16:40:47 | 只看该作者
0.4.6 是直接加载 USB 驱动吗?是在内置菜单之前就加载了 USB 驱动、完全脱离主板 BIOS 了?如果是的,那就不需要打这个补丁。如果不是的,请看下文。

当内置菜单开始执行的一刻,此时还不曾有过 C 语言的读盘动作。此后,如果有读盘动作,比如去查找 menu.lst 文件,(不管找到与否)则会以 127 扇区读的方式去调用汇编语言磁盘读函数。这在 buggy 电脑上会立即引起死机。因此,必须在读盘之前执行 geometry --lba1sector 命令,这条命令会指示汇编语言函数按照单扇区读的方式去完成 127 扇区的读,也就是说,把 127 扇区读(一个读盘动作)转换成 127 个单扇区读。否则,机器死掉了,任何信息也看不到。

内置菜单第一条命令设置为 geometry --lba1sector,即可避免启动时死机。出菜单后,可以在默认菜单项中切换到 geometry --lba127sector 来满足大多数情况下的高速读盘的需要,这正是 multimbr 项目所采取的方法。此时,设置 geometry --lba127sector 当然在 buggy 电脑上会引起死机,不过,最起码用户看到了初始的菜单,我们在初始菜单中给出另外一个菜单项,用户有机会选择这个菜单项,而不再切换到 127 扇区的读,这样,用户就可以继续正常启动了,不会发生失败,只不过启动速度慢罢了。

不知道我说得明白与否。我也不知道 0.4.6 对此情况处理了没有。如果没有处理,那就需要打上补丁。如果处理了,你说说处理的细节,以便我调整 multimbr 项目的菜单结构来适应你的处理方式。

正常的 grub4dos 的发布,内置菜单并未添加 geometry --lba1sector 参数,那是出于兼容性的考虑。但是,不添加这条命令,就不能在那台 buggy 电脑上正常启动,是会死机的。

multimbr 就是为了处理这些极端情况的。0.4.5 中已经打上了 geometry 的补丁,可以用于 multimbr 项目。0.4.6 没有打上补丁,那就无法用到 multimbr 项目上了。

回复

使用道具 举报

13#
发表于 2014-10-27 17:15:17 | 只看该作者
usb 驱动是在菜单中加载的。看来应当打上补丁。有劳  chenall 了。
回复

使用道具 举报

14#
 楼主| 发表于 2014-10-27 17:26:31 | 只看该作者
本帖最后由 不点 于 2014-10-27 17:29 编辑
2011yaya2007777 发表于 2014-10-27 17:15
usb 驱动是在菜单中加载的。看来应当打上补丁。有劳  chenall 了。


这个补丁在 0.4.5 上已经打过了。是不是你打上了之后,0.4.5 还要自动重复打一次?如果不会自动重复打,那我觉得你也可以直接打在 0.4.6 上。

我似乎觉得是你上次查漏补缺的时候漏网了,你只不过是需要修复上次的错误罢了,不知道我理解得对不对。

回复

使用道具 举报

15#
发表于 2014-10-27 17:48:10 | 只看该作者
不点 发表于 2014-10-27 17:26
这个补丁在 0.4.5 上已经打过了。是不是你打上了之后,0.4.5 还要自动重复打一次?如果不会自动重复打 ...

这个补丁的来源在哪?我看下。

估计是源码搬移之前的,那就可以直接打在0.4.6上。

如果是源码搬移之后的不会漏网,现在0.4.5c有改动一般都可以直接并入到0.4.6上,一个命令git merge 就行了。
回复

使用道具 举报

16#
 楼主| 发表于 2014-10-27 17:53:08 | 只看该作者
补丁在哪,恐怕也不容易找了。不过,0.4.5 已经打全了补丁。只需找差别便可。

我试试看能否找到原始补丁。也许通过比较 0.4.5 和 0.4.6 的差别也可找到应该打的补丁。

回复

使用道具 举报

17#
发表于 2014-10-27 20:12:12 | 只看该作者
我这种非专科出身的外行还是老老实实的使用大能们的工具就行了,不要再研究了
回复

使用道具 举报

18#
发表于 2014-10-27 20:51:33 来自手机 | 只看该作者
chenall 发表于 2014-10-27 10:44
传了一个最新版的在这里

http://pan.baidu.com/s/1qWluroS

谢谢C大,已经下载了
回复

使用道具 举报

19#
 楼主| 发表于 2014-10-27 21:52:27 | 只看该作者
通过 git 上的更改记录,我找到相关的改动了,是 2013-12-14 的改动。chenall 也可看看那次改动的补丁。

其中可能有些部分已经被 yaya 整合到 0.4.6 了。

整个补丁都得整合到 0.4.6 上才行。补丁很大,检验起来颇费力气。不知道 chenall 有没有时间来逐条语句进行检验。主要是不要重复整合。

我也可以慢慢核对,但要拖后一些时日,因为工作量太大,我怕身体吃不消。

回复

使用道具 举报

20#
发表于 2014-10-28 09:16:26 | 只看该作者
估计是源码搬移之前的,那就可以直接打在0.4.6上。

要是这样的话,我自己大补丁吧。

请教 chenall :
    1. 合并改动执行 “git merge grub4dos/master” 是要先切换到 master 分支吗?
    2. 执行 “git merge grub4dos/master” ,会把源码搬移之后所有的 0.4.5c 补丁(0.4.6a没有的)打上吗?
    3. 如果第 2 项成立,如何屏蔽不应打在 0.4.6a 上的补丁?
回复

使用道具 举报

21#
 楼主| 发表于 2014-10-28 09:38:42 | 只看该作者
本帖最后由 不点 于 2014-10-28 09:43 编辑

你先把 2013-12-14 的补丁制作出来(它是 0.4.5 的补丁),然后在你的本地,用 patch 命令把补丁打在 0.4.6 上,看看哪些被拒绝,记录一下被拒绝的部分,然后确认究竟是因为以前打过补丁而被拒绝,还是别的原因。已经打过的部分,当然不用重复打了。但是没有打过而被 patch 命令拒绝打上的部分,必须手动逐一打上。这次补丁不止涉及 geometry,还涉及到 ud 等多处改动,统统需要打上。

通过比较 2013-12-14 之前和之后的版本,就可以制作出那个补丁文件了。用 svn 很容易做。如果是 git,我倒是不知道怎么做。

等你做好 0.4.6 的补丁之后,再考虑提交到 git 上。如果你拿不准如何提交,可以交给 chenall,让 chenall 提交。依我的理解,0.4.6 的补丁已经不再涉及 master 了。你只需打好 0.4.6 即可。不知道我理解得是否准确。


漏网的补丁可能还有很多。yaya 需要下大功夫把补丁都找全。确切地说,我认为 yaya 应该基于现在的 0.4.5 而做出一个 0.4.6 来,这样就不用再去找补丁了。我觉得这个办法既可靠,又简单。

回复

使用道具 举报

22#
发表于 2014-10-28 17:11:09 | 只看该作者
@yaya
git merge需要先切到到目标分支,比如要把master的改动并入0.4.6需要先切换到0.4.6分支,然后再执行git merge grub4dos/master

用git merge合并的话如果版本库不是同源,即不是线性的情况下很麻烦的,会有许许多多的冲突。
目前的版本库,自新建的0.4.6分支以来才是线性的,之前的不是,所以不能直接用git merge来合并。

我觉得不点说的有理,如果基于现在的0.4.5做出一个0.4.6来就不会有什么问题了,只是这个工作量不知大不大?
回复

使用道具 举报

23#
发表于 2014-10-28 21:15:58 | 只看该作者
通过基于最新的同版本 0.4.5 及 0.4.6,逐一文件比较,已经打上补丁。明天再仔细看一看。
希望不点提供一个 2013-12-14 的补丁。我没有找到下载地址。我想确认一下,哪些是基于"geometry --lba127sector "这次更新的,哪些是其他更新的。

20#请教的问题纯粹是好奇。比如 0.4.5c 打了 1 号补丁,同时适用于 0.4.6a;又打了 2 号补丁,只适用于 0.4.5c;又打了 3 号补丁,适用于 0.4.6a。
此时执行 “git merge grub4dos/master” ,岂不是把 1、2、3 号补丁都打在 0.4.6a 上了吗?
回复

使用道具 举报

24#
 楼主| 发表于 2014-10-28 21:25:53 | 只看该作者
本帖最后由 不点 于 2014-10-28 21:39 编辑

不用找下载地址,找也是难以找到。现成的,只需对比 2013-12-14 前后的版本,即可制作出补丁。

git 和 svn 都有制作补丁的办法,你和 chenall 应该知道具体的操作方法。如果不知道,找资料学学就可以了。



https://github.com/chenall/grub4dos

点击页面左上方的 356commits,即可进入每次提交的详细页面。选择 2013年12月14日的提交记录,就可以看到对比的 diff 文件了。这是图形化的显示方式,我还没有得到纯文本的 diff 文件。凑合着看吧。
回复

使用道具 举报

25#
发表于 2014-10-29 08:43:31 | 只看该作者
2011yaya2007777 发表于 2014-10-28 21:15
通过基于最新的同版本 0.4.5 及 0.4.6,逐一文件比较,已经打上补丁。明天再仔细看一看。
希望不点提供一 ...

使用git diff可以生成diff文件
2013-12-14 对应的版本是 c812253
前一个版本是8801d6b,使用以下命令行成补丁,
git diff 8801d6b c812253
回复

使用道具 举报

26#
发表于 2014-10-29 16:55:47 | 只看该作者
打了补丁,已经上传。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 14:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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