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支持以下调试标志位字段,可通过nvmebootarg或debug.NVMesysctl 进行传递:

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支持

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看下载!

如何免费获取密码?

点击下载

评论