问题描述
- MacOS Big Sur 11.2.3
- MacBook Pro 15' 2015 年中
- 外置盘:Samsung T5 SSD 2TB
- 我已经安装了 smartmontools 和 DriveDX
- 我已按照此处所述安装内核驱动程序:https://binaryfruit.com/drivedx/usb-drive-support
使用 smartmontools 和 DriveDX,我可以成功地从迈拓硬盘和 WD Element 硬盘获取数据,所以我认为驱动程序很好,并且重新启动后连接外部驱动器的过程有效。 仍然无法从三星 T5 获取 SMART 数据。
唯一的假设是 T5 有一个不支持 SMART 技术的机箱,但我看到了包含 SMART 报告的磁盘评论。
有什么我可以尝试的吗?
解决方法
这可能是一段漫长的旅程,请抓紧时间。
由于此 SMART 读数基于 SATSMART 驱动程序,因此我会说驱动程序到设备部分存在一些问题。
建议您使用 IORegistryExplorer 进行诊断:找到您的 T5 设备并检查设备树中是否存在 fi_dungeon_driver_IOSATDriver。
如果它在那里,我会说不太可能,我有一个坏消息:您需要调试驱动程序并尝试查找,在数据交换期间发生了什么,为什么它无法检索 SMART来自设备的数据。这是一个复杂的过程,有很多地方可以让你在腿上射击。
但是我认为问题开始得更早,驱动程序与T5设备不匹配。
长话短说:匹配是一个过程,当系统决定什么驱动程序适合新设备时。要将 SATSMART 驱动程序与三星 T5 匹配,您需要做的是将其记录以相同的格式添加到驱动程序的 Info.plist 中,例如:
<key>Samsung T5</key>
<dict>
<key>PassThroughMode</key>
<string>YOUR_DEVICE_PASSTHROUGH_MODE</string>
<key>YOUR_DEVICE_PID</key>
<integer>24626</integer>
<key>idVendor</key>
<integer>YOUR_DEVICE_VID</integer>
</dict>
这里的 PID 和 VID 是产品和供应商 ID,有很多方法可以从您的设备中找到它们,包括 IORegistryExplorer。
YOUR_DEVICE_PASSTHROUGH_MODE 比较复杂,似乎没有关于那里使用的 USB 桥接类型的公开信息,所以我建议尝试不同的值,从 sat16 和 jmicron 开始。
更改 Info.plist 后,您将需要构建驱动程序。由于使用了旧宏,会出现很多错误:您可以使用 unmerged pull request 来解决它们。
最后,您应该通过修改获得 kext。 要在您的 macOS 上进行测试,您需要使用驱动程序签名对其进行签名或在您的 Mac 上禁用 SIP。
测试后,如果有效,您可以按原样使用它,或者写一封邮件到 binaryfruit.com 并要求他们将您的发现集成到他们的产品中 :)