- 积分
- 707
- 最后登录
- 2023-8-18
- 精华
- 0
- 阅读权限
- 40
- 主题
- 55
- UID
- 64620
- 帖子
- 1692
- PB币
- 6602
- 威望
- 5
- 贡献
- 0
- 技术
- 82
- 活跃
- 474
- UID
- 64620
- 帖子
- 1692
- PB币
- 6602
- 贡献
- 0
- 技术
- 82
- 活跃
- 474
|
发表于 2013-11-3 11:28:32
IP属地辽宁
|显示全部楼层
本帖最后由 FrankieD 于 2014-3-8 19:40 编辑
首先 insanelymac上是我写的 别说我抄袭 转载不注明出处
然后 感谢野蛮人2 我们两个人研究了三天 最后找出方法 以及 中国开发网的“张秋桥” 我搜遍了整个网络,发现了他的帖子,给了我灵感
http://www.cndev.org/forum/msg?pid=911993
正文
大部分人可能通过修改DSDT的PNLF都能调节亮度,为什么各种亮度教程里都要用genericbrightness
因为这个驱动自带亮度表,原装的驱动亮度很不均匀 不是最后一档黑屏就是起始亮度太高
但genericbrightness有很多毛病
首先不稳定,因为两个驱动同时工作 先AppleBacklight.kext发出指令,然后Genericbrightness再发指令
所以就会出现先亮再暗的情况
其次是睡眠唤醒,亮度变高,因为唤醒之后调用的是AppleBacklight.kext发出的指令
你要解决就必须要重新调节亮度,重新“AppleBacklight.kext发出指令,然后Genericbrightness再发指令”并且,如果你频繁调节亮度,比如一直暗最低亮度,就会发现屏幕突然黑了,这也是因为AppleBacklight.kext发出指令而GenericBrightness没有发出相应指令的原因
前几天发帖子问怎么解决,有人恰好也发帖说intel的解决方法是修改FB 100700001007
这个方法是只能针对intel亮度过大的
而独立显卡则基本不具备可操作性
首先想找到A卡或者N卡的最大亮度值在那个驱动里几乎是不可能
就算找到了 也很难确定上限值在哪
再说说用原装亮度表的好处
首先就是17档亮度调节
有些人会说苹果不是16档么? 其实不是,是17挡!还有一个空挡亮度调节
最后一档是有亮度的 但大部分人不用genericbrightness在最后一档就直接黑下来了
但用了genericbrightness以后,到了中间亮度以后 会变得很亮
而且 使用默认的亮度调节表 其实是非线性的亮度调节表,是一个曲线,所以会出现,某两档亮度差距很大,或者最低亮度比win下中间亮度还亮的情况
而苹果专门针对每款mac都做了修正,把亮度调节变成了一条直线
现在教大家一种完美的方法,让你的电脑像原装mac一样的亮度调节,可以用面板滑块精确到每个数值,让强迫症患者找到自己喜欢的亮度
而且亮度可以低到超乎想象,低到你屏幕可以的最低亮度
看帖之前,请确认自己可以不需要GenericBrightness或者AppleACPIBacklight就可以调节亮度;如果不行的话 首先想办法驱动原版就能够做到调节亮度
首先 确定你显卡的型号和白苹果最相近的型号
比如我的sony EA18 显卡是ATI5650,和我最接近的是imac 11,3 imac 12,2
下载他们的IOReg,查看他们的显示器设备ID 比如这个
请勿使用多线程下载工具下载论坛附件!
以及你自己的显示器设备ID
像我这样
请勿使用多线程下载工具下载论坛附件!
然后复制AppleBacklight.kext到桌面,打开info.plist
找到这里
请勿使用多线程下载工具下载论坛附件!
搜索a007,然后把a007替换成我的设备ID 05fa 删掉其他的亮度表,如果你愿意 可以把default也改成我一样
然后替换原来的驱动
- sudo -s
- chmod -R 755 /System/Library/Extensions/AppleBacklight.kext
- chown -R root:wheel /System/Library/Extensions/AppleBacklight.kext/
- rm -rf /System/Library/Extensions.*
- diskutil repairpermissions /
复制代码
第二步 注入EDID 这个注入EDID的方法不同于DSDT注入,是真正的白苹果注入方法。根据你显示器的设备ID 范例ID(通过IOreg看),在System\Library\Display\Overrides下 找到你的范例ID文件夹 比如我是4dd9
在下面复制一个显示器的相同文件,改名成自己的设备ID 然后里头填入你的设备ID 范例ID和EDID 注意 这两个ID需要从16进制改成10进制
用计算器算
请勿使用多线程下载工具下载论坛附件!
注:这一步必须保证 你是通过DSDT来注入EDID的 或者是默认就已经能认出你的EDID的,而不是通过DisplayVendorID-756e6b6e下的Display 717来注入EDID,换言之,你的EDID是注入在正确的位置,而不是兼容显示器位置。只有这样才能确保你的IOREG能百分百正确识别你的EDID ,也能保证你的EDID是注入在正确的位置
第三步 修改DSDT 找到PNLF部分
- Device (PNLF)
- {
- Name (_HID, EisaId ("APP0002"))
- Name (_CID, "backlight")
- Name (_UID, 0x0A)
- Name (_STA, 0x0B)
- }
复制代码 注意UID STA数值可能会不一样 如果前面两步骤做完依然没有效果 再尝试使用第三步, 有些用原本的数值就能驱动 有些就不行
那其他亮度调节的代码部分
记着要像其他教程里所说的一样
在Device(LCD) 后添加
- Name (_HID, EisaId ("LCD1234"))
复制代码 以及在你DSDT的显卡部分 或者ATYinit.kext的info.plist部分有如下代码
- "@0,backlight-control",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "@0,built-in",
- Buffer (One)
- {
- 0x01
- },
- "@0,pwm-info",
- Buffer (0x14)
- {
- /* 0000 */ 0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00,
- /* 0008 */ 0x08, 0x52, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- /* 0010 */ 0x00, 0x04, 0x00, 0x00
- },
复制代码- "AAPL,backlight-control",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "AAPL00,blackscreen-preferences",
- Buffer (0x04)
- {
- 0x00, 0x00, 0x00, 0x00
- },
复制代码
附上我的DSDT
归档.zip
(77.15 KB, 下载次数: 234)
|
回帖推荐
tmacyunn 发表于7楼
查看完整内容
方法落后与否,不是简单的说说而已,关键看难以适用范围,操作性和结果。这里解释一下,intel的调节方法和A卡以及N卡是有差别的。(没有A、N卡设备测试不知道实际情况)就Intel的而言,亮度调节的档次本身和dsdt内的档数有关,mbp8.1的最大的是0x400,最小是0,每一档步长是0x40,共17(第一档是0,即黑屏)档,如果你自己电脑档数是10而不是16,那么调节的时候就会偏差,会有个别人档数没有效果,解决办法就是扩充到16档。
关于 ...
-
9
查看全部评分
-
|