无忧启动论坛

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

[教程] [20190106]慧荣主控”免量产“自由划分多个驱动器(最多7个)

    [复制链接]
31#
发表于 2023-1-25 20:38:52 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-25 20:42 编辑
求道者 发表于 2023-1-25 19:25
那HDD模式下的 启动异常还是无法解决。
只能认为被错误识别为软盘的情况下,BIOS会额外的关注分区。
用 ...

神舟K470 phoenix BIOS下,选USB-HDD引导菜单项

MBR是无论是win的、还是G4D、wee,都会多次读,但似乎没发挥相应作用,
不会激活相应的引导软件(比如G4D的menu.lst)菜单。

起作用的是PBR。PBR放的是win的,则启动IO.SYS到dos
放的是G4D,则按menu.lst 来启动。




点评

[attachimg]518452[/attachimg] Fbinst的引导代码只从0060开始。 和PBR的内容不冲突。 那可以用PBR和Fbinst的0060到01B7的内容进行混合。 但01BE到01FD的分区表要擦除吗? 这段偏移在PBR里是BOOTSTRAP CODE的范  详情 回复 发表于 2023-1-25 22:33
看起来就是单纯的MBR都没生效。 BIOS读取LBA0只是为了分区表和PBR。  详情 回复 发表于 2023-1-25 20:44
回复

使用道具 举报

32#
发表于 2023-1-26 12:06:31 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-26 12:07 编辑
求道者 发表于 2023-1-25 22:33
Fbinst的引导代码只从0060开始。
和PBR的内容不冲突。
那可以用PBR和Fbinst的0060到01B7的内容进行混 ...

没成功启动。

hdd菜单下,BIOS读了MBR---又读了改造后的PBR--(可能又根据PBR代码指示)读了其他东西---但可能地址不对,卡住了。

知道了这个BUG BIOS机HDD下的工作流程,搞好PBR(比如放G4D)就可以工作了。fb的分区太复杂,不讨论了。

点评

擦掉分区表呢? 能启动吗?  详情 回复 发表于 2023-1-26 13:13
回复

使用道具 举报

33#
发表于 2023-1-28 14:24:48 来自手机 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-28 14:33 编辑

以前是黑箱,现在不同了。有分析仪,
黑箱被撕开了口子。

作为比较,找了同系支持USB-HDD的Phoenix BIOS(联想F31A机),测试了USB-HDD的启动过程,还是那些U盘,还是那些FB、DOS+G4D.EXE,均正常进入画面。流程比先前K470  Phoenix bios更复杂一些,内容较多,等有空再研究。

对于开源软件G4D、FB,LBA0应该不是啥问题,咋个执行法,读到的内容是啥,本坛的开发者们应该清楚。当然,我是不懂的。这个事其实就是“解析”。

——与分析仪类似,硬件抓包器抓到一堆16进制数,这些16进制数解读出来,成为易读内容,就要靠解析软件进行傻瓜化。分析仪好坏,很大一部分原因其实并不取决于硬件,而是取决于解析软件。硬件上,大家都能抓包,但解析软件,有的厂家做得不行,还要人肉二次解析,就不好用了。
回复

使用道具 举报

34#
发表于 2023-1-29 23:20:43 | 显示全部楼层
2011yaya2007777 发表于 2023-1-29 17:57
在神舟K470 phoenix BIOS下,使用那个启动识别为盘符A的U盘,麻烦你测试一下(无论现在是UD分区或者通常 ...

PBR。
第1张图32G盘,DOS+GRUB.EXE。
第2张图8G盘,FB+g4d(grldr装在可见FAT32分区)





回复

使用道具 举报

35#
发表于 2023-1-30 21:26:23 | 显示全部楼层
2011yaya2007777 发表于 2023-1-30 09:57
现在分析一下神舟K470 phoenix BIOS启动U盘的情况:
经过BIOS自己的判断,认为U盘是可移动介质,因此 ...

感谢YAYA的解读。

这个修改应该是在内存中进行的?


回复

使用道具 举报

36#
发表于 2023-1-31 13:15:19 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-1-31 05:42
应当是在读U盘的LBA(0)到缓存后修改的,然后传送回内存。

谢谢YAYA的指点。
回复

使用道具 举报

37#
发表于 2023-1-31 13:18:19 来自手机 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-31 13:33 编辑
求道者 发表于 2023-1-31 09:10
BIOS会做这么无聊的事情吗?
无聊到了一定的地步。
这么说在启动的这一阶段除了第一分区之外的扇区都被 ...

这个我与层主意见不同。我能理解K470 USB-HDD出现的这种“异常”,也能理解YAYA的分析。
这不一定是技术上的整活搞无聊事情,而更像是固定模式用错了地方。

一、很显然Phoenix有完整的USB-HDD启动模块(如联想F31A机上的,这个后面再详谈)。
但OEM给神舟K470机的显然功能不完整,这有2种可能:

1.神舟出于压缩成本考虑,没有购买配置完整模块。(这不稀奇,phoenix最早出售USB启动
功能时,连以USB2.0速度启动都要单独收费,乞丐版只能以USB1.1速度启动。联想F31A机
也是一样不完整,配了USB-HDD模块,但没有配USB-ZIP、USB-LS120启动模块)
2.神舟购买了完整源码,但改糊了。

二、不管是什么可能,结果一样:是USB-HDD也以removeable移动盘面孔出现。这又涉及
第2个问题:Phoenix bios的移动盘算法。这个算法有hide/unhide MBR计算。这很好理解,
有点类似于G4D的map fd思路/操作。

-----------------------------
再讲完整版USB-HDD启动模块的情况。除了想象中的读MBR/PBR,通过分析仪发现:
有一点与大家想的不同,Phoenix bios  USB—HDD在读完MBR后,不是立即就跳PBR,
当中有一段重要操作:读盘尾(最大LBA),也就是说,它有防LBA超限运算。

-------------------------------
最后,限制一下USB-ZIP的语意:
1.在SMI量产工具里,它指的是移动介质盘选项。
2.在phoenix BIOS下,它指的是符合Iomega ZIP驱动器设备特征(固件参数)的设备。
3.在其他BIOS下,由其具体算法确定ZIP的具体要求。

点评

神舟主要从蓝天那里拿货吧,他主要是贴牌。 他估计也不会改BIOS。  详情 回复 发表于 2023-1-31 14:45
回复

使用道具 举报

38#
发表于 2023-1-31 15:31:09 来自手机 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-31 15:32 编辑
求道者 发表于 2023-1-31 14:45
神舟主要从蓝天那里拿货吧,他主要是贴牌。
他估计也不会改BIOS。


BIOS估计不是这样。
因为出来的Phoenix bios源码来源就是神舟。
它应该是花钱买了。
回复

使用道具 举报

39#
发表于 2023-1-31 15:41:17 来自手机 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-31 15:59 编辑

bean在时空论坛开发fb时,我曾经见证。

我的理解是:
同一U盘,在不同BIOS下,算法不同,
对HS设定不同,fb为了应对这个问题而来。

前8M空间每个扇区都有引导代码,但剩余
扇区空间不利用起来就浪费了。为了有效
利用这个空间,出现fb文件系统。这个
文件系统客观上有隐藏效果,是副产品。

当然,后来我得到bios源码,接触到算法,
同时发现SMI盘固件特性,存在有效锁定
HS值可能,就不需再用fb的技术了。
这也是为什么后来我做简单的DOS启动盘,
不再使用FB的原因。
回复

使用道具 举报

40#
发表于 2023-1-31 15:45:32 来自手机 | 显示全部楼层
另外,不点开发WEE的时候(他的想法是只用
LBA,规避CHS的影响)

我曾经表达这样一个观点:只要BIOS还在,
CHS就如影形随,回避不了。

即使你不用CHS,BIOS也要计算CHS。
这个时间点就在U盘枚举阶段,还没进入
启动时。
回复

使用道具 举报

41#
发表于 2023-2-1 13:28:51 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-2-2 14:24 编辑
2011yaya2007777 发表于 2023-2-1 11:39
请教几个问题:
1. 隐藏或者显示MBR操作,传递的每磁头扇区数,似乎没有起作用。
2. 没有看出怎样增减 ...

YA大客气了,请教不敢当。

1、hide/unhide指令源于ZIP驱动器,是专用指令,绝大部分U盘主控固件不支持,
这些指令不会执行成功。比较例外的情况是群联主控固件U盘,它返回码正确,但不知
是真支持还是假支持,返回数据是否正确(我未找到ZIP指令返回数据格式和说明,所以
未知)

2、hddufiReadCapacity函数,
一是该函数以汇编形式实现SCSI读容量指令readcapacity包发送。
二是该函数也涉及CHS计算方面的内容。

3.ReadCapacity读容量指令的格式为:




例子:
返回数据格式,16G盘为:01 dd ff ff  00 00 02 00

4、汇编编程我就不太懂了。只是对IT有爱好。
hddreadcap.txt (7.26 KB, 下载次数: 11)
回复

使用道具 举报

42#
发表于 2023-2-1 16:40:30 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-2-1 16:41 编辑
2011yaya2007777 发表于 2023-2-1 14:58
请你再核实一下,#367的汇编代码中间有没有删减。如果没有,那就是源代码有缺陷。

代码没有删减。我的理解:

367# addEAXToTotalSectors: 之前的代码,应是中间过程,EAX存储的是“需要减少的扇区数”

ReadCapacity命令包执行后,得到U盘固有的总扇区数,

随后应该就有:固有的总扇区数-需要减少的扇区数    代码。
回复

使用道具 举报

43#
发表于 2023-2-2 03:57:17 | 显示全部楼层
求道者 发表于 2023-2-1 23:35
BIOS源码里有BUG?
然后就K470这样了吗?

不是这样吧?

即使BIOS源码有BUG,也是在说隐藏MBR后,总扇区数忘了减相应数量,
并不影响隐藏MBR这个操作。
回复

使用道具 举报

44#
发表于 2023-2-2 04:04:08 | 显示全部楼层
2011yaya2007777 发表于 2023-2-1 16:47
你的理解很对。问题在于这个函数执行之前,传入的eax没有保存,被这个读容量函数破坏了。以后也没有见读出 ...


因为我不懂汇编,这里是瞎猜的:

ReadCapacity函数在开始的时候,进行了一系列栈操作(含AX寄存器),并且:

    call    hddUFIFunnySegmentToDS
    mov    al, ds:[hddUFIHotParametersOK]

而对[hddUFIHotParametersOK]的解释,我找了一下,是:
- One if we can safely alter the media capacity and block size, else zero

是否这些代码已经事先保存了EAX里的“需减少的总扇区数值”,然后才开始
执行readcapacity命令包,破坏EAX里的值。

回复

使用道具 举报

45#
发表于 2023-2-2 06:56:43 来自手机 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-2-2 08:59 编辑
求道者 发表于 2023-1-31 09:10
BIOS会做这么无聊的事情吗?
无聊到了一定的地步。
这么说在启动的这一阶段除了第一分区之外的扇区都被 ...


我的看法:

不用搞得这么繁复吧,K470 Phoenix BIOS USB-HDD菜单下,SMI盘不用怎么调,就可以正常启动G4D,这就足够了。

fb/ventoy那样多分区,在此环境中,反而复杂化,不能正常启动。需放弃它们的时候就果断放弃。

点评

wuwuzz亲把其他牌子的BIOS源码都发给yaya吧,指不定能找到点什么鬼东西,如果还有其他源码,发给我,我放到我的nas上做个bt种子,万一有人要用这些源码也能找到,就是可惜15年泄漏的I2O源码找不到了。  详情 回复 发表于 2023-2-2 11:30
回复

使用道具 举报

46#
发表于 2023-2-2 11:25:14 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-2-2 11:30 编辑
2011yaya2007777 发表于 2023-2-2 10:54
依wuwuzz提供的Phoenix BIOS 源码分析,的几个特殊点:
1. USB驱动器,遵循UFI或SFF8070i协议 ...

我这里做一下订正:

软驱(盘)与可移动设备(removeable、盘号0x00、DOS下A:)是2个概念。


1.常用U盘不遵循UFI协议,而是遵循SCSI协议。通过BIOS内置算法的规则(关键标准之一就是U盘容量-总扇区数),
可能会被设定为可移动设备。

2.当USB存储设备遵循UFI协议时,它将被Phoenix BIOS用作判断为软驱的条件之一,
即:BIOS菜单中的USB-FDC。这种遵循UFI协议的U盘,常见于有硬件仿真FDD电路的U盘。
软驱一定是可移动设备。新版AMI BIOS/UEFI源码也有这方面的设定。

3.SF8070I协议的情况比较复杂,暂时不详细讨论。遵循这种协议的USB设备不常见。
在phoenix BIOS下,这种设备也一定会被设定为可移动设备。



回复

使用道具 举报

47#
发表于 2023-2-2 11:36:55 | 显示全部楼层
求道者 发表于 2023-2-2 11:30
wuwuzz亲把其他牌子的BIOS源码都发给yaya吧,指不定能找到点什么鬼东西,如果还有其他源码,发给我,我放 ...

我手上有phoenix bios的这套、然后就是AMI BIOS(BIOS技术剖析这本书光盘附带的)那套。

后来泄露出的AMI UEFI/BIOS源码,基本就是上面那套汇编代码,用C重写了一遍。


很久很久以前,我就建议过YAYA下载保留AMI BIOS那套,不知后来他做了没有。


点评

都发我吧,我到时候再找找还有没有其他源码,然后做个bt种子放网上,我自己的服务器也永久存一份,其他地方存这个迟早被删除。 然后网上下不到了。  详情 回复 发表于 2023-2-2 11:40
回复

使用道具 举报

48#
发表于 2023-2-2 12:13:03 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-2-2 12:14 编辑
2011yaya2007777 发表于 2023-2-2 11:46
你说的可能比较规范。不论是协议也好,命令也罢,USB传输用到了SCSI指令,比如读扇区,读容量,查询等等 ...

喔,是这样:我不是想讲规范的事,而是因为“启动”,需要特别注意几个点:

一、UFI这个协议值是Phoenix BIOS决定软驱设备类型判定的关键,所以把它单踢出来强调。

二、命令确实可以混用,因为UFI命令集本来就是SCSI命令集的简化修改版。(继承)

三、U盘固件声称自己遵循SCSI命令集,实际上也是扯淡,SCSI太复杂无法完整实现。所以平时按简化的UFI来学习掌握没问题。

四、问题出在这:同一条命令,USB启动规范做了重新定义,而U盘固件开发者又按SCSI那一套定义来,对启动极为不利。
回复

使用道具 举报

49#
发表于 2023-2-2 12:22:33 | 显示全部楼层
求道者 发表于 2023-2-2 11:51
到这地步fixed模式就没救了吧?改造成本高到还不如removeable模式,操作起来就是备一个额外的小点的u盘 ...

为什么非要fixed模式,是有特殊需求么? 比如UD无法放弃?

点评

对了K470在U盘LUN0为removeable,LUN1为fixed的时候会怎么处理?  详情 回复 发表于 2023-2-2 12:35
我确实不打算放弃UD和fixed,所以准备了第二个u盘做removeable。 fixed在win7下可以显示所有分区。  详情 回复 发表于 2023-2-2 12:27
回复

使用道具 举报

50#
发表于 2023-2-2 12:41:51 来自手机 | 显示全部楼层
求道者 发表于 2023-2-2 12:27
我确实不打算放弃UD和fixed,所以准备了第二个u盘做removeable。
fixed在win7下可以显示所有分区。

看这2楼的需求,目前市场上易得的方案是:
准备2个写保护3267盘。
一个做R+F+Cd的3LUN盘,
一个保留1LUN。如果老BIOS机器比较多,
后面这个换成USB2.0的盘3257。

点评

smi 3.0的盘已经做了cd+fixed。 2.0的盘做了removeable+fixed(必要时隐藏fixed)  详情 回复 发表于 2023-2-2 12:43
回复

使用道具 举报

51#
发表于 2023-2-2 13:20:18 来自手机 | 显示全部楼层
求道者 发表于 2023-2-2 12:43
smi 3.0的盘已经做了cd+fixed。
2.0的盘做了removeable+fixed(必要时隐藏fixed)

这样做无法保证1LUN盘始终存在吧,
有些BIOS对multi_LUN支持不够好。
回复

使用道具 举报

52#
发表于 2023-2-2 13:30:38 来自手机 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-2-2 13:37 编辑
求道者 发表于 2023-2-2 12:35
对了,K470在U盘LUN0为removeable,LUN1为fixed的时候会怎么处理?


RMB位的取值没有对Phoenix Bios设定HDD/ZIP产生决定影响。而是我前面说的
容量规则在起决定性作用。

设为Remove的仍然是USB-HDD,设为Fixed
仍然可以是USB-ZIP。
回复

使用道具 举报

53#
发表于 2023-2-2 14:52:55 | 显示全部楼层
求道者 发表于 2023-2-2 11:40
都发我吧,我到时候再找找还有没有其他源码,然后做个bt种子放网上,我自己的服务器也永久存一份,其他地 ...

这个怎么发给你?  


因为我只对USB启动有兴趣,所以原始BIOS包N多文件夹、N多文件,我只摘出USB相关文件看,其他的不关心,
扔一边去。包括上次的insyde bios,你要是不提,时间一长,原始包又不知扔哪里去了。这些摘出的文件打包
传到哪?




点评

蓝奏云?源代码压缩一下还蛮小的。  详情 回复 发表于 2023-2-2 16:34
回复

使用道具 举报

54#
发表于 2023-2-3 21:22:23 | 显示全部楼层
2011yaya2007777 发表于 2023-2-3 15:29
你使用看图软件打开这个图像,查看一下属性便知。
图像占内存,只与图像的像素有关,与显示器像数无关。

咦,傍晚的时候,我看到YAYA问ZIP总扇区的事,怎么帖子没有了?

在参数文件里有定义:
ZIP_100_SECTORS        EQU    30000h    ; Sectors on a ZIP 100
ZIP_250_SECTORS        EQU    7783Ch    ; Sectors on a ZIP 250


回复

使用道具 举报

55#
发表于 2023-2-4 05:19:51 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-2-5 08:25 编辑
2011yaya2007777 发表于 2023-2-4 04:37
我在网上查了一下,说容量是100M及250M,我以为问题解决了。现在看你提供的定义,真不是一回事。我觉得扇区 ...


一、BIOS里对容量定义,很少用MB/KB这些,
常用具体的总扇区数(最大LBA)。


二、1000/1024,在IEEE EDD规范(这
个EDD规范就是把以前零散的单行本
BIOS BOOT规范、扩展INT13定义、光盘
启动规范等全部合订在一起)里好像有
说明,KB/KiB的区别。

回复

使用道具 举报

56#
发表于 2023-2-6 12:11:47 | 显示全部楼层
求道者 发表于 2023-2-2 16:34
蓝奏云?源代码压缩一下还蛮小的。

地址已发,见站内信。
回复

使用道具 举报

57#
发表于 2023-2-7 10:50:30 来自手机 | 显示全部楼层
求道者 发表于 2023-2-2 12:35
对了,K470在U盘LUN0为removeable,LUN1为fixed的时候会怎么处理?

再次遇到fixed/remove位对判定USB-HDD影响不那么大的BIOS。而且,容量规则也被调整。

联想A10逸一体机(UEFI/BIOS被联想改过,看不出原始厂家,有点像INSYDE),U盘无论设成fixed/remove哪个,也不论容量大小,BIOS
菜单都是显示USB-HDD。

但是,容量大的,实际BIOS盘号会分配为0X8X(DOS下C:>),容量小的,BIOS盘号为0X00(DOS下A:>)。容量分界线也被大大压缩了,大概在250M左右,正好是ZIP250的标准。
回复

使用道具 举报

58#
发表于 2023-2-7 19:13:52 | 显示全部楼层
2011yaya2007777 发表于 2023-2-7 13:38
以前有个联想电脑,容量分界线在520M左右。而且在软盘状态,只能使用CHS模式读写。你那个K470更特殊,不论 ...

又测试了多种其他品牌的BIOS,含AMI、Award等,结合之前的测试,大致摸索出
(正常)容量节点规律为:

容量<250M,BIOS叫USB-HDD/FDD/ZIP的都有,BIOS盘号0x00,DOS下A:
容量>=250M (530M) -32G以下,叫USB-ZIP/KEY的都有,BIOS盘号0x80,DOS下C:
容量32G以上,叫USB-HDD,BIOS盘号0x80,DOS下C:
=================================================
其中250M的历史渊源是ZIP250驱动器,530M源于早期IDE硬盘容量墙528M。
回复

使用道具 举报

59#
发表于 2023-2-9 10:48:20 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-2-7 13:38
以前有个联想电脑,容量分界线在520M左右。而且在软盘状态,只能使用CHS模式读写。你那个K470更特殊,不论 ...

这个情形可以复现。

搭载AMI BIOS的神舟优雅A350-T45笔记本,
对小容量U盘就是设定为removeable,盘号
00,G4D显示用CHS模式。

点评

【淘宝】https://m.tb.cn/h.UnQnJao?tk=CN2EdhZ4ljM CZ3457 「WeAct-LogicAnalyzer USB逻辑分析仪24Mhz 8ch 通道 FPGA调试开源」 点击链接直接打开 或者 淘宝搜索直接打开 好像由于智能家居嵌入式开发的热火朝天。  详情 回复 发表于 2023-2-10 14:20
回复

使用道具 举报

60#
发表于 2023-2-11 10:12:14 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-2-11 10:16 编辑
求道者 发表于 2023-2-10 14:20
【淘宝】https://m.tb.cn/h.UnQnJao?tk=CN2EdhZ4ljM CZ3457 「WeAct-LogicAnalyzer USB逻辑分析仪24Mhz 8 ...

这个是逻辑分析仪,非协议分析仪。练手可以,USB实用不行。
一、硬件平台太小,USB支持有限(最高支持到USB1.1)
二、协议支持弱(无法形成我们最需要的解码信息。要是从逻辑分析仪产生的包中,摘取有用信息,1有限2要累死。)

USB协议分析仪,小众产品,价格昂贵。国外品牌解析软件做得好的,软件许可证价格要远高于硬件分析仪本身。

点评

【淘宝】https://m.tb.cn/h.UoVFPnN?tk=Zpxud79mKt2 CZ3457 「LUNA 基于FPGA的开源USB 2.0 LS/FS/HS 480Mbps 协议分析仪」 点击链接直接打开 或者 淘宝搜索直接打开 FPGA可以做。 主要是看报文? 和请求地址  详情 回复 发表于 2023-2-23 22:51
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-18 14:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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