欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

DSDT亮度修复失败

发布时间:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 DSDT亮度修复失败 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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没加载上,第二个是电源管理没加载上。很有可能是第一个原因。 posted on 2015-03-26 21:02 cynorr 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/cyno/p/4370058.html

总结

以上是生活随笔为你收集整理的DSDT亮度修复失败的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。