数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1913|回复: 63

[慧荣] 求教慧荣重新校准CHS的功能是怎么量产出来而?

[复制链接]
发表于 2023-1-9 17:46:04 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
wuwuzz以前提到过这个,说是能够大大提高U启成功率。
他讲慧荣2.0的主控支持CHS重新校准,我有一个SM3257ENAA,但不知道怎么启用这个功能。
发表于 2023-1-9 18:26:54 | 显示全部楼层
说这话的人可能连CHS的实际位置都不太清楚……
我就这么跟你说,只要跟颗粒PAGE一样尺寸格式化的但凡是个U盘都能启动,自己品
回复 支持 反对

使用道具 举报

发表于 2023-1-9 19:04:22 | 显示全部楼层
我觉得说能提高启动成功率是扯蛋...
回复 支持 反对

使用道具 举报

发表于 2023-1-9 19:30:10 | 显示全部楼层
本帖最后由 fingerskps 于 2023-1-9 19:41 编辑

我是wuwuzz的好友,他没时间来之家,我受委托代他回答。

一、3257EN不用校了,后期版本固件HS出厂默认值已经是最优。

二、楼上几位,看你们的回复,你们可能就不清楚这到底在讲什么事。

1. U盘物理上压根就没有什么CHS,但是BIOS需要CHS,没有也要伪造(计算)1个。
计算的基础就是LZ提问的那个。实际位置没人关心,BIOS也不关心。

2.跟page尺寸没关系。现代U盘/BIOS之所以看上去适配得很好,启动成功率高,
原因是BIOS需要的另外一个关键参数(这里卖个关子),各种U盘主控固件支持得很好,
就没有失败的。有了这个参数,即使U盘原始固件CHS不佳(很常见),BIOS也可以通过
内置算法重新假定条件计算出新的、比较合理的CHS(但是,不同BIOS算法不同,会
造成同一U盘,CHS参数不同,导致混乱,尤其是8G以下容量盘)。


以上内容,如果不能理解,请先掌握USB启动规范、流出的BIOS源码USB启动算法后
再来讨论比较好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-9 20:02:56 | 显示全部楼层
fingerskps 发表于 2023-1-9 19:30
我是wuwuzz的好友,他没时间来之家,我受委托代他回答。

一、3257EN不用校了,后期版本固件HS出厂默认值已 ...

终于解惑了。
SM3257ENAA啥版本的固件好使?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-10 03:56:59 | 显示全部楼层
  1. --------------------------- 存储设备 ------------------------------
  2. [0:0:0:0]    disk    ATA      QEMU HARDDISK    2.5+  /dev/sda   /dev/sg0    107GB
  3. [8:0:0:0]    disk    DIY      USB2_MLC_32G     1100  /dev/sdb   /dev/sg2   2.14GB
  4. [8:0:0:1]    disk    DIY      USB2_MLC_32G     1100  /dev/sdc   /dev/sg3   30.2GB
  5. ----------------------------------------------------------------------------------
  6. 检查设备顺序(Lun逻辑单元号)。
  7. /dev/sg2 是第1驱(Lun是Lun0),OK!更易被BIOS识别处理。
  8. ----------------------------------------------------------------------------------
  9. 检查/dev/sg2 固件对CHS/LBA的支持情况。
  10. 检查项目:USB:获取总扇区数命令。

  11. (引导软件使用的)BIOS INT13扩展读/普通读将依赖本命令执行结果。

  12. /dev/sg2 固件执行命令成功。结果是:

  13.    总扇区数=4194304 ,扇区大小=512 字节
  14.    容量大小: 2147483648 bytes, 2048.0 MiB, 2.15 GB
  15. ----------------------------------------------------------------------------------
  16. 检查/dev/sg2 固件对CHS/LBA的支持情况。
  17. 检查项目:USB:获取物理(固件)CHS命令。

  18. 本命令执行结果将参与总扇区数的二次运算。
  19. (引导软件使用的)BIOS INT13普通读/扩展读也将依赖本命令执行结果。

  20. /dev/sg2 固件执行命令成功。


  21.    物理 C=1023 , H=255 , S=63 ,扇区大小=512 字节
  22. ----------------------------------------------------------------------------------
  23. 检查总扇区数(容量)、物理CHS结果。

  24. 容量不是最优值--逼近8G(1k=1024计)/8.4G(1k=1000计)。
  25. 不好控制BIOS CHS转换结果,不能保证不同BIOS下逻辑HS的唯一性,易引发引导失败。
  26. ----------------------------------------------------------------------------------
  27. 附加辅助检查:
  28. 估算BIOS是将/dev/sg2设为固定设备(盘号80h/DOS下C:)还是移动设备(盘号00h/DOS下A:)。
  29. 估算受不同BIOS类型、算法版本影响,结果可能并不准确,仅供USB启动爱好者参考。


  30. ==========>按AMI BIOS已知版本计算规则估算......

  31. >>>>第1种情况:比较常见。PC/主板厂商在生成AMI BIOS时,未使用'检查移动介质位' 编译选项。
  32. BIOS以总扇区数界限为主、MBR/PBR的合法性为辅,综合后进行判定...

  33. MBR的55AA标志已找到。
  34. 只有1个分区,已检查...
  35. 检查总扇区数界限...

  36. --->在此种版本的AMI BIOS下,/dev/sg2 将可能被设置为固定盘设备(DOS下C:)。


  37. >>>>第2种情况:比较少见。PC/主板厂商在生成AMI BIOS时,使用了 '检查移动介质位' 编译选项。

  38. 检查/dev/sg2 的移动介质位取值(即:量产工具制作的移动介质盘、固定介质盘/本地盘情况)...
  39. /dev/sg2 :量产工具设定的是固定介质。

  40. --->在此种版本的AMI BIOS下,/dev/sg2 将可能被设置为固定盘设备(DOS下C:)。


  41. ==========>按Phoenix BIOS已知版本计算规则估算......

  42. 检查/dev/sg2 固件是否支持ZIP专用命令...
  43. ZIP激活软盘模式命令:执行失败。/dev/sg2 固件不支持该命令。
  44. ZIP禁用软盘模式命令:执行失败。/dev/sg2 固件不支持该命令。
  45. 检查总扇区数界限是否符合ZIP双模式特征(可设成移动盘设备、也可设成固定盘设备)...


  46. --->Phoenix BIOS下,/dev/sg2 将可能被设置为固定盘设备(DOS下C:)。
复制代码

CHS值好像被硬编码了,不管你量产多大的LUN,CHS都一样的1023/255/63。
编辑固件HEX也没找到类似03FF或者FF03的地方。
CID里也没有。
不知道硬编码在哪里。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-10 08:56:07 来自手机浏览器 | 显示全部楼层
本帖最后由 虐待叔叔 于 2023-1-10 08:59 编辑
fingerskps 发表于 2023-1-9 19:30
我是wuwuzz的好友,他没时间来之家,我受委托代他回答。

一、3257EN不用校了,后期版本固件HS出厂默认值已 ...


3257EN给的CHS默认是1023/255/63,感觉蛮奇怪的,好像是硬编码了,不管你的LUN多大他都给1023/255/63,我想把LUN0弄小点,不知道在哪里改。
回复 支持 反对

使用道具 举报

发表于 2023-1-10 11:44:59 | 显示全部楼层
我都不知道该怎么说你俩……

CHS是很早以前用来管理硬盘、软盘空间的一种空间管理规范,最高只能管理8.4G空间,后来因为磁盘存储技术有突破,又推出了LBA技术,于是为了保持与60-90年代电脑的兼容性,默认情况下所有电脑首先都要兼容CHS,这就是所谓的“启动成功率”的由来……
多的不说,咱论坛应该没有这么老旧的设备还在服役吧?

但凡2000年左右开始,所有电脑都进入了LBA技术普及的时代,USB 1.1也出来了,那时候WIN98和ME、XP都开始推行外部大容量移动存储设备标准,于是朗科造U盘出名了,MTP模式也诞生了,各种移动硬盘方案也开始流行了,但凡支持USB 1.1以上规范的电脑和扩展卡、系统,只要能满足条件的都能直接兼容LBA模式的硬盘或者U盘,这才让USB存储设备一下跳进了8GB以上的发展阶段来的。

现在还去纠结CHS的,要么是底层开发者,要么是确实啥都不懂的外行。
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-10 11:50:26 | 显示全部楼层
本帖最后由 windows9650 于 2023-1-10 11:59 编辑

另外提示一下,CHS自从LBA普及以来都只能算是模拟的一种技术,早期硬盘上都有跳线用来兼容CHS模式,硬盘标签上也有CHS Capacity:8.4GB或者CHS Capacity:8455MB,用人话翻译就是,只要大于2GB的存储媒介,CHS清一色1023(随容量增大而增大)/255/63,不管你物理结构如何,就算IBM来了它也是这么小。
回复 支持 反对

使用道具 举报

发表于 2023-1-10 12:16:03 | 显示全部楼层
顺便补充一下前面说的PAGE影响启动的问题。

我在这个论坛发过一个帖子,是用来解决所有U盘高速传输的时候掉速的问题,观察颗粒PAGE单位大小并以大于等于PAGE大小格式化的话不管什么软件跑分都是一条直线,可以确定跟NAND擦写原理有关。
假设0DFK系列颗粒现在PAGE大小都是16KB,算上模拟CRC区块就当18KB处理,那么最小读写单位一定是16KB,小于这个长度的话会从其他区块里读写长度补齐,因为读写时候会跨多个PAGE,读写速度自然会下降,如果格式化时设置的簇小于16K太多的话只会更卡,这个跟分区格式完全无关。
但是如果等于或者大于16K,就算你用NTFS也绝对不会掉速,我这边用十几个不同方案的U盘测试了很久才得出结果。
同理,如果在一个16K物理PAGE大小的颗粒上强行用4K或者更小的簇长度去格式化某个U盘,启动相关的文件数量很多或者文件很大的情况下读写这个启动盘的时候一定会把你卡到怀疑人生。

我知道我说话有点冲,不过老话说得好——话不中听,但是有用。
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2023-1-10 12:42:15 来自手机浏览器 | 显示全部楼层
windows9650 发表于 2023-1-10 11:44
我都不知道该怎么说你俩……

CHS是很早以前用来管理硬盘、软盘空间的一种空间管理规范,最高只能管理8.4G ...

我整这玩意,还真是处理那些老设备的兼容性,usb驱动的兼容性在传统BIOS里就是一笔烂帐,老bug一万年都不修的也完全有可能,当然这限定传统BIOS,UEFI另外一说。
回复 支持 反对

使用道具 举报

发表于 2023-1-10 12:44:10 | 显示全部楼层
虐待叔叔 发表于 2023-1-10 12:42
我整这玩意,还真是处理那些老设备的兼容性,usb驱动的兼容性在传统BIOS里就是一笔烂帐,老bug一万年都不 ...

只要你的设备不在1996年之前出厂就没必要考虑这个兼容性,信我一次少走很多弯路
回复 支持 反对

使用道具 举报

发表于 2023-1-10 12:54:16 来自手机浏览器 | 显示全部楼层
本帖最后由 fingerskps 于 2023-1-10 13:07 编辑
虐待叔叔 发表于 2023-1-10 12:42
我整这玩意,还真是处理那些老设备的兼容性,usb驱动的兼容性在传统BIOS里就是一笔烂帐,老bug一万年都不 ...

这个样子,搞个8G的3257盘,啥都不用动,直接做启动盘,几十块钱的事情,搞定。

如果是32G的大盘,划2G的DISK,即使CHS调过来了,

但你要面对新产生的multi-lun支持问题,老BIOS不一定支持的好额。

回复 支持 反对

使用道具 举报

发表于 2023-1-10 13:10:43 | 显示全部楼层
fingerskps 发表于 2023-1-10 12:54
这个样子,搞个8G的3257盘,啥都不用动,直接做启动盘,几十块钱的事情,搞定。

如果是32G的大盘,划2G的 ...

他这个情况要么量产一个软驱进去用GRUB做底子,要么就是用uDiskToolBar划两个盘分别引导Legacy BIOS和UEFI BIOS,我是用后者,现在从90年代的设备一直吃到最新设备暂时没有启动不来的,老设备设置USB-HDD或者USB-ZIP启动,自己做好两份MBR启动记录就完事了也没那么难

至于多逻辑分区的问题,转成硬盘模式问题解决,一千个分区都装得下识别的出

回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-10 13:26:41 | 显示全部楼层
windows9650 发表于 2023-1-10 13:10
他这个情况要么量产一个软驱进去用GRUB做底子,要么就是用uDiskToolBar划两个盘分别引导Legacy BIOS和UEFI ...

那是建立在BIOS支持多LUN设备识别的前提下。

(所谓的量产,本质就是改固件参数,你所说的就是生成2个LUN、2个磁盘驱动器设备)

LZ的BIOS是啥情况,还不知道呢。支持多LUN,自然可以用这个法子,不支持呢?

所以,为了排除所有可能的不稳定因素,就只用1个LUN的8G盘来保持最大限度的兼容性。
回复 支持 反对

使用道具 举报

发表于 2023-1-10 13:30:12 | 显示全部楼层
fingerskps 发表于 2023-1-10 13:26
那是建立在BIOS支持多LUN设备识别的前提下。

(所谓的量产,本质就是改固件参数,你所说的就是生成2个LUN ...

慧荣U盘量产工具都有磁盘模式量产,可以给U盘分区就跟内部磁盘一样,你可以试试。

至于多LUN支持,老BIOS都只支持第一分区启动,UEFI支持分区文件选择,亲测。

uDiskToolBar是主控层面的多LUN切换,切换后就跟单分区一样,所有慧荣U盘主控都支持这个工具,我反正从325X到3281都测试通过了,还能设置密码简直不能再好用。

别老抱着上古知识,多测试做做举证能解决很多问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-10 13:58:16 | 显示全部楼层
windows9650 发表于 2023-1-10 13:30
慧荣U盘量产工具都有磁盘模式量产,可以给U盘分区就跟内部磁盘一样,你可以试试。

至于多LUN支持,老BIO ...
  1. ***************************************************************  
  2. *  遵从的标准:                                                *  
  3. *          USB Mass Storage Specification for Bootability     *  
  4. *          ANSI、Phoenix  EDD                                 *  
  5. *                                                             *  
  6. *  注意:                                                      *  
  7. *  1、检测出的错误信息,是提示UMSD不符合相关标准、会给后续的  *  
  8. *  USB BOOT造成麻烦,并不意味着一定会BOOT失败。因为BIOS会做   *  
  9. *  妥协让步、主动去调整修补固件BUG。只有当错误的影响非常严重  *  
  10. *  、BIOS的努力无效时,USB BOOT才会失败。                     *  
  11. *                                                             *  
  12. *  2、本分析结果仅供USB爱好者交流、参考,不作为判定UMSD产品   *         
  13. *  质量好坏和选购的标准。ubootchk是Free software,我们不对因  *  
  14. *  用户使用ubootchk可能造成的损失或失误承担责任。             *  
  15. *                                                             *  
  16. ***************************************************************  
  17.   
  18. UMSD设备名: PD1   
  19. ---------------------------------------------------------------  
  20. 固件提供的最大LBA=16435200 ,块大小=512字节,以此计算出的
  21. 容量=8414MB。其中,1M=1000*1000                           

  22. ---------------------------------------------------------------  
  23. 固件提供的CHS情况:磁头数=255,每道扇区数=63,柱面数=1023,  
  24.                    每扇字节数=512,以此计算出的容量=8414MB
  25.                    其中,1M=1000*1000      

  26. ---------------------------------------------------------------  
  27. 对固件提供的CHS进行常规检查...

  28. 常规项目检查OK:  扇区大小符合DISK要求,为512字节
  29. 常规项目检查OK:  磁头数在传统BIOS INT13允许范围
  30. 常规项目检查OK:  扇区数在传统BIOS INT13允许范围  
  31. 常规项目检查OK:  柱面数在传统BIOS INT13允许范围  

  32. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  33.         重要操作:ubootchk尝试估算BIOS可能的CHS调整修补值   

  34. 估算依据EDD规范和Phoenix BIOS、AMI BIOS资料进行,结果既受固件     
  35. 原始数据影响,又受BIOS算法版本影响,可能并不准确,仅供有兴趣者     
  36. 参考。     
  37.    
  38. ----------------------------------------------------------------  
  39. 估算: Phoenix BIOS下,CHS将调整修补为:C=1023,H=255,S=63
  40. 估算: AMI BIOS下,CHS将调整修补为:C=1024,H=255,S=63
复制代码

BIN降容能利用手里的东西。
不错。
uDiskToolBar我也试试。
不然剩余的容量挺浪费的。
回复 支持 反对

使用道具 举报

发表于 2023-1-10 14:04:11 | 显示全部楼层
虐待叔叔 发表于 2023-1-10 13:58
BIN降容能利用手里的东西。
不错。
uDiskToolBar我也试试。

从最上面的POST可以看出你这个U盘有32GB,可以考虑一下用uDiskToolBar单独分一个8000MB的分区出来用来兼容老设备,里面的MBR记录、启动记号做好了以后用uDiskToolBar切换分区,剩下的24GB又是一个独立的U盘,只要在两个分区下都放一个uDiskToolBar随时用密码切换就能零成本解决你的问题了不是么
回复 支持 反对

使用道具 举报

发表于 2023-1-10 14:08:03 | 显示全部楼层
可以的话尽量别用BIN降容,一方面要开量产工具,参数错误可能导致需要重新量产,另一方面uDiskToolBar可以精确控制分区大小也可以增加密码和密码提示,这还是官方工具,便捷好用,不到3MB
回复 支持 反对

使用道具 举报

发表于 2023-1-10 14:08:38 | 显示全部楼层
虐待叔叔 发表于 2023-1-10 13:58
BIN降容能利用手里的东西。
不错。
uDiskToolBar我也试试。

SDKtest工具比较直观。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-24 04:42 , Processed in 0.265200 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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