开发者生态
morning
Raiders of the Lost Array:为我的孤儿 Drobo 编写 macOS 驱动程序
2026-08-20
1 阅读
约7分钟阅读
fetzu
字号:
免责声明:我不知道我所做的任何事情是否合法。事实上,我对硬件黑客也没有任何深入的了解。免责声明2:虽然我又笨又懒,所以我会使用法学硕士来自动化咖啡制作——(哎呀!)并且,偶尔使用法学硕士来编写代码;这篇文章完全是由人类撰写的,甚至几乎没有经过法学硕士的校对。此免责声明适用于本博客上的所有其他文章。我早在 2021 年就启动了这个网站,但从未花时间在博客上实际写过任何内容。我想“迟到总比不到好”。所以,没什么了……今天,受到 HN 提交的题为“Claude 为我专为 Windows 构建的不起眼的 HP 打印机编写 macOS 驱动程序”的启发,我想到了我值得信赖的 Drobo 5D,这是一个 RAID 阵列,它在过去 14 年里一直完美地保存和服务我的文件(除非 2019 年发生“电源适配器损坏”事件)。 Drobo 已经停业,而即将推出的 macOS 27 “Golden Gate” 是支持 Rosetta 2 的最后一个版本,这意味着该软件套件的一部分将不再与未来的 macOS 版本兼容 - 而且该套件有太多的生活质量改进,我无法传递。由于生病并被困在家里,我想:“为什么不让克劳迪奥来处理这个案子”。这是这次冒险的编年史。 “Drobo”公司已倒闭(请参阅 https://petapixel.com/2023/06/06/drobo-is-officially-done-as-the-company-moves-into-liquidation/)。我拥有一台“Drobo 5D”,它使用 USB 3 连接到我的 Mac(Thunderbolt 2 端口不适用于较新的 Mac 型号)——这仍然适用于我运行 macOS Ventura (13) 的 2017 iMac。 Drobo 本身和 Drobo 仪表板软件都可以工作。在较新的 macOS 版本上,Drobo Dashboard 软件不再兼容,并且 Drobo 只能作为外部驱动器安装。出于生态考虑,我的目标是尽可能长时间地使用该设备,但不想被“锁定” macOS(或 Mac 硬件)升级。您今天的任务是分析当前的 Drobo 5D 固件以及 Drobo Dashboard 软件,并尝试了解为什么它无法在较新的 macOS 版本上工作,什么可能会阻止硬件在较新的 Mac 硬件上工作,并提出解决此问题的解决方案。一切都在桌面上:从简单的修复到针对现代 mac/macOS 的驱动程序和 Drobo Dashboard 的完全重写。注意:我在 /Users/fetzu/Dev/ReDrobo/ZZ_BUFFER 文件夹中为您提供了一些以前(最新)版本的 Drobo 驱动程序和 Drobo Dashboard。您可以随意使用它们,但请尽量避免在这台 Mac 上安装它们(我认为您不能)。该提示的剖析非常简单:我提供上下文(希望不要被标记为网络安全/逆向工程,我太天真了),陈述任务并向 Claude 提供这两个软件的最后 5 个版本(包括单独 PDF 中的发行说明。感谢这位圣人花时间上传和索引这些文件。)将提示放入《神鬼寓言 5》的 High 中(因为,为什么不呢?)并自动标记并切换到 Opus 4.8.我决定在此打断它,并在 Max 上使用 Opus 5 打开一个新会话 - 然后我们就开始比赛了。经过一番思考和摆弄 drivers/drobo 仪表板二进制文件后,Claude 提出了一个 5 阶段计划。正如任何优秀的工程师一样,克劳德从 0 开始计数:“首先保护数据”(废话)“验证协议”(通过比较带驱动程序的设备(运行 macOS 13 的 2017 年 iMac,以及不带驱动程序的运行 macOS 26 的 MacBook Pro M5 Pro)之间的数据输出)。 “解码记录有效负载”(目的是验证和吐出协议规范)“发送可用的 CLI”(输出 Drobo 仪表板通常会输出的信息)“实时驱动程序”(实际的 Drobo 仪表板替代品)该计划似乎足够合理,让我们深入了解……我知道这会起作用(卷正确安装并且可读可写,但它报告了错误的大小,并且没有向用户提供有关该卷当前状态的信息)卷/阵列/驱动器),Claude 编写了一个名为 drobobrobe 的漂亮 C 实用程序,以便在插入设备后进行探测。Claude 让我先截取 Drobo Dashboard 内 Drobo 5D 当前状态的屏幕截图(好家伙,我不喜欢打字)。该阶段允许克劳德确认设备正在工作,但确实报告了错误的卷大小。已使用的免费仪表板 (iMac) 5.42 TB 4.25 TB 1.17 TB macOS(此处) 17.6 TB 4.7 TB 12.9 TB 但是,还有“坏消息”:SCSITaskUserClient 不适用于 Drobo。 IOCreatePlugInInterfaceForService 返回 kIOReturnUnsupported 。此 Mac 上的零服务发布 SCSITaskDeviceCategory — 启动器在每个 SCSI nub 上保留一个匹配类别,但从未真正启动。原因一直在苹果自己的标头中:SCSITaskLib 为“没有内核驱动程序”的设备以及光刻机提供服务。 Drobo 被 Apple 的 IOSCSIPeripheralDe 认领
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱