NVMeFix 1.0.9 NVME 能耗控制驱动
NVMeFix是Apple NVMe存储驱动程序IONVMeFamily的一组修补程序。其目标是改善与非Apple SSD的兼容性。它可以在Apple和非Apple计算机上使用。
实现了以下功能:
- 自主电源状态转换以减少控制器的空闲功耗。
- 主机驱动器有功功率状态管理。
- 某些控制器(VMware,Sumsung PM981)上的超时恐慌的解决方法。
如果知识兔有足够的信息提交给Bugtracker,则可以解决与第三方SSD的其他不兼容问题。
不幸的是,某些问题不能仅通过内核端驱动程序来解决。例如,MacBookPro 11,1 EFI包含旧版本的NVMHCI DXE驱动程序,当从启用完整磁盘加密的休眠状态恢复时,该驱动程序会挂起。
安装
NVMeFix至少需要Lilu 1.4.1和至少10.14系统版本。它可能与旧系统兼容,但尚未经过测试。
它可能安装到/Library/Extensions
引导加载程序,或由引导加载程序注入。
组态
-nvmefdbg
启用详细的DEBUG
构建日志记录。
-nvmefoff
禁用kext。
开启APST时,某些SSD行为异常。NVMeFix尝试检测损坏的主板和SSD组合并加以解决。通过Clover注入的IORegistry键或OpenCore分享的NVRAM变量检测主板。
APST表条目指定发生过渡的最小空闲等待时间。最大可接受等待时间为100000微秒,知识兔可以通过ps-max-latency-us
父PCI设备(例如 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP06@1C,5/IOPP/SSD0@0
)的低端8字节属性进行覆盖 。如果知识兔设置为0,则将完全禁用APST。
诊断程序
RELEASE
build将仅记录有关故障的高级信息。
DEBUG
build将另外记录使用的电源状态,详细的错误消息,并尝试从控制器获取APST状态和表格。
APST启用状态将发布到IONVMeController IORegistry条目apst
键。
如果知识兔主动电源管理初始化成功,NVMePMProxy
将使用IOPowerManagement词典在IOPower IORegistry平面中创建一个条目。
例如,知识兔可以使用获取有关控制器支持的电源状态的信息smartmontools
。例如,在以下输出中,控制器报告5个状态,其中前三个高功率状态将由NVMeFix用于主动电源管理,后两个状态可用于APST,具体取决于ps-max-latency-us
。
Supported Power StatesSt 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
bootarg或debug.NVMe
sysctl 进行传递:
1: Log some events via kprintf2: Detailed event trace via kernel_debug with 0x61500xx debugid4: PRP-related event trace via kernel_debug with 0x61540xx debugid8: Force disable LPSR for Apple controllers16: Perform only PCI initialisation of NVMe controller32: Ignore initialisation errors128: Disable LPSR for Apple controllers512: Disable Unmap feature for IONVMeBlockStorageDevice
IONVMeFamily支持以下其他引导参数:
nand-io-timeoutms: Timeout for NVMe requests in ms, 35 s by defaultenable-IO-log: Issue CORE_DEBUG_ENABLE_IOLOG ASP command (for Apple controllers)
v1.0.9
- Added constants for macOS 12 support
- Fixed macOS 12 compatibility
v1.0.8
- Fixed applying quirks based on the disk name and serial
- Make Kingston A2000 quirk specific to S5Z42105
v1.0.7
- Fixed symbol solving on macOS 11.3
- Added
-nvmefaspm
boot argument to force ASPM L1 on all NVMe SSDs
v1.0.6
- Added APST workaround for Kingston A2000
v1.0.5
- Fixed quirks enabling per controller
- Fixed initialisation on 10.15+
v1.0.4
- Added MacKernelSDK with Xcode 12 compatibility
v1.0.3
- Fix re-enabling APST after sleep (1.0.2 regression)
- Added constants for 11.0 support (no full compatibility provided)
v1.0.2
- 防止某些控制器上的超时恐慌(VMware,三星PM981)
- 仅为不支持APST的控制器启用活动NVMe电源管理
v1.0.1
- 添加对怪胎自动检测的OpenCore支持
下载仅供下载体验和测试学习,不得商用和正当使用。