NVMeFix.kext是黑苹果屋搜集到的Apple NVMe存储驱动程序IONVMeFamily的一组修补程序。其目标是改善与非Apple SSD的兼容性。它可以在Mac和黑苹果计算机上使用。该Kext实现了以下功能:
- 自主电源状态转换以减少控制器的空闲功耗。
- 主机驱动器功率状态管理。
如果有足够的信息提交给Bugtracker,则可以解决与第三方SSD的其他不兼容问题。但是,某些问题不能仅通过内核端驱动程序来解决。例如,MacBookPro 11,1 EFI包含旧版本的NVMHCI DXE驱动程序,当从启用完整磁盘加密的休眠状态恢复时,该驱动程序会挂起。
安装
- NVMeFix.kext 需要至少 Lilu 1.4.1 版和 macOS 10.14 及以上版本;
- 可能可以与低于 10.14 的 macOS 兼容,但未经过测试;
- 可以安装到 System/Library/Extensions(简称S/L/E目录),也可以由 Clover/OpenCore EFI Bootloader 注入。
- 强烈建议如非必要不要修改 S/L/E 目录,把 kext 放到 Clover / OpenCore 引导目录进行注入加载。
功能配置
- -nvmefdbg 开启debug日志(仅debug版本)
- -nvmeoff 关闭该驱动程序
- 开启APST时,某些SSD行为异常。NVMeFix尝试检测损坏的主板和SSD组合并加以解决。通过 Clover 注入的 IORegistry 键或 OpenCore 提供的 NVRAM 变量检测主板。
- APST 表条目指定发生过渡的最小空闲等待时间。最大可接受延迟为 100000 微秒,可以通过父 PCI 设备的低端 8 位字节属性 ps-max-latency-us 来覆盖(例如:IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP06@1C,5/IOPP/SSD0@0)。
- 如果设置为0,则将完全禁用APST。
问题诊断信息说明
- release 版本日志仅显示高级错误信息;
- debug 版会另外记录使用的电源状态,详细的错误消息,并尝试从控制器获取APST状态和表;
- APST启用状态将posted到 IONVMeController IORegistry 条目 apst 键值;
- 如果主动电源管理初始化成功,将使用IOPowerManagement dictionary 在 IOPower IORegistry plane中创建一个 NVMePMProxy 条目;
- 使用smartmontools可以获得关于控制器支持的功率状态的信息。例如,在以下输出中,控制器报告5个状态,其中前三个高功率状态将由NVMeFix用于主动电源管理,后两个状态可用于APST,具体取决于ps-max-latency-us。
Supported Power States | ||||||||||
St | Op | Max | Active | Idle | RL | RT | WL | WT | Ent_Lat | Ex_Lat |
0 | + | 9.00W | - | - | 0 | 0 | 0 | 0 | 0 | 0 |
1 | + | 4.60W | - | - | 1 | 1 | 1 | 1 | 0 | 0 |
2 | + | 3.80W | - | - | 2 | 2 | 2 | 2 | 0 | 0 |
3 | - | 0.0450W | - | - | 3 | 3 | 3 | 3 | 2000 | 2000 |
4 | - | 0.0040W | - | - | 4 | 4 | 4 | 4 | 6000 | 8000 |
IONVMeFamily支持以下调试标志位字段,这些位通过 nvme boot-arg 或 debug.NVMe sysctl 传递:
- 通过kprintf记录一些事件
- 通过kernel_debug使用0x61500xx debugid进行详细的事件跟踪
- 通过kernel_debug和0x61540xx debugid进行的PRP相关事件跟踪
- 强制禁用Apple控制器的LPSR
- 仅执行NVMe控制器的PCI初始化
- 忽略初始化错误
- 为Apple控制器禁用LPSR
- 禁用IONVMeBlockStorageDevice的取消映射功能
IONVMeFamily支持以下其他引导参数:
- nand-io-timeoutms:NVMe请求的超时时间(毫秒),默认为35秒
- enable-IO-log:发出 CORE_DEBUG_ENABLE_IOLOG ASP命令(对于Apple控制器)
更新日志 · 历史版本
“NVMeFix.kext.v1.1.2-20241211更新”
展开/收缩
“NVMeFix.kext.v1.1.2”
展开/收缩
“NVMeFix.kext.v1.1.1”
展开/收缩
“NVMeFix.kext.v1.1.0-20220706”
展开/收缩
“下载地址包含以下历史版本”
展开/收缩
下载地址
【解压密码:imacos.top】
评论0