Speedstep

Screen Shot 2015-12-22 at 20.05.48
Speedstep变频的生效,让CPU能耗稳步地下调。

黑苹果OS X 10 11 2 驱动基本成功:无休止地挂载、重启换来的回报

此前通过折腾OSX10.9获得了一份较可靠的DSDT代码,但是在装10.11期间试过HP Install Helpler所增补的一些不知其所以然的补丁。
两个版本各有优劣,互不相容。

僵持了一个多月后,最终决定手动模拟“二分查找”来对两份代码进行merge操作。

DiffMerge.app是一款直观便捷的文本比较器(不是编辑器)。

经查,防止Clover引导El Captain分区引导失败和排除关机不断电故障的关键代码如下:

OperationRegion (GNVS, SystemMemory, 0xAC5EEB98, 0x019F)

在搜索解答的过程中还发现了有用的资料库:Clover Wiki

为调试DSDT代码,不辞辛劳地降级、升级,方才发现OSX不同版本驱动USB的方式有明显差别。

pcbeta论坛上某坛友仿冒的AppleHDA.kext虽有扬声器音量控制不同步的bug,但总体上异常完善,填补了该领域的一大空白,且能“向上”兼容。

2015年12月勤奋刻苦的国外开发者RehabMan所编写的GenericUSBXHCI.kext成为了驱动USB3.0端口,以及实现USB端口通信正常化的制胜关键。感激不尽。

注意去除DSDT中所注入的USB fakeID之类的值。

OS X 下个性化开发环境的搭建

本人的几轮开发环境配置都是在凌乱中完成的,是时候做一整理了。

  • 安装iTerm2
    没什么话好多说。这个终端应用棒棒的,尤其是卷帘般的可随时唤出的Hotkey Window。别忘了Make iTerm2 default Term
    Screen Shot 2015-11-03 at 22.54.31

  • Homebrew
    Homebrew installs the stuff you need that Apple didn’t.

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

A package manager with a handy command brew install that works just like apt-get install in Linux.

Snip20151024_2
Snip20151024_4

Read more

OS X 清洁地升级安装

尝鲜可能太急切,还是得慢慢啃黑苹果

Screen Shot 2015-10-23 at 5.29.49 AMScreen Shot 2015-10-23 at 16.50.01Screen Shot 2015-10-24 at 1.01.36 PM

OS X 10 11 SIP对NVRAM的重大影响

  • SIP是OS X El Capitan中新增的一大特性。
  • NVRAM断电后不丢失其中保存到信息。

这两大因素给予了我长达半个月的软硬件故障的困扰,几乎走投无路。

具体症状是每次启动黑苹果都会出现的错误报告,偶尔还附带着屏幕上的条带状花屏:

Read more

Clover 升级后检测不到Windows引导的解决办法

为了配合OS X
的更新,打算从Clover r2485升级到r2850;在EFI分区进行替换后发现新Clover引导界面找不到Windows操作系统。
经过三番五次的备份还原后终于发现,是EFI/Clover/drivers64UEFI目录下缺少必要的驱动文件所致。
将新旧版本的drivers64UEFI文件夹合并(若文件同名则以新易旧)即可排除错误。

OS X下的一些故障排除

  • When using App Store, it occurs that “ … failed to download. Use the Purchases page to try again.”

    Suggestions may help, but it is more applicable to restart the mac…

OS X下的一些个性化设置

defaults write com.apple.screencapture location /path/

killall SystemUIServer

  • Finder显示隐藏文件

defaults write com.apple.finder AppleShowAllFiles -bool true

  • Finder显示全部驱动器
Screen Shot 2015-08-23 at 11.15.30
  • Dashboard不显示为单独页面
Screen Shot 2015-08-23 at 11.17.10
  • 调整屏幕亮度等常用功能快捷键
Screen Shot 2015-08-23 at 11.18.34
  • 允许未知来源Application的运行
Screen Shot 2015-08-23 at 11.20.43 Screen Shot 2015-08-23 at 11.20.59
  • 管理开机启动项

Snip20151103_3

暑假翻江倒海折腾Clover+Mac险遭失败

重大突破!
基本硬件信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
主板:
处理器名称 Mobile DualCore Intel Core i5-2450M, 2900 MHz (29 x 100)
主板名称 Hewlett-Packard HP ProBook 4431s
主板芯片组 Intel Cougar Point HM65, Intel Sandy Bridge
系统内存 8119 MB (DDR3-1600 DDR3 SDRAM)
BIOS 类型 Compaq (05/23/2012)

显示设备:
显示适配器 Intel(R) HD Graphics 3000 (2108 MB)
3D 加速器 AMD Radeon HD 6490M (Seymour)
3D 加速器 Intel HD Graphics 3000

多媒体:
音频适配器 IDT 92HD87B1/3 @ Intel Cougar Point PCH - High Definition Audio Controller [B-2]
音频适配器 Intel Cougar Point HDMI @ Intel Cougar Point PCH - High Definition Audio Controller [B-2]

存储设备:
硬盘驱动器 TOSHIBA MQ01ABD050 SCSI Disk Device (500 GB, 5400 RPM, SATA-II)
光盘驱动器 hp DVDRAM GT50N SCSI CdRom Device (DVD+R9:6x, DVD-R9:6x, DVD+RW:8x/8x, DVD-RW:8x/6x, DVD-RAM:5x, DVD-ROM:8x, CD:24x/24x/24x DVD+RW/DVD-RW/DVD-RAM)


输入设备:
键盘 PS/2 标准键盘
鼠标 HID-compliant mouse
鼠标 Logitech HID-compliant Unifying Mouse
鼠标 PS/2 兼容鼠标

网络设备:
网络适配器 Microsoft Virtual WiFi Miniport Adapter #2
网络适配器 Qualcomm Atheros AR9285 802.11b/g/n WiFi Adapter
网络适配器 Realtek PCIe GBE Family Controller

外围设备:
USB2 控制器 Intel Cougar Point PCH - USB EHCI #1 Controller [B-2]
USB2 控制器 Intel Cougar Point PCH - USB EHCI #2 Controller [B-2]
USB3 控制器 NEC uPD720200AF1 USB 3.0 Host Controller
USB 设备 2.4G Wireless headset
USB 设备 Generic Bluetooth Adapter
USB 设备 HP HD Webcam [Fixed]
USB 设备 Logitech Unifying USB receiver
USB 设备 USB Composite Device
USB 设备 USB Input Device (Logitech Download Assistant)
USB 设备 USB 大容量存储设备
USB 设备 Validity Sensor
USB 设备 Wacom Tablet
电池 Microsoft AC Adapter
电池 Microsoft ACPI-Compliant Control Method Battery

Stage 1

在大量繁复的尝试中偶然发现,此前的系统引导失败与所使用的Clover版本有关。
现用的经尝试可成功引导的为Clover_v2k_r2482。
部署至EFI分区的EFI/Clover目录下,用CloverX64.efi替换EFI/Boot/下的bootx64.efi,将原有的EFI/Microsoft文件夹移至C:/Boot/下(注意备份原始文件),避免系统启动时默认进入win系统。
记得删掉EFI/Clover/drivers64UEFI下csm开头的efi文件(支持CSM的显卡驱动文件),修复进入Clover是屏幕亮但无显示的故障。
IMG_5639.JPG

Stage 2

根据热门教程,将pcbeta提供的OS X Mavericks 10.9.5懒人版镜像写入hfs+分区。
但是引导进入安装分区时,菊花会无故停转,随后重启。
开启了啰嗦模式再观察报错情况。
IMG_5654-1.jpg
查阅PCBETA相关教程得知,不仅需要fakesmc.kext,更需要NullCPUPowerManagement.kext禁用(部分?)电源管理,以解决这个似是而非的蓝牙驱动报错。
附加的kext放在fakesmc的plugin目录下。
成功进入安装程序。
IMG_5658.JPG

Stage 3

完成初始设定后进入系统。
IMG_5662.JPG
在PCBETA上获取了以下kext以驱动相关硬件(极为困惑的是,不同的kext,放在合适的目录下方可生效):

kext 硬件 存放目录
IO80211Family.kext Qualcomm Atheros AR9285 802.11b/g/n WiFi Adapter S/L/E
IOath3kfrmwr.kext Qualcomm Atheros AR3011 Bluetooth 3.0 Adapter S/L/E
IOBluetoothFamily.kext Qualcomm Atheros AR3011 Bluetooth 3.0 Adapter S/L/E
ACPIBatteryManager.kext Battery PR06047 fakesmc.kext/Plugin
GenericUSBXHCI.kext NEC uPD720200AF1 USB 3.0 Host Controller fakesmc.kext/Plugin
AppleACPIPS2Nub.kext ? fakesmc.kext/Plugin
ApplePS2Controller.kext ? fakesmc.kext/Plugin
ApplePS2Keyboard.kext 101/102-Key or MS Natural Keyboard fakesmc.kext/Plugin
ApplePS2Mouse.kext Synaptics PS/2 Port TouchPad fakesmc.kext/Plugin
RealtekRTL8111.kext Realtek RTL8168/8111 PCI-E Gigabit Ethernet Adapter fakesmc.kext/Plugin
AppleIntelSNBGraphicsFB.kext Intel HD Graphics 3000 & Intel Cougar Point HDMI S/L/E
AppleHDA.kext IDT 92HD87B1/3 @ Intel Cougar Point PCH S/L/E

Stage 4

更新了Clover的config.plist以指定开机默认启动系统,增强硬件性能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ACPI</key>
<dict>
<key>DSDT</key>
<dict>
<key>Debug</key>
<false/>
<key>DropOEM_DSM</key>
<false/>
<key>ReuseFFFF</key>
<false/>
</dict>
<key>SSDT</key>
<dict>
<key>DropOem</key>
<true/>
<key>EnableC2</key>
<true/>
<key>EnableC4</key>
<true/>
<key>EnableC6</key>
<true/>
<key>Generate</key>
<true/>
</dict>
</dict>
<key>Boot</key>
<dict>
<key>Debug</key>
<false/>
<key>DefaultVolume</key>
<string>OS X 10.9.5</string>
<key>Legacy</key>
<string>PBR</string>
<key>Secure</key>
<false/>
<key>Timeout</key>
<integer>3</integer>
<key>XMPDetection</key>
<false/>
</dict>
<key>Devices</key>
<dict>
<key>Audio</key>
<dict>
<key>Inject</key>
<string>Detect</string>
</dict>
<key>FakeID</key>
<dict>
<key>IntelGFX</key>
<string>0x01268086</string>
</dict>
<key>USB</key>
<dict>
<key>AddClockID</key>
<true/>
<key>FixOwnership</key>
<true/>
<key>Inject</key>
<true/>
</dict>
<key>UseIntelHDMI</key>
<true/>
</dict>
<key>DisableDrivers</key>
<array>
<string>Nothing</string>
</array>
<key>GUI</key>
<dict>
<key>Hide</key>
<array>
<string>\EFI\BOOT\BOOTX64.EFI</string>
<string>Windows</string>
</array>
<key>Language</key>
<string>en:0</string>
<key>Mouse</key>
<dict>
<key>DoubleClick</key>
<integer>500</integer>
<key>Enabled</key>
<false/>
<key>Mirror</key>
<false/>
<key>Speed</key>
<integer>0</integer>
</dict>
<key>Scan</key>
<dict>
<key>Entries</key>
<true/>
<key>Legacy</key>
<true/>
<key>Tool</key>
<true/>
</dict>
<key>Theme</key>
<string>Universe</string>
</dict>
<key>Graphics</key>
<dict>
<key>Inject</key>
<dict>
<key>ATI</key>
<false/>
<key>Intel</key>
<false/>
<key>NVidia</key>
<false/>
</dict>
<key>NvidiaSingle</key>
<false/>
</dict>
<key>KernelAndKextPatches</key>
<dict>
<key>AppleRTC</key>
<true/>
<key>AsusAICPUPM</key>
<true/>
<key>Debug</key>
<false/>
<key>KernelCpu</key>
<false/>
<key>KernelHaswellE</key>
<false/>
<key>KernelLapic</key>
<false/>
<key>KernelPm</key>
<false/>
<key>KextsToPatch</key>
<array>
<dict>
<key>Comment</key>
<string>External icons patch</string>
<key>Find</key>
<data>
RXh0ZXJuYWw=
</data>
<key>Name</key>
<string>AppleAHCIPort</string>
<key>Replace</key>
<data>
SW50ZXJuYWw=
</data>
</dict>
</array>
</dict>
<key>SystemParameters</key>
<dict>
<key>InjectKexts</key>
<string>Detect</string>
<key>InjectSystemID</key>
<true/>
</dict>
</dict>
</plist>

Stage 5

启用DSDT补丁,以便实现深层次的硬件兼容。
在不存在DSDT patch的条件下,于Clover中按F4键,快速获得BIOS中的DSDT、SSDT于目录EFI/Clover/ACPI/origin。
初次打补丁时,发现有些修正并未完全生效。
认真研读PCBETA相关教程,更正了打补丁的方式。
将SSDT-0.aml更名为SSDT.aml,去掉其余aml文件末尾的x。
在Mac中获取命令行版的iasl,在终端下对DSDT.aml、SSDT-.aml进行反编译得到.dsl。
使用maciasl,添加External(…)等行,排除了编译错误。
引用Rehebman的补丁源,针对显卡、屏幕亮度等应用了补丁。
修改完后,再在终端下将*.dsl编译为*.aml,放到EFI/Clover/ACPI/patched。
【未完待续