瑞昱Realtek RTL9012B芯片带屏幕移动固态硬盘盒V1.32.49固件升级及参数翻译

发布于 2023-06-17  667 次阅读


最近ITGZ的硬盘盒子讨论度挺高的,我也跟风买了个,我买的是带屏幕版本的,可以显示一些硬盘信息,当时看着觉得挺不错就买了,早些时候就听说过9012B有涨0D(不安全关机次数)的问题,秉承着不折腾会死精神,到货第一时间就随便找了个固件包更新固件,更新完后没出意外的话就出意外了,升级完后还能读盘,但是状态灯和屏幕都噶了,后来一想明白了,这tm固件是公版固件,这哪行啊,无奈只能去各大论坛碰运气了,大概是带屏幕的太贵了没几个垃圾佬买吧,根本搜不到任何有关带屏版本固件的信息,没办法,只能自己动手丰衣足食了。

0x01 备份原始配置

连接盒子直接点开固件包内的更新软件点击上方导航栏的第四个选项“Dump”进入二级菜单后点击“Show Devices Info”将弹出窗口内的信息复制保存下来
image.png

0x02 更新固件

还是简单说一下吧,9210B这个盒子更新固件非常简单,根本不需要脑子,连接盒子直接点开固件包内的更新软件,再点击左上角红色图标的Update Device等待约20秒就行了,期间会自动重连,刷好了也不用重新插拔而且默认配置即可正常使用,当然也可以手动进行一些客制化的操作,固件升级软件界面内能提供的改动项目很少,需要手动编辑conf,这个是本篇文章的重点,稍后再说。用自己改的conf刷盒子刷死了不识别了的解决办法也很简单,拆开盒子取出主板,短接ROM芯片的第一脚和第八脚再插电即可识别,放心大胆的刷就是了。
BC68F.jpg

0x03 固件配置翻译

在寻找固件的过程中我还是看到有些文章有讲解固件参数,但是说真的几乎没有参考价值,原始配置文件里只有寥寥几行可怜的参数,虽然能用,但是我的强迫症不允许我看到这么多n/a,其他大佬的翻译和dump出来的其他厂商硬盘盒的参数也都很少,很多参数都没有用上都是n/a;这里我配合CHAT GPT翻译并改参数上手刷,把80%以上固件参数整明白了,有需要可以自行复制更改。叠个甲:介于CHAT GPT的翻译并不是100%准确,我总结出来的参数也仅适用于我自己的设备,因个人操作不当造成的损坏与本人无关。

;Configure Start
;=================FW Configure=================
;GPT原文:U3PHY指的是USB3.0上行物理层芯片(Upstream PHY)的参数,这个参数用于控制芯片的通信、时序等参数,不同数值对应不同的设置。
;这个参数的值 "02 d4 09 00 d5 00 80" 是一个十六进制数值,它对应的是UAS协议中的U3PHY参数。
;U3PHY是USB Attached SCSI (UAS) 协议中用来描述USB连接的物理层参数的一个参数,它的主要作用是帮助磁盘盒子进行数据传输时的性能优化。
;具体来说,这个参数值的含义是:
;- 02:表示USB 3.0的速度等级为Gen 2(10 Gbps)
;- d4 09:表示发送端和接收端之间的插入延迟(Insertion Delay)
;- 00:表示发送端和接收端之间的向前跳跃(Forward Skew)
;- d5 00:表示发送端和接收端之间的向后跳跃(Reverse Skew)
;- 80:表示发送端和接收端之间的电流补偿(Current Compensation)
U2PHY = 02 f4 9b e0 e1 
U3PHY = 02 d4 09 00 d5 00 80 

;厂商ID(Realtek Semiconductor Corp.)
VID = 0xbda
;设备ID
PID = 0x9210

;生产商
MANUFACTURE = "Realtek"
;磁盘控制器中显示的生产商名称(注释后可以显示硬盘本身名称)
;SCSI_VENDOR = "RTL9210B-CG"
;产品型号
PRODUCT = "RTL9210B-CG"
;磁盘控制器中显示的产品型号(注释后可以显示硬盘本身型号)
;SCSI_PRODUCT = "RTL9210B-CG"
;产品序列号
SERIAL = "2023060617"

;开启CFE接口支持(待确认)
CFEXPRESS = 0x0
;硬盘休眠时间,单位:分钟(建议10分钟)
DISK_IPS_THRES = 30
;LED工作模式
LED = 0x1
;自定义LED效果,如呼吸效果为01 01(带屏幕版本为25 01,不可更改,更改后屏幕无法显示)
CUSTOMIZED_LED = 25 01 
;GPT觉得可能是电脑关机过后是否关闭LED显示(网上看其他人翻译的似乎是关闭外置RGB灯)
SUSPEND_LED_OFF = 0x1
;开启U1U2功率管理
;https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-3-0-lpm-mechanism-
EN_U1U2 = 0x1
;开启主动散热,有配风扇接口的盒子才有效
FAN = 0x0
;关闭无硬盘时显示空盘符
DIS_SHOW_EMPTY_DISK = 0x1
;管脚复用参数(暂时不能确定具体作用,大部分盒子1是0,2是70,也有的盒子相反)
PINMUX1 = 0x0
PINMUX2 = 0x0
;最大功率设置(不确定具体作用,也不建议更改,测试调大U3为7d也就是125时硬盘盒插Linux或移动设备无法识别硬盘)
U2_MAXPWR = 0xfa
U3_MAXPWR = 0x70
;是否禁用活动电源管理,禁用后桥接芯片会始终保持高功率。WinToGo建议设置0x1,移动硬盘建议0x0。
ASPMDIS = 0x0
;开启不间断供电(盒子带风扇RGB时可能有用)
EN_UPS = 0x0
;开启PD供电模式(待确认,开了以后也不会从PD协议握手,还有一定副作用,如用WTG时可能导致加电变慢导致无法从硬盘引导)
PD = 0x0
;磁盘热插拔支持(建议关闭,从我的盒子测试开了之后无法识别硬盘,触摸按钮会直接重启盒子)
DISK_HOTPLUG = 0x0
;延迟初始化磁盘(可能大容量大功率硬盘用得上)
LATE_INIT_DISK = 0x0
;自定义硬盘名识别(开启后自带屏幕显示硬盘名字会变成产品型号)
CUSTOMIZED_DISK_IDENTIFY = 0x0
;PCIe参考时钟的频率值(超频用?)
PCIE_REFCLK = 0x3a
;GPT觉得大概是把盒子内部的芯片或其他组件的电源供电从3.3V切换为1.2V
;SWR_1_2V
;强制固定USB速度
;FORCE_USB_SPEED : n/a
;强制固定PCIE速度
;FORCE_PCIE_SPEED : n/a
;GPT原文:"FORCE_USB_QUIRK"参数的意思可能是强制启用某些USB兼容性选项。通常,USB设备需要遵循USB规范,以便与计算机正确通信。
;但是,由于硬件和软件之间的不兼容性,某些设备可能需要启用一些额外的选项才能正确地与计算机通信。
;"FORCE_USB_QUIRK"参数可能是给硬盘盒子的固件添加的一个选项,以确保设备与计算机之间的通信稳定。
;FORCE_USB_QUIRK : n/a
;FORCE_PCIE_QUIRK : n/a
;强制使用SATA正常的DMA传输模式。SATA接口支持多种传输模式,包括NCQ、FUA等,而DMA是其中一种常用的传输模式,可以通过一次传送多个数据块。
;据推测,这个硬盘盒子的固件中可能存在一些不兼容或不稳定的情况,需要通过强制使用SATA正常的DMA传输模式来解决问题。
;FORCE_SATA_NORMAL_DMA =
;GPT觉得可能是指纹识别的功能,一般盒子别想了
FINGER_PRINT_EN = 0x0
;GPT原文:根据这个参数的命名,很可能是指"Remove internal read",即禁用硬盘盒子内部读取硬盘的功能。
;这个功能可能会影响到硬盘的读写速度和其他性能表现,如此设置可能是为了避免潜在的性能问题。
;我觉得可能是让盒子不用读取硬盘信息,没屏幕的硬盘盒可能开启可以提升性能
RM_INTERNAL_RD = 0x1
;"HS_AUTO_SWITCH"参数可能是指硬盘盒的高速自动切换功能,即在设备连接不同的主机或使用不同的USB接口时,自动切换到最高可用的传输速率。
;"HS_AUTO_SWITCH"可能会根据硬件设备的能力自动协商并启用相应的高速协议,如USB3.0或USB3.1等。
HS_AUTO_SWITCH = 0x1
;硬件LED切换开关(一般都没有这种东西吧)
HW_LED_CFG = 0x0
;GPT原文:“CDROM_CFG”参数可能是用来设置硬盘盒子的模拟CD-ROM功能的配置。
;由于一些旧的设备或操作系统可能不支持USB存储设备,因此一些硬盘盒 子提供了模拟CD-ROM的功能,使得设备可以被识别为CD-ROM驱动器,
;从而在这些设备上安装操作系统或驱动程序等。该参数可能用于设置模拟CD-ROM的相关配置,例如:虚拟光盘文件的路径、CD-ROM设备ID等。
;CDROM_CFG = 0x0
;GPT原文:“SUPPORT_HID”参数可能代表硬盘盒子是否支持HID(Human Interface Device)模式。
;HID模式是一种USB设备工作模式,使设备可以像键盘或 鼠标一样自动与主机通信,而无需安装特殊驱动程序。
;如果硬盘盒子支持HID模式,它可以像一个键盘或鼠标一样与主机通信,使硬盘盒子的使用更加便捷。
;这个参数的值需要额外确定,因为开启该设置会导致LED灯光颜色异常;开启会导致睡眠灯光为绿色(正常应为青色)
;SUPPORT_HID = 0x0

;GPT原文:这个参数可能是指在电脑进入睡眠或待机状态时,硬盘盒子是否关闭硬盘的电源。
;如果设置为开启(off),则硬盘盒子会在电脑进入睡眠或待机状态时关闭硬盘电源以节省电力。
;如果设置为关闭(on),则硬盘盒子将保持硬盘电源的开启状态,但可能会影响电池续航时间。
;测试这个参数和指示灯灯光颜色有一定关系,0x1 0x7都正常,关闭会导致睡眠灯光为绿色(正常应为青色)
SUSPEND_DISK_OFF = 0x7
;GPT原文:“SCSI_WP_PIN”是指SCSI协议的写保护(Write Protect)功能的引脚,其取值范围是0x00到0xff。
;在该硬盘盒子的固件参数中,将其设置为0x0c的作用是启用SCSI写保护功能,该值可以根据具体使用需求进行设置。
;当写保护功能启用后,硬盘将被锁定只读,无法进行写入操作,以保护数据不被误删或修改。
;一般盒子默认值即可
SCSI_WP_PIN = 0xc
;GPT原文:在SCSI协议中,"SCSI_WB_PIN"参数可能定义的是指SCSI协议的写缓存(Write Back)功能的引脚,
;该参数通常用于控制SCSI设备的写缓存模式,以优化数据写入性能和安全性。
;SCSI_WB_PIN = 
;UART串口 DEBUG PIN码
UART_DBG_PIN = 0x5
;GPT原文:根据常规的硬件设备参数命名规则,"PERIPH_API"可能是指固件中针对外围设备所提供的应用程序接口。
;外围设备包括连接在硬盘盒子上的 USB 控制器芯片等,这些设备通过这个接口与固件进行通信和数据交换。这个接口可能包括一系列的数据结构、函数和命令等
PERIPH_API = 1
;UART串口 DEBUG 波特率
UART_BAUD_RATE = 57600

;=================Tool Configure=================
;分区表: GPT, MBR
PARTITION = "GPT"
;文件系统格式:NTFS, exFAT
FORMAT = "NTFS"
;分区名
LABEL = "My USB"

0x04 感谢以下两篇文章

固件可以去这边下载
https://www.mydigit.cn/thread-304506-1-1.html
https://www.airchip.org.cn/index.php/2022/04/18/9210abfw1298/