|
本帖最后由 windows9650 于 2021-9-13 23:23 编辑
I have a card~
It works so fast~
But i just need it to be special dart~
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
好几年前,俺迷上了中塔机箱,特别是能塞好几块硬盘的那种,后来主板上的硬盘接口不够用了,我又学会了使用SATA扩展卡。
ASM1061、88SE9215、JMB585,每个来几张。
用过的卡我都刷过固件,要么为了纯粹的版本升级,要么为了改进兼容性,要么为了一些特别的小功能。
我有个使用环境很复杂的NAS机群,从XP到Win7都有,不喜欢群辉之类的成品和山寨NAS,因为他们没有我需要的东西,比如Winny、Share、PerfectDark等等。
这个故事发生在我的XP-NAS上。
这台NAS我是实机安装的XP系统,平台是ASRock QC5000M,处理器是AMD A4-5000,板上只有两个SATA3,但是它有三条PCI-E,所以我可以插三张SATA扩展卡。
在这台NAS上我装的是两张ASMedia ASM1061,淘宝最常见的红色M.2+SATA款式,包邮49的那个(最上面的那张图的那种)。
起初我用起来都挺好的,该有的都有,就是安装官方驱动后接在里面的硬盘无法休眠。
到处询问并测试了很多方法,全都没用,直到我刷入0.951版本的PATA/IDE固件并无意间卸载了官方驱动后,问题解决。
我不知道这些厂商为什么不愿意提供PATA/IDE固件,但是在这台XP-NAS上,ASMedia ASM1061必须运行在PATA/IDE模式下,否则我的强迫症是绝对治不好的。
况且我也确实需要一个免驱的PATA/IDE模式的SATA扩展卡以备不时之需,万一哪天用得上呢?
折腾过ASM1061的可能都知道,在很早以前,特别是固件版本0.XX到3.XX时代的时候,很多同芯片产品的随机驱动光盘还是有送PATA/IDE固件的,虽然那时候刷新程序非常古老得进DOS才能运行,不过后来新出的4.XX倒是支持Win下直接刷入固件修改工作模式,很可惜的是对应的PATA/IDE固件根本没提供。
我找过很多地方,问过很多人,得到的答案都是:AHCI比较先进,为什么不用AHCI而非要去用那么落后的PATA/IDE模式?
可我就是想要这种卡啊?
大不了我自己来呗~
打开Google,搜一下ASMedia ASM1061,发现https://www.station-drivers.com/里的驱动和固件工具是真TND齐全,国内OEM渠道基本全灭,于是就在这站里把每个版本都下下来备用。
当时发现一个奇怪的情况,除了4.27以及后期版本的固件以外,其他版本都是通过106spi.exe这个古老的程序刷写固件的,这鬼东西是2010年的古董,全名ASM106X SPI Flash ROM Write,用任意文本编辑工具打开,翻到底下,都会看到SPI芯片支持列表,比如下面红框里的这些。
这些SPI芯片容量都是512Kbit,也就是64KB的。
换句话说,刷入的固件体积绝对不能超过64KB。
挨个测试过去后整理出0.89、0.951、3.02、3.70、4.27这几个确认正常运行的版本。
然后打开HEX编辑器,开始比对AHCI和PATA/IDE固件之间的差异。
在比对过程中发现,0.89、0.951、3.02这三个版本固件之中都只修改了一处,而且是修改的同一处,位置在0x00000018,AHCI模式下原始值为06,PATA/IDE模式下为01,如下图。
而3.70比较奇特,模式切换的变量位于0x00000020,不过AHCI模式原始值也是06,PATA/IDE模式原始值也还是01,如下图。
由于4.27是最新固件,官方也没有提供对应版本的PATA/IDE固件,所以就没有进行对比,而是将其作为一会用于修改的基础固件。
目前唯一知道的是ASMedia ASM1061的固件可以通过修改某个变量上的HEX值实现模式切换,AHCI为06,PATA/IDE为01,64KB ROM的最新固件版本号4.27,38144字节,约37.2KB,CRC值为5665828f。
因为前面几个版本这个模式开关都处于一个很明显的HEX值00 EC 00之后,我在4.27官方AHCI固件的0x00000020找到了06这个数值,把它改成01,保存,刷入SPI,开机的时候显示运行在PATA/IDE模式下,以为没问题了,接入一个固态安装XP系统的时候又爆出那个经典的0x0000007b蓝屏。
认得这个代码的都知道,这是XP以及以前系统没有集成SCSI/SATA驱动的时候才会跳的BSOD,在BIOS里修改SATA通道运行模式为IDE就能解决,但毕竟治标不治本。
而且遇到这个问题,很明显说明我修改失败了。
不知道是不是固件有暗桩,我前前后后修改了好几次,数值从00一直换到FF,没有一次成功过。
暗箱操作,无奈。
因为实在是头疼,后来刷回了4.27的AHCI固件后放在XP-NAS上继续服役了一阵子,几乎忘了这件事。
几个月后,某次维护XP-NAS,突然想起这个事,又翻出来折腾。
不过这次我选择了一条曲线超车的方法——复制3.70的PATA/IDE固件头直接覆盖对应区域。
对比几组固件的HEX后,决定将3.70的PATA/IDE固件头从0x00000000到0x000000FF全部复制并覆盖4.27对应区域。
修改完成后保存,文件大小没变,CRC值变为cec22c1a。
顶着扩展卡损坏的风险,刷进去,开机,显示运行在PATA/IDE模式下,到XP桌面后打开硬件管理器,识别出来是IDE设备接口,双口都在,还带主从盘设置,这次应该是没问题了。
试着在扩展卡里安装XP,从引导到桌面,完全没问题,就跟板载接口在PATA/IDE模式下安装一样,使用也正常,连驱动都不用打。
这张卡到这里终于算是修改成功了。
从修改成功的那天(2020.12.22)算起到现在(2021.09.13),这张卡在XP-NAS上正常服役,并没有出现无法识别或者丢盘、卡盘的现象,机械硬盘在扩展卡下的休眠功能也一切正常,有明显的启停动作,到此算是彻底摆脱了官方驱动强行奴役硬盘的问题,反正我接的是机械盘,官方驱动所谓的优化性能在我看来没啥明显改进,吃我硬盘寿命和电费倒是真的。
至于修改模式后的损失嘛,说实话PCI-E 1X的带宽一共就那么点,除去损耗能接近400MB/S就该偷笑了,我反正觉得很满意。
最后奉上修改过的4.27版本PATA/IDE模式固件和Win环境固件刷新程序,打包在一个压缩包里了,省得你们说我赚黑钱~
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|