xiaoxiami003 发表于 2016-8-9 11:42

E3-1231 v3+GA-B85-HD3+GTX750 Ti+ALC892 Clover安装10.11.1

前言:写这个帖子是为了记录捣腾这台新组的机器的过程,给自己以后捣腾提供方便。同时分享给同样配置的朋友作个参考。
一、基本配置说明CPU:Intel Xeon E3-1231 v3 @ 3.4 GHz主板:技嘉 GA-B85-HD3 rev2.2, BIOS:F4内存:G.SKILL 16GB 1600MHz DDR3 (8GB * 2)显卡:铭瑄 GeForce GTX 750 Ti 2GB (接口:VGA + DVI-D + HDMI)声卡:Realtek ALC 892网卡:Realtek RTL8168/8111 Gigabit Ethernet硬盘:850 EVO 120GB + 750 EVO 120GB(拆自旧机器) + 500GB HDD(拆自旧机器)
二、硬盘引导方案说明此主板支持UEFI引导,因此采用UEFI + GPT + Clover的方式引导 Windows 10 + El Capitan 10.11.1。1.使用DiskGenius或在Windows安装界面shift + F10调出命令提示符等方式,为850 EVO SSD创建      ESP分区(须大于200MB),剩余空间新建一个分区用于安装10.11(可先格式化为Fat32)。2.750 EVO SSD用于安装Windows 10。3.500GB HDD用于仓库盘,为了以后重装方便,在这块硬盘上制作了10.11.1的安装盘。
三、简述制作OS X安装盘1.操作环境:Windows 102.用到的工具:硬盘写入助手.exe + 自制的dmg镜像3.使用磁盘管理压缩出8GB~10GB的空间使用硬盘写入助手将dmg镜像写入压缩出的分区中写入成功后,使用diskpart修改分区标示,set id=48465300-0000-11AA-AA11-00306543ECAC override,至此安装盘制作完成。

xiaoxiami003 发表于 2016-8-9 11:51

本帖最后由 xiaoxiami003 于 2016-8-24 00:21 编辑

四、安装OS X El Capitan                                                                        1.制作Clover引导U盘          

   [下载] 【四叶草】支持 10.12 的 Clover_v2.3k_r3561.pkg + EFI_Tools + Win版 + USB版   
sourceforge.net
https://sourceforge.net/projects/cloverefiboot/files/
   将下载的EFI文件夹拷贝到格式化为Fat32的U盘根目录。   

(1). 配置Clover的config.plist引导配置文件
      参照阅读:【Clover用户必看】Config.plist参数架构讲解合集 V2.0

① ACPI 部分 DSDT/SSDT 部分先不作设置,全部空着;
② Boot 部分的 Arguments 部分勾上 kext-dev-mode=1,nv_disable=1;
③ CPU 部分此部分不推荐随意设置/修改,不设置。
④ Devices 部分也空着。
⑤ DisableDrivers 主要是用于禁用EFI驱动,不设置。
⑥ GUI 部分一定要设置 Theme 这里,不设置的话,Clover引导界面就是一堆小方块。
⑦ Graphics 部分 勾选Inject NVidia。
⑧ Kernel and Kext Patches 部分 勾选KernelPm AppleRTC
⑨ Rt Variables 部分 CsrActiveConfig填入0x13。
⑩ SMBios部分 Clover会自动在引导前侦测你的配置,自动选择一个在配置上接近你的SMBios;
⑪ System Parameters 部分:可以不设置空着,也可以设置下 Inject Kexts 部分。


(2). 自定义drivers64UEFI下的efi驱动
DataHubDxe-64.efi
FSInject-64.efi
NTFS.efi
OsxAptioFix2Drv-64.efi
OsxFatBinaryDrv-64.efi
PartitionDxe-64.efi
VBoxHfs-64.efi(3). 第三方驱动
在/EFI/CLOVER/kexts目录下的10.11或者Other文件夹中放入必备驱动FakeSMC.kext。

2. BIOS设置
(1). SATA模式:AHCI;
(2). Hot-plug: 开启,需要在kernel and kext patches中加代码解决橙色图标问题;
(2). 操作系统选择:其他操作系统;
(3). 引导模式:UEFI + Legacy;
(4). VT-D: 开启,需要在boot arguments中加入dart=0或者drop tables中加入DMAR;
(5). EHCI Handoff: Enable;
(6). XHCI Handoff: Enable;


3. 完成安装
(1). 启动电脑,clover界面选择boot with injected kexts进入安装界面;
(2). 安装完成,重启依然选择boot with injected kexts进入系统欢迎界面。


4. 转移Clover到SSD的ESP分区
(1). 使用Clover Configurator等工具挂载硬盘ESP分区,将U盘EFI文件夹拷贝至ESP;







Clover Configurator Download
http://mackie100projects.altervista.org/download-clover-configurator/

(2). 或者下载Clover pkg,双击安装clover至ESP分区。






xiaoxiami003 发表于 2016-8-9 11:51

本帖最后由 xiaoxiami003 于 2016-8-11 23:26 编辑

五、驱动安装                                                                                                 1. GTX 750 Ti 驱动



传送门:http://www.nvidia.cn/Download/index.aspx?lang=cn
         
Mac OS X El Capitan 10.11.1
346.03.03f02
http://cn.download.nvidia.com/Mac/Quadro_Certified/346.03.03f02/WebDriver-346.03.03f02.pkg安装好之后,config.plist修改启动参数成下面这样
<key>Arguments</key>
<string>nvda_drv=1 kext-dev-mode=1</string>重启之后,即可成功驱动显卡。

2. Realtek RTL8168/8111 网卡驱动



使用MultiBeast来驱动:
   
MultiBeast-El-Capitan-Edition-8.2.3.zip
http://pan.baidu.com/s/1gfLlkmJ         提取码:a5q33. Realtek ALC 892 声卡驱动



(1). 使用MultiBeast来驱动:

(2). 然后在DSDT的Device(HDEF)中注入layout id=1
            Method (_DSM, 4, NotSerialized)
                {
                  Store (Package (0x10)
                        {
                            "AAPL,slot-name",
                            Buffer (0x09)
                            {
                              "Built-In"
                            },
                            "device_type",
                            Buffer (0x11)
                            {
                              "Audio Controller"
                            },
                            "model",
                            Buffer (0x0F)
                            {
                              "Realtek Alc892"
                            },
                            "built-in",
                            Buffer (One)
                            {
                              0x01
                            },
                            "codec-id",
                            Buffer (0x04)
                            {
                              0x92, 0x08, 0xEC, 0x10
                            },
                            "layout-id",
                            Buffer (0x04)
                            {
                              0x01, 0x00, 0x00, 0x00
                            },
                            "name",
                            Buffer (0x0F)
                            {
                              "Realtek ALC892"
                            },
                            "PinConfigurations",
                            Buffer (Zero) {}
                        }, Local0)
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
                }


xiaoxiami003 发表于 2016-8-9 11:52

本帖最后由 xiaoxiami003 于 2016-9-1 18:07 编辑

六、 提取原始DSDT&SSDT及编译错误                                                    1. 提取原始DSDT&SSDT
在Windows下使用AIDA64 Business提取DSDT及所有SSDT,得到DSDT.aml,SSDT.aml,SSDT-1.aml,SSDT-2.aml,SSDT-3.aml;
                     

aida64 business v5.30.3500.rar
http://pan.baidu.com/s/1bTSCmM             提取码:6s1j2. 反编译原始DSDT&SSDT
在Mac下使用iasl对DSDT及所有SSDT进行反编译,得到DSDT.dsl,SSDT.dsl,SSDT-1.dsl,SSDT-2.dsl,SSDT-3.dsl,参阅:[分享] (2015.1.13 更新)联合DSDT和SSDT进行反编译——减少DSDT和SSDT错误的尝试;

将iasl放入/usr/local/bin中


提取到的aml文件放入桌面新建的acpi中


cd Desktop/acpi
iasl -da -dl *.aml




3. 修复错误

(1). 在Mac下打开MaciASL,在偏好设置-选择编译器版本中,选择ACPI 5.0;






(2). 在MaciASL中打开DSDT.dsl,点击编译按钮,返回3个错误;


(3). 分别定位到错误

删除这一大堆Zero即可修复此错误;



删除Arg0这一行即可修复此错误;

七、 对DSDT打补丁

1. DTGP函数
    Method (DTGP, 5, NotSerialized)
    {
      If (LEqual (Arg0, Buffer (0x10)
                {
                  /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
                  /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
      {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                  Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                  Return (One)
                }
                If (LEqual (Arg2, One))
                {
                  Return (One)
                }
            }
      }
      Store (Buffer (One)
            {
                0x00
            }, Arg4)
      Return (Zero)
    }

2. 仿冒LPC的ID,以加载AppleLPC

Windows设备管理中查看得知LPC硬件ID为0x80868c50,这个ID并不在AppleLPC的原生支持ID的列表内
               

选择尽量接近的ID,决定仿冒成0x80868c4b

在DSDT中搜索 Device (LPCB) 或者 0x001F0000
加入以下代码
                Method (_DSM, 4, NotSerialized)
                {
                  Store (Package (0x06)
                        {
                            "device-id",
                            Buffer (0x04)
                            {
                                 0x4b, 0x8c, 0x00, 0x00
                            },
                            "name",
                            Buffer (0x0D)
                            {
                              "pci8086,8c4b"
                            },
                            "compatible",
                            Buffer (0x0D)
                            {
                              "pci8086,8c4b"
                            }
                        }, Local0)
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
                }


3. 修复BIOS重置问题--RTC
在DSDT中搜索 Device (RTC) 或者 PNP0B00
                  Name (_CRS, ResourceTemplate ()// _CRS: Current Resource Settings
                  {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                  })
把0x08改成0x02。


4. HPET Fix
在DSDT中搜索 Device (HPET) 或者 PNP0103
加入以下代码
                        IRQNoFlags ()
                           {0}
                        IRQNoFlags ()
                           {8}
修改结果为
                  Name (BUF0, ResourceTemplate ()
                  {
                        IRQNoFlags ()
                           {0}
                        IRQNoFlags ()
                           {8}
                        Memory32Fixed (ReadWrite,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            _Y0F)
                  })


八、 通过修改DSDT修复USB问题
参考阅读:[教程] 【翻译】修复 OS X El Capitan的USB端口
                     [分享] 从技术角度谈谈10.11的USB驱动机制,兼论10.11 USB安装盘的花屏禁行问题


这里采用的方法来自 [分享] 10.11 USB问题之下篇,一步一步教你解决USB问题 文中 Part3:DSDT中的USB端口信息的修改;


1. 确认有效可用的USB端口
清点外部USB接口数量,机箱后:usb2.0接口4个,usb3.0接口2个。机箱前:usb2.0接口3个,usb3.0接口2个;
合计usb2.0接口7个,usb3.0接口4个。7+4x2=15,也就是需要15个USB端口,刚好没有超过15个端口的数量限制;
通过插拔USB设备的方式,在AIDA64中查看外部接口对应的端口号--->
USB2.0:01、02、03、04、05、06、07、09、10、11、12
USB3.0:16、17、20、21
2. 去除DSDT中无效的USB端口,保留需要的15个端口
未修改的DSDT XHC中定义了15个HS(USB2.0)端口,6个SSP(USB3.0)端口,超过15个端口限制


拜读上方贴出的大神的帖子得知--->
                Device (HS01)
                {
                  Name (_ADR, One)// _ADR: Address
                  Name (_STA, 0x0F)// _STA: Status
                  Method (_UPC, 0, Serialized)// _UPC: USB Port Capabilities
                  {
                        Name (UPCP, Package (0x04)
                        {
                            0xFF,      //0xFF表示可连接,Zero表示不可连接
                            0x03,      //Zero代表USB2.0 typeA型母口,0x02代表type miniAB USB2.0,0x03代表USB3.0 typeA型母口,0xFF代表特殊接口
                            Zero,
                            Zero
                        })
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                              /* 0000 */0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,
                              /* 0008 */0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 //0表示不可见,1表示可见
                            }
                        })



因此对于不需要的端口,将其修改为 不可连接&不可见 如端口08 --> (Name (_ADR, 0x08)),作如下修改--->
         
端口13 --> 0x0D


端口14 --> (_ADR, 0x0E)


端口15 --> (_ADR, 0x0F)


端口18 --> (_ADR, 0x12)



端口19 --> (_ADR, 0x13)




九、 SSDT、变频 与 X86PlatformPlugin

LPC电源管理加载完毕后,需要为自己的CPU生成一份合适的SSDT用于加载X86PlatformPlugin 以及让变频正常工作。
借助 Pike R. Alpha 的 ssdtPRGen.sh 脚本来生成一份适合我们当前的CPU以及当前SMBios的SSDT。https://github.com/Piker-Alpha/ssdtPRGen.sh

打开终端
cd Desktop/
curl -o ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh
chmod +x ssdtPRGen.sh
./ssdtPRGen.sh 分行解释下:
第一行:进入 Desktop 目录,这样Pike的脚本就下载到桌面上了
第二行:从 Pike 的 Github 上下载最新版本的 ssdtPRGen.sh
第三行:修改脚本的权限,防止因权限问题而无法执行。
第四行:运行脚本


         


运行后脚本会自动生成 SSDT.aml,可以在 /Users/xiaoxiami/Library/ssdtPRGen/ 下找到生成好的 SSDT.aml;
用此SSDT.aml替换之前提取的Tabel ID为 CpuPm的SSDT-1.aml


加上Table ID为Cpu0Ist的SSDT以及提取的其他SSDT一起放入/EFI/CLOVER/ACPI/patched/;
为了加载SSDT,需要设置 --->


至此,SSDT部分就完事了,X86PlatformPlugin 加载成功,变频工作也完成了
                     

                     




十、 细节完善部分
1. CPU识别
E3-1231 v3 默认会被识别为i7处理器;
在Clover Configurator的CPU模块 Type中填入0x0501,即可识别 --->



2. 内存识别
由于开启了XMPDetection=Yes内存侦测之后,关于本机 中内存频率识别错误,因此XMPDetection=No选择关闭内存侦测,手动填入内存参数 --->


3. 开启TRIM支持

方法一:终端中敲入 sudo trimforce enable


方法二:通过Clover给kext打补丁,在KextsToPatch中加入以下代码
   <dict>
                                <key>Comment</key>
                                <string>Enable Trim</string>
                                <key>Disabled</key>
                                <false/>
                                <key>Find</key>
                                <data>
                                QVBQTEUgU1NEAA==
                                </data>
                                <key>Name</key>
                                <string>IOAHCIBlockStorage</string>
                                <key>Replace</key>
                                <data>
                                AAAAAAAAAAAAAA==
                                </data>
                        </dict>


4. 橙色硬盘图标问题
在BIOS中开启Hot-plug后,会出现硬盘图标变为橙色的问题,在KextsToPatch中加入以下代码
   <dict>
                                <key>Comment</key>
                                <string>External icons patch</string>
                                <key>Disabled</key>
                                <false/>
                                <key>Find</key>
                                <data>
                                RXh0ZXJuYWw=
                                </data>
                                <key>Name</key>
                                <string>AppleAHCIPort</string>
                                <key>Replace</key>
                                <data>
                                SW50ZXJuYWw=
                                </data>
                        </dict>


5. 仿冒Apple usb鼠标
在硬件信息中找到usb鼠标的ID


产品ID: 0x0701      厂商ID:0x25a7       转换为十进制 --->
0x0701 --> 1793         0x25a7 --> 9639
将AppleUSBHIDMouse.kext拷贝出来



搜索product,将搜索到的数值修改为上面对应的十进制数。将修改好的驱动改名放入S/L/E中。





xiaoxiami003 发表于 2016-8-9 11:53

占楼备用    后续编辑

SKYFLYING5 发表于 2016-8-9 17:08

同样配置,现在有一个问题,睡眠可以断电,但是只能电源键唤醒,唤醒后所有程序就退出了。

睡眠久了 (具体没有测试),第二天早上起来电源灯是亮的,CPU风扇工作,但是屏幕怎么弄都是黑的。

按重启键重启电脑,无限重启,只有插安装U盘进去急救一下就好了,至今没有找到问题所在,

希望楼主看看有没有类似问题,一起探讨。

本人是加载dsdt的,注入加载原生电源驱动,但是一直觉得有问题,但论坛没有相关讨论,也无从下手改进。

xiaoxiami003 发表于 2016-8-11 19:01

SKYFLYING5 发表于 2016-8-9 17:08 https://www.pcbeta.com/static/image/common/back.gif
同样配置,现在有一个问题,睡眠可以断电,但是只能电源键唤醒,唤醒后所有程序就退出了。

睡眠久了 (具 ...

只能电源键唤醒会不会是因为去除了USB的唤醒功能?您看下有没有打这个补丁

17865190996 发表于 2016-8-15 22:48

同配置,我是公版950,几乎是看着楼主的帖子弄好的,不过我的显卡驱动直接装的WebDriver,网卡驱动multibeast,声卡驱动来自论坛搜索前人,kexts替换就完美了,然后睡眠什么的都还可以,刚装上还没怎么测试

zhangchenna 发表于 2016-9-19 21:13

求分享你的SSDT DSDT全套资源 谢谢

ufogxl 发表于 2016-9-19 22:07

楼主给的资源很全。我正好打算把公司的机器黑了。哈哈

cgdsuper 发表于 2016-9-19 22:19

这个太强了,看过好多dsdt教程,还是不会改,好复杂,不过这是我看过最详细的一个{:5_293:}

fxzmjujumao 发表于 2016-9-19 22:21

EFI Tools Clover

osxu 发表于 2016-9-19 22:57

楼主能否分享一下引导u盘的全部文件,感谢

fanjintian 发表于 2016-9-19 23:45

谢谢楼主,占楼学习.

mogu002 发表于 2016-9-20 08:28

谢谢楼主,占楼学习.

cgdsuper 发表于 2016-9-20 09:15

我装的是懒人版10.11.4怎么没有开启了右键辅助功能这个选项,在偏好鼠标

xiaoxiami003 发表于 2016-9-20 10:48

本帖最后由 xiaoxiami003 于 2016-9-20 10:53 编辑

zhangchenna 发表于 2016-9-19 21:13 https://www.pcbeta.com/static/image/common/back.gif
求分享你的SSDT DSDT全套资源 谢谢
谢谢回复。前两周在Ubuntu上重新提取了DSDT和SSDT,相比在Windows下使用AIDA64提取的多了3个SSDT,SSDT5.aml,SSDT6.aml和SSDT7.aml,目前不确定是否需要删除,暂且保留;
我修改了DSDT中XHC的部分,屏蔽了我不使用的USB端口,建议您确认下自己机器上有效的USB端口,重新修改XHC部分的代码;
SSDT2.aml是OEM Table ID为CpuPm的文件,与加载X86PlatformPlugin、X86PlatformShim和变频有关,使用ssdtPRGen生成您特定机型和CPU的SSDT文件替换即可;
下面附件是我现在使用的DSDT.aml和7个SSDT.aml,保留了DSDT.dsl,便于您修改。

xiaoxiami003 发表于 2016-9-20 10:50

本帖最后由 xiaoxiami003 于 2016-9-20 10:57 编辑

ufogxl 发表于 2016-9-19 22:07 https://www.pcbeta.com/static/image/common/back.gif
楼主给的资源很全。我正好打算把公司的机器黑了。哈哈
谢谢回复。

xiaoxiami003 发表于 2016-9-20 10:55

本帖最后由 xiaoxiami003 于 2016-9-20 10:57 编辑

cgdsuper 发表于 2016-9-19 22:19 https://www.pcbeta.com/static/image/common/back.gif
这个太强了,看过好多dsdt教程,还是不会改,好复杂,不过这是我看过最详细的一个
谢谢回复,大家一起学习。

Vasilis.D 发表于 2016-9-20 10:56

厉害了,我现在也在选定这个配置,很详细阿,配置完硬件多交流。
页: [1] 2 3 4 5 6 7
查看完整版本: E3-1231 v3+GA-B85-HD3+GTX750 Ti+ALC892 Clover安装10.11.1