Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 13000|回复: 57

[教程] 修复10.13导致的“Window Server Service only ran for 0 seconds” [复制链接]

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1465
PB币
2100
贡献
0
技术
34
活跃
907
发表于 2017-9-29 00:37:56 |显示全部楼层
本帖最后由 yearjinheng 于 2017-10-6 18:54 编辑

最近我为很多小伙伴做屏蔽独显hotpatch,发现有些成功,有些失败。失败其实还是停留于High macOS Sierra10.13 正式版“Window Server Service only ran for 0 seconds”的错误。今天终于找到了解决的方法!特此分享给大伙!希望该帖子能帮助到各位!
方法是老外RehabMan发现的!
[FIX] "Window Server Service only ran for 0 seconds" with dual-GPU


【以下为教程内容以RehabMan主导来编写的!】

在解决“Window Server Service only ran for 0 seconds”这个错误提前大伙需了解什么叫做屏蔽独显。屏蔽独显顾名思义就是把笔记本中的独显禁用掉,由于双显卡的笔记本装黑苹果大多数情况下用的是集成显卡,而独显一般不做任何处理,虽然它貌似不工作,但是它也会消耗一定的电量,使电池电量快速消耗掉。我们通常可以在笔记本BIOS禁用显卡,但是假如你想切回Windows玩游戏那么你还得把笔记本BIOS中独显开启,这样来回实在太麻烦!于是世人便想出了一个两全其美的绝招:通过APCI问题屏蔽独显!
当然了,目前N卡系列出了最新的“WebDriver-378.10.10.10.15.114.pkg”和AMD出了“WhateverGreen.kext”,使得一些苹果发烧友在笔记本上更想发挥独显的优越所在!这个另当别论!本主题主要讲如何屏蔽独显!

【屏蔽独显的方法】
第一种:直接在DSDT SSDT上做修改
第二种:通过自己手动制作一个hotpatch屏蔽独显SSDT已达到屏蔽独显的作用!    个人推荐,较为模块化!

【以下内容是Rehubman原帖翻译】

获取ACPI路径
为了使用附加的SSDT能注入所需的属性,您首先必须要获取设备的ACPI路径。如果您有ioreg(例如从一台安装好的Sierra上运行),你可以从ioreg中获取它的路径(如果有人有获取类似的ioreg文件,请附上它,好以作为这篇文章的例子)。

但您也可以通过查看提取的ACPI文件来确定它。
过程:
-使用Clover F4将本机的ACPI文件提取到ACPI /origin这个目录下
-反编译这些文件
-搜索一个名为_OFF的方法
-检查文件的结果以确定ACPI的路径

首先,我们需要研究要拆分的文件(见iasl和拆分ACPI补丁制作指南)
接下来,我们使用搜索方法定义来搜索名为_OFF的方法定义:
grep -l Method.*_OFF *.dsl
对于这些文件被搜索出来的结果:
SSDT-10.dsl
SSDT-11.dsl
现在我们已经搜索到被调用_OFF方法的文件,因为一旦找到了_OFF方法,就很容易看到_OFF方法所处的ACPI路径。

打开SSDT-10.dsl。我们在PowerResource宏中找到了_OFF方法,这不是我们想要的:
  1.        PowerResource (PC05, 0x00, 0x0000)
  2.         {
  3.             Name (_STA, One)  // _STA: Status
  4.             Method (_ON, 0, Serialized)  // _ON_: Power On
  5.             {
  6. ...
  7.             }

  8.             Method (_OFF, 0, Serialized)  // _OFF: Power Off
复制代码

视线转移到SSDT-11.dsl,发现这个_OFF方法是我们所需要的。
      
  1. Method (_OFF, 0, Serialized)  // _OFF: Power Off
  2.         {
  3.             If (LEqual (CTXT, Zero))
  4.             {
  5.                 \_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero)
  6.                 If (LNotEqual (GPRF, One))
  7.                 {
  8.                     Store (VGAR, VGAB)
  9.                 }

  10.                 Store (One, CTXT)
  11.             }

  12.             SGOF ()
  13.         }
复制代码

如果您在所在的方法中单击,您将看到MaciASL状态栏显示ACPI路径:
这对应于所在该范围内定义该方法的代码:
  1.     Scope (\_SB.PCI0.RP05.PEGP)
  2.     {
  3. ...
  4.         Method (_OFF, 0, Serialized)  // _OFF: Power Off
  5.         {
  6. ...
复制代码

现在我们已获取了路径:_SB.PCI0.RP05.PEGP,是时候创建SSDT与其相对应。

创建一个名为Spof的SSDT
参考资料中提供的原始代码:
  1. // save as SSDT-DiscreteSpoof.aml
  2. DefinitionBlock ("", "SSDT", 2, "hack", "spoof", 0)
  3. {
  4.     Method(_SB.PCI0.PEG0.PEGP._DSM, 4)
  5.     {
  6.         If (!Arg2) { Return (Buffer() { 0x03 } ) }
  7.         Return (Package()
  8.         {
  9.             "name", Buffer() { "#display" },
  10.             "IOName", "#display",
  11.             "class-code", Buffer() { 0xFF, 0xFF, 0xFF, 0xFF },
  12.         })
  13.     }
  14. }
复制代码

但我们的路径原始代码不相同,所以
  1. // save as SSDT-DiscreteSpoof.aml
  2. DefinitionBlock ("", "SSDT", 2, "hack", "spoof", 0)
  3. {
  4.     Method(_SB.PCI0.RP05.PEGP._DSM, 4)
  5.     {
  6.         If (!Arg2) { Return (Buffer() { 0x03 } ) }
  7.         Return (Package()
  8.         {
  9.             "name", Buffer() { "#display" },
  10.             "IOName", "#display",
  11.             "class-code", Buffer() { 0xFF, 0xFF, 0xFF, 0xFF },
  12.         })
  13.     }
  14. }
复制代码

我们通过MaciASL,并创建一个名为” SSDT-DiscreteSpoof.aml”的文件。选择File -> New,将代码粘贴到编辑窗口中,选择File->Save As,格式设置为: ACPI Machine Language Binary,并将文件命名为” SSDT-DiscreteSpoof.aml”保存到你容易找到的地方(例如桌面)。

然后把生成的文件放在EFI/Clover/ACPI/patched/SSDT-DiscreteSpoof.aml

Other considerations 其他注意事项

该方法是在SSDT中通过使用_DSM的方法来注入属性。如果您本地的ACPI在该路径上存有一个现有的_DSM方法,您将需要重命名它,否则本地的_DSM方法会与SSDT添加的_DSM方法相冲突。一般情况下,通过对Config.plist二进制补丁_DSM -> XDSM来完成对/ACPI/DSDT/Patches补丁处理。这个补丁已在我的配置文件里,但它处于禁用状态。
这是通过Xcode打开后的样子,为启用状态:
另外,如果您在Config.plist中使用了SortedOrder(通常Clover安装后默认没有设置),你需要在其内添加SSDT-DiscreteSpoof.aml项。如果指定了SortedOrder,则Clover只加载其中指定的SSDT。如果没有出现在列表中,即使在ACPI/patched中,它也不会加载。

教程陆续更新!尽情关注
屏蔽独显可福利啦-可帮大伙屏蔽独显 | http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1758942

苦逼的医学生。。。考试月勿扰,扣扣一概不回!

Rank: 11Rank: 11Rank: 11

UID
2043294
帖子
4556
PB币
212
贡献
0
技术
150
活跃
2009

7周年庆典勋章 8周年庆典勋章 我是大学生!

发表于 2017-9-29 00:39:37 |显示全部楼层
本帖最后由 丶鸭梨大大。 于 2017-10-2 11:41 编辑

支持一下
以下为版主stevechen962464所添加:
这个人抢了我的沙发我很不开心
有时间我会直接把编译好的ssdt-config和disable-gpu这两个aml放出来的。等我安装个系统先。~


Rank: 5Rank: 5Rank: 5

UID
4772863
帖子
561
PB币
329
贡献
0
技术
10
活跃
1457
发表于 2017-9-29 14:28:37 |显示全部楼层
支持,关注,最好用一个简单的办法

Rank: 5Rank: 5Rank: 5

UID
2619827
帖子
805
PB币
20
贡献
0
技术
3
活跃
650
发表于 2017-9-29 14:44:26 |显示全部楼层
我这楼算是板凳么?

Rank: 5Rank: 5Rank: 5

UID
2415945
帖子
622
PB币
8
贡献
0
技术
17
活跃
970
发表于 2017-9-29 15:16:48 |显示全部楼层
是新方法吗?顶起

Rank: 2Rank: 2

UID
425178
帖子
117
PB币
109
贡献
0
技术
0
活跃
103
发表于 2017-9-29 15:46:05 |显示全部楼层
顶起                              。

Rank: 2Rank: 2

UID
2674890
帖子
260
PB币
71
贡献
0
技术
0
活跃
477
发表于 2017-9-29 16:52:14 |显示全部楼层

Rank: 7Rank: 7Rank: 7

UID
2203200
帖子
1238
PB币
1504
贡献
0
技术
94
活跃
1561
发表于 2017-9-29 17:25:08 |显示全部楼层
希望楼主能做一个适合大多数笔记本的能屏蔽独显的,通用的hotpatch文件

Rank: 7Rank: 7Rank: 7

UID
2203200
帖子
1238
PB币
1504
贡献
0
技术
94
活跃
1561
发表于 2017-9-29 17:25:47 |显示全部楼层
gujiangjiang 发表于 2017-9-29 00:39
支持一下以下为版主stevechen962464所添加:
这个人抢了我的沙发我很不开心
有时间我会直接把编译好的ssdt ...

放出来的两个文件是通用的吗?

Rank: 2Rank: 2

UID
4814269
帖子
300
PB币
181
贡献
0
技术
1
活跃
616
发表于 2017-9-29 21:42:22 |显示全部楼层
围观来了。。

UID
233039
帖子
798
PB币
11073
贡献
0
技术
71
活跃
1745

优秀版主

发表于 2017-9-29 21:59:18 |显示全部楼层
技术帖要支持

Rank: 7Rank: 7Rank: 7

UID
893876
帖子
3027
PB币
5599
贡献
0
技术
79
活跃
1659
发表于 2017-9-29 22:33:14 来自手机 |显示全部楼层
没有核显只有个dell gtx645也是这样的情况

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1465
PB币
2100
贡献
0
技术
34
活跃
907
发表于 2017-9-29 23:08:33 |显示全部楼层
5298990 发表于 2017-9-29 22:33
没有核显只有个dell gtx645也是这样的情况

明天下午再关注我翻译的教程即可

Rank: 2Rank: 2

UID
4827976
帖子
130
PB币
59
贡献
0
技术
0
活跃
98
发表于 2017-9-29 23:50:42 |显示全部楼层
正需要,现在安不上,就是这个问题。

Rank: 2Rank: 2

UID
4672557
帖子
213
PB币
0
贡献
0
技术
1
活跃
345
发表于 2017-9-30 00:38:05 来自手机 |显示全部楼层
按照楼主的就方法解决了,我没有加楼主说的代码,进不去系统

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1465
PB币
2100
贡献
0
技术
34
活跃
907
发表于 2017-9-30 05:18:16 |显示全部楼层
paomoe 发表于 2017-9-30 00:38
按照楼主的就方法解决了,我没有加楼主说的代码,进不去系统

有些机器则需要,有些可以不用。这要看你DSDT SSDT

Rank: 7Rank: 7Rank: 7

UID
893876
帖子
3027
PB币
5599
贡献
0
技术
79
活跃
1659
发表于 2017-9-30 09:00:31 |显示全部楼层
yearjinheng 发表于 2017-9-29 23:08
明天下午再关注我翻译的教程即可

关注!!!

Rank: 1

UID
822086
帖子
84
PB币
82
贡献
0
技术
0
活跃
78
发表于 2017-9-30 13:39:13 来自手机 |显示全部楼层
有没有简易的办法?

Rank: 7Rank: 7Rank: 7

UID
893876
帖子
3027
PB币
5599
贡献
0
技术
79
活跃
1659
发表于 2017-9-30 19:44:50 |显示全部楼层
yearjinheng 发表于 2017-9-29 23:08
明天下午再关注我翻译的教程即可

出来了么,,,

Rank: 5Rank: 5Rank: 5

UID
4772863
帖子
561
PB币
329
贡献
0
技术
10
活跃
1457
发表于 2017-9-30 21:53:42 |显示全部楼层
这样也是比较麻烦,毕要做热补丁
关闭

站长推荐

已经开启实名认证了哟
这里可以进行实名操作:点我点我点我
回顶部
Copyright (C) 2005-2019 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件