zoukankan      html  css  js  c++  java
  • DSDT亮度修复失败

    DSDT修复亮度原理


        以上应该很多人都做过了。下面就是驱动的关键。这个ACPIBacklight.kext 的原理是在DSDT 中搜索_BCM,_BCL,_BQC 以及显卡下的_DOS 函数并调用。所以实质上起到的是建立Mac 系统和ACPI 的某种联系。其实DSDT 中已经有调整亮度的代码,但是亮度的档位却不一定和Mac 一样,所以仍需要修改(真麻烦。。。)
    很多帖子都已经说了,Mac 系统有17 个档位,16 + 1空档。不过看到某些帖子说其实Mac 下最多有512,以实现微调,就像声音一样,不过也和smbios 的机型有关。有兴趣的朋友可以试试。Anyways,回归主题。亮度档位由_BCL 函数提供,所以要去DSDT 中搜索_BCL 返回值的来源是哪里。例如我的就是返回IBCL,然后再去搜索IBCL 在哪。
    

    具体:HERE
    由以上原理可知,实现亮度调节有3个要素:

    • 1.实现调节的函数
    • 2.DSDT中调用函数的补丁
    • 3.ACPIBacklight.kext插件

    小太阳和函数


    • 1.小太阳:
        对于第2个要素,也就是补丁,我的补丁不在DSDT里面,而是在SSDT里面。真心不知道怎么把他加载到DSDT里面。但是由于使用强大的clover,我可以addPNLC从而启动了小太阳,即F14和F15能移动亮度滑块。但是这只是个空壳子,并没有调用到实际亮度函数。
    
    • 2.函数:
        本来一直以为函数在ssdt-7中,显然_BCL是在ssdt-7中实现的,但是补丁并不能去全局搜索这个函数。这个函数分两层调用,ssdt-8应该是总调用,ssdt-8中的_BCL函数返回ssdt-7中这个函数实现的具体位置,所以这次失败的原因很可能没调用ssdt-8。ssdt-8是显卡的总调用,但是是不是其他所有硬件的总店用还要在考虑。
    
    • 3.电源管理
        SSDT可以设置默认的亮度,连接电源时和电池显示,这个设置在ssdt-7中。我修改完之后没反应,原因有两个。第一个是ssdt没加载上,第二个是电源管理没加载上。很有可能是第一个原因。
    
  • 相关阅读:
    zabbix笔记之计算型监控项详解
    zabbix笔记之磁盘IO介绍
    zabbix笔记之Graphtree配置
    zabbix笔记之告警时远程执行命令
    zabbix笔记之异常优化
    zabbix笔记之IPMI配置
    基本的sql 语句
    socket 套接字
    调用父类的三种方法
    实例属性和类属性
  • 原文地址:https://www.cnblogs.com/cyno/p/4370058.html
Copyright © 2011-2022 走看看