RBrightnessKeys.kext星辰云资源搜集到的用于亮度快捷驱动,根据ACPI规范,自动处理没有DSDT补丁的亮度键
需要Lilu 1.2.0或更高版本。

引导参数

  • -brkeysdbg 启用调试打印(在DEBUG二进制文件中可用)。

特别案例

通常,不需要DSDT补丁。请删除旧的_QxxXQxx的。
在某些型号上,可能需要添加ACPI补丁_OSI to XOSISSDT-XOSI。扰流板:在某些旧的ThinkPad型号上,可能需要其他处理。
这是他们的“提高亮度” EC事件的示例。

Method (_Q14, 0, NotSerialized)
{
    If (^HKEY.MHKK (0x8000))
    {
        ^HKEY.MHKQ (0x1010)                // Vendor-specific event: TP_HKEY_EV_BRGHT_UP
    }

    If (NBCF) // Whether
    {
        If (VIGD)
        {
            Notify (^^^VID.LCD0, 0x86)     // Send 0x86 "Increase Brightness" to integrated graphics
        }
        Else
        {
            Notify (^^^PEG.VID.LCD0, 0x86) // Send 0x86 "Increase Brightness" to discrete graphics
        }
    }
    Else
    {
        Local0 = BRLV                      // Local variable to store current brightness level
        If ((Local0 != 0x0F))
        {
            Local0++
            BRLV = Local0
        }

        If (VIGD)
        {
            UCMS (0x16)                    // SMI access for integrated graphics
            BRNS ()
        }
        Else
        {
            VBRC (Local0)                  // SMI access for discrete graphics
        }

        ^HKEY.MHKQ (0x6050)                // Vendor-specific event: TP_HKEY_EV_BACKLIGHT_CHANGED
    }
}

NBCF默认情况下,当设置为零时,该方法将不会通知图形设备,并尝试直接调整亮度。要覆盖它,请NBCF = 0x01在SSDT hotpatch中设置,或仅使用一个简单的补丁替换其声明。

  • 对于使用较早的iasl编译的DSDT,请替换Name (NBCF, 0x00)Name (NBCF, 0x01)
    查找:08 4E424346 0A 00 // NameOp "NBCF" BytePrefix "00"
    重复:08 4E424346 0A 01 // NameOp "NBCF" BytePrefix "01"
  • 对于使用较新的iasl编译的DSDT,请替换Name (NBCF, Zero)Name (NBCF, One)
    查找:08 4E424346 00 // NameOp "NBCF" ZeroOp
    重复:08 4E424346 01 // NameOp "NBCF" OneOp

下载地址

隐藏内容
本内容需权限查看
  • 普通: 9.9星币
  • 会员: 免费
  • 终身会员: 免费
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。