找回密码
 注册
快捷导航
查看: 7311|回复: 21

[系统] 【原创】改屏机黑苹果的春天,通过修正ACPI实现合盖睡眠

[复制链接] |自动提醒
阅读字号:

1万

回帖

367

积分

11万

资产值

至尊会员III Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2011-6-21
年全勤勋章2021年全勤勋章2020年全勤勋章2019年全勤勋章2017铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)月全勤勋章年全勤勋章2022年全勤勋章2023年全勤勋章2024
发表于 2018-12-3 22:27:03| 字数 2,738| - 中国–福建–泉州 电信 | 显示全部楼层 |阅读模式
本帖最后由 f23258 于 2018-12-3 23:19 编辑

改屏机的黑苹果,其合盖睡眠一直是个老大难的问题,之前没接触所以也没深入研究。
前阵子入了台X330,《为了一直挂念的窄边框,X330体验流水分享》,开始第一次与改屏机亲密接触。
机器到手黑苹果起来也很容易的顺风顺水,但是怎么折腾就是没有原生亮度和合盖睡眠。强迫症使然的想折腾完善,了解改屏原理后,放弃了在我机器上实现原生的亮度调节。但是对于无法合盖睡眠这事,心里一直有想法,强迫症使然的找思路。几经折腾,黑果大神武大实现代码,最终在X330上完美实现了合盖睡眠。

一、原理
X230的改屏有两三家的方案,但基本原理都是一样的。
原机的LVDS是没法支持高分的,要支持高分只能从DP口下手,而X230是支持底座的,所以改屏都是从底座接口处的DP做文章。
如何实现各家有各家的思路,但基本原理就是从DP处修正以便可以接入高分屏屏,相当于外接了一个显示器,而对于是否屏蔽内屏就看各家实力了(需改BIOS屏蔽LVDS,据说省电一点,这点本人未实证)。
从苹果系统的规范上来说,合盖事件在外接显示屏的情况下,机器也是不会实现睡眠的,只是内屏熄屏,外屏工作,这一点在白苹果机器上得到了实证。而对于改屏机而言,其实只有一个屏幕,但是系统当它是外接了一个显示器(复制模式能调节亮度),这样内屏熄(实际已无内屏),外屏继续工作,当然导致系统无法进入睡眠了。
这也是改屏机器一直无法睡眠的原因。
而如何解决这个问题,从ACPI的睡眠方法中找到了启发。

二、规范
苹果系统的调用和运作,很大程序上会去调用各个ACPI,所以ACPI和白果越接近,就有越容易黑的可能。
查找WAKE/SLEEP等等关键词,可以确认ACPI规范了3种进入睡眠的方式,分别是:
(1)PNP0C0C — Power Button Device
(2)PNP0C0D — Lid Device
(3)PNP0C0E — Sleep Button Device

其中,PNP0C0D — Lid Device,又规范了_LID方法:
返回值:
0 – The lid is closed
Non-zero – The lid is open
通常情况下,黑苹果启用(3)时,视同关机,向系统发出了关机参数,致使黑苹果系统崩溃。
而黑果系统的合盖睡眠,是按PNP0C0D方式进行。这个时候合盖进入睡眠时,开盖终止睡眠。连接外显的情况下,无法睡眠,内屏和外显同步性异常。
通过PNP0C0E进入睡眠时,盒盖还是按下功能键,会立即睡眠,睡眠过程快于Lid方式,连接外显的情况下,睡眠正常。
以上这一点就是改屏机实现睡眠的可能,完整的根据规范定义出睡眠的必要参数和条件,以实现改屏机合盖睡眠。

三、实现
ACPI规范中,针对PNP0C0E的实现举了这么一个例子,

原文有如下描述:
The AML code below does the following:
• Creates a device named “SLPB” and associates the Plug and Play identifier (through the _HID object) of “PNP0C0E.”
• The Plug and Play identifier associates this device object with the sleep button driver.
• Creates an operational region for the control method sleep button’s programming model:
System I/O space at 0x201.
• Fields that are not accessed are written as “1s” (these status bits clear upon writing a “1” to their bit position, hence preserved would fail in this case).
• Creates a field within the operational region for the sleep button status bit (called PBP). In this case the sleep button status bit is a child of the general-purpose status bit 0. When this bit is set it is the responsibility of the AML code to clear it (OSPM clears the general-purpose status bits). The address of the status bit is 0x201.0 (bit 0 at address 0x201).
• Creates an additional status bit called PBW for the sleep button wake event. This is the next bit and its physical address would be 0x201.1 (bit 1 at address 0x201).
• Generates an event handler for the sleep button that is connected to bit 0 of the general-purpose status register 0. The event handler does the following:
• Clears the sleep button status bit in hardware (writes a “1” to it).
• Notifies OSPM of the event by calling the Notify command passing the sleep button object and the device specific event indicator 0x80.
看着容易头晕,大概意思就是定义一个SLPB的设备名称来和PNP0C0E关联,再通过特定Notify(\_SB.SLPB, 0x80)来实现睡眠。
基于此,要实现此功能,得满足以下条件:
1、更名,使用原DSDT里的LID相关不起作用
2、做LID相关补丁,使LID事件发生时调用PNP0C0E的方法
3、修正PNP0C0E方法传递的参数,使系统正确休眠。

代码的最终实现有宪武开发完成,在X330改屏机上和X1C 5TH均测试通过。
X230的EFI将在《还战X230完美黑苹果,macOS Mojave 10.14安装即使用》主帖中更新。
以上只是通过对ACPI对某些功能实现的探讨,仔细研究ACPI规范,应该会有发现更多黑果完美的可能。

附上ACPI标准规范文件以供参考:
附件一:
附件二:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1资产值 +510 收起 理由
HOPE + 510 精品文章

查看全部评分

① X1 Carbon 2021 (9th) i7-1165G7 32g 2T 4G-LTE 3840×2400 + Win 11 LTSC  ② X1 Carbon 2018 (6th) i7-8650U 16g 970 Pro 1T 2560×1440 + Win 11 Pro
③ X61 T9300 4g 128g 1400×1050 + Win 7 Pro  ④ iPad Pro 2021 + Pencil Ⅱ  ⑤ MacBook Air 2023 (Starlight) M2 16g 1T 2880×1864 + macOS Sequoia 15.3.1
⑥ AMD Ryzen R9 9950X 64g 990 Pro 1T | WD GOLD 4T | Kingston A400 480g + ASUS ATS RTX4070 12g + MSI X870E Carbon WIFI + Win11 Pro for Workstations

3374

回帖

60

积分

4万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2013-2-18
发表于 2018-12-3 22:30:42| 字数 5| - 中国–江西 移动/数据上网公共出口 来自手机版 | 显示全部楼层
膜拜下大神
Thinkpad t410 已出;
回复 支持 反对

使用道具 举报

wenlj163 - X62-3180

785

回帖

23

积分

6083

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2011-4-9
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2018-12-3 22:41:02| 字数 9| - 中国–广东–广州 联通 | 显示全部楼层
可以可以

330已出
t430s/x330/X62/2570/8770/M6700/NX4/VK26/810G2/R620/R730/830G6
回复 支持 反对

使用道具 举报

1092

回帖

20

积分

7505

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2009-3-2
发表于 2018-12-3 23:16:52| 字数 3| - 中国–北京–北京 联通 | 显示全部楼层
膜拜了
回复 支持 反对

使用道具 举报

1万

回帖

166

积分

1万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2013-8-10
月全勤勋章
发表于 2018-12-3 23:50:33| 字数 22| - 中国–辽宁–沈阳 移动 来自手机版 | 显示全部楼层
技术贴啊,造福黑友!

版主正在加分设精的路上。
X200 P8600 OC 4 128G
A2141 I7-9750H 16G 512G
回复 支持 反对

使用道具 举报

7万

回帖

567

积分

19万

资产值

天下无敌I Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2011-10-18
年全勤勋章2024年全勤勋章2017年全勤勋章2019年全勤勋章2020年全勤勋章2021银牌荣誉勋章(注册10年以上会员)月全勤勋章年全勤勋章2022
发表于 2018-12-4 06:11:09| 字数 9| - 中国–天津–天津 联通 来自手机版 | 显示全部楼层
睡什么睡!起来嗨!
TM4320 C54 L75 T77 T81;R8;EPC;
X41;X61:T75 83, X61T,X61s;
X200: P84 86 87 88; X200T;
X200s:C723 U35 L93 94;
X300; X301; X220; X1h;
X230; X1c2013
回复 支持 反对

使用道具 举报

102

回帖

8

积分

1918

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-1-27
发表于 2018-12-4 07:33:23| 字数 0| - 瑞典 | 显示全部楼层

x60 1706-b75 T5600 1.83G/2048M/80G/12.1TFT/指纹/蓝牙/4C方电
回复 支持 反对

使用道具 举报

1万

回帖

367

积分

11万

资产值

至尊会员III Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2011-6-21
年全勤勋章2021年全勤勋章2020年全勤勋章2019年全勤勋章2017铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)月全勤勋章年全勤勋章2022年全勤勋章2023年全勤勋章2024
 楼主| 发表于 2018-12-4 10:01:29| 字数 55| - 中国–福建–厦门 电信 | 显示全部楼层
QUOTE:
peacefeeling 发表于 2018-12-4 06:11
睡什么睡!起来嗨!

这么早HIGH到哪了?
① X1 Carbon 2021 (9th) i7-1165G7 32g 2T 4G-LTE 3840×2400 + Win 11 LTSC  ② X1 Carbon 2018 (6th) i7-8650U 16g 970 Pro 1T 2560×1440 + Win 11 Pro
③ X61 T9300 4g 128g 1400×1050 + Win 7 Pro  ④ iPad Pro 2021 + Pencil Ⅱ  ⑤ MacBook Air 2023 (Starlight) M2 16g 1T 2880×1864 + macOS Sequoia 15.3.1
⑥ AMD Ryzen R9 9950X 64g 990 Pro 1T | WD GOLD 4T | Kingston A400 480g + ASUS ATS RTX4070 12g + MSI X870E Carbon WIFI + Win11 Pro for Workstations
回复 支持 反对

使用道具 举报

280

回帖

10

积分

4471

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2009-6-9
发表于 2018-12-4 12:38:34| 字数 13| - 中国–四川–成都 电信 | 显示全部楼层
群里改屏的师傅们活要多了。
回复 支持 反对

使用道具 举报

6680

回帖

89

积分

6794

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2016-7-17
发表于 2018-12-4 16:54:12| 字数 2| - 中国–广东 联通/数据上网公共出口 | 显示全部楼层
厉害
t70/t62/x2100/x230/X62/X63
回复 支持 反对

使用道具 举报

5081

回帖

83

积分

4461

资产值

荣誉版主 Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2006-5-25
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2018-12-4 16:58:28| 字数 5| - 中国–广东–佛山 联通/IDC机房 | 显示全部楼层
厉害!!!
自己拼装:HP 2530p SL9400/2G*2/X18-M + 5K500/蓝指摄
K2450 I74500U/8G/128G+480G/蓝指摄
回复 支持 反对

使用道具 举报

1828

回帖

39

积分

1829

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2007-10-16
发表于 2018-12-4 19:05:56| 字数 13| - 中国–江苏 移动/数据上网公共出口 来自手机版 | 显示全部楼层
二个zip文件怎么使用??
回复 支持 反对

使用道具 举报

337

回帖

16

积分

1万

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2009-9-15
银牌荣誉勋章(注册10年以上会员)铜牌荣誉勋章(注册8年以上会员)
发表于 2018-12-4 20:24:46| 字数 23| - 中国–海南–海口 电信 | 显示全部楼层
实在是技术精品文章,论坛就要多多来这样的好文!
p1四代:16寸,i7-11800H,T1200,64g,西数 1T +970P 1T 。
x1c 2023:i7-1360p,32g,980pro 2T,2.8k,4g网络。
MacBook pro 2021:14寸,M1 Max(10核cpu+32核Gpu),32g,1T,macos+Windows11。
回复 支持 反对

使用道具 举报

5425

回帖

65

积分

2万

资产值

版主 Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

注册时间
2012-12-12
发表于 2018-12-4 21:30:31| 字数 5| - 中国–江苏 移动/数据上网公共出口 | 显示全部楼层

膜拜下大神
T400s,T500,T420,T430
T420s X301 x1cyoga,X13yoga
x1c2017/2021
回复 支持 反对

使用道具 举报

146

回帖

3

积分

874

资产值

中级会员 Rank: 2Rank: 2

注册时间
2018-9-6
发表于 2018-12-4 23:33:23| 字数 15| - 中国–广东–深圳 电信 | 显示全部楼层
支持,一路黑到头..马上快白了
回复 支持 反对

使用道具 举报

4856

回帖

77

积分

7万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2014-8-20
月全勤勋章铜牌荣誉勋章(注册8年以上会员)年全勤勋章2023年全勤勋章2024
发表于 2018-12-5 07:00:38| 字数 5| - 中国–北京–北京 移动/GSM/TD-SCDMA/LTE共用出口 来自手机版 | 显示全部楼层
都四神之人
X41封存、T62远观、X301不知所终、X201压箱底、T400s压桌底、X220/X230送谁了,X1C1/5/7已处理、X1E&C2018吃灰中,P15Gen2i已出
回复 支持 反对

使用道具 举报

2072

回帖

60

积分

6万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2007-9-17
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)月全勤勋章
发表于 2018-12-5 09:44:35| 字数 5| - 中国–江苏–南京–鼓楼区 电信 | 显示全部楼层
内涵好文!
iPad Pro 11 2020:1TB WLAN+Cellular+Apple Pencil
X61S:T8300,4G,180G,AFFS1400×1050LED,7260AC
X1 Carbon 6th:I7-8650U,16G,1TB,2560x1440
X1 Carbon 9th:i7-1165G7,32g,2T,5G LTE,3840×2400
回复 支持 反对

使用道具 举报

410

回帖

10

积分

593

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2007-4-4
发表于 2019-1-12 22:36:07| 字数 6| - 中国–江苏–南京–鼓楼区 电信 | 显示全部楼层
呼吁版主设精
T60-T5500 1.5G 15.4inch GMA950 (XP+Win7+Snow Leopard) (KIA)
X60s-L2300 1.5G
回复 支持 反对

使用道具 举报

84

回帖

2

积分

1451

资产值

中级会员 Rank: 2Rank: 2

注册时间
2018-4-24
发表于 2019-1-13 18:34:54| 字数 143| - 澳大利亚 | 显示全部楼层
QUOTE:
f23258 发表于 2018-12-3 22:27
改屏机的黑苹果,其合盖睡眠一直是个老大难的问题,之前没接触所以也没深入研究。
前阵子入了台X330,《为 ...

白苹果笔记本外接显示屏,官方说法需要接通电源,否则很快会重新进入休眠。按照这个思路,黑苹果拔下电源线,是否会进入睡眠呢?
回复 支持 反对

使用道具 举报

8248

回帖

138

积分

4万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2008-9-12
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2019-1-13 18:47:12| 字数 95| - 中国–广东–深圳 移动 | 显示全部楼层
QUOTE:
f23258 发表于 2018-12-3 22:27
改屏机的黑苹果,其合盖睡眠一直是个老大难的问题,之前没接触所以也没深入研究。
前阵子入了台X330,《为 ...

厉害,尽然没有加技术分!
苏菲6P/X62s/X210s/x1c 4th 2K HDR屏
X330K 4核触摸屏/T430s 4核 2K HDR屏
X230 4核BGA/X220-280 13.3寸高分屏DIY
T420--T480/s & x1C 2K HDR 杜比屏DIY定制
回复 支持 反对

使用道具 举报

388

回帖

8

积分

1384

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2015-1-19
发表于 2019-1-15 14:19:37| 字数 6| - 中国–广东 电信/数据上网公共出口 | 显示全部楼层
厉害,收藏个
x210-3176+3177
回复 支持 反对

使用道具 举报

1

回帖

0

积分

49

资产值

入门会员 Rank: 1

注册时间
2019-6-1
发表于 2019-6-25 22:05:39| 字数 62| - 中国–江苏–南京 电信 | 显示全部楼层
楼主,我想问一下,就是您的这个补丁通用吗?还有clover里改名的都有哪些,我想参照您的补丁给我的电脑解决合盖睡眠问题,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-2-26 10:08 , Processed in 0.178704 second(s), 65 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部