最近在隔壁小哥的怂恿下,尝试了一下在自己的华硕F454L上安装Mac OS,感觉,算能用吧。以下为大概过程,记录一下,以免以后忘记,也许会有人需要。至于镜像,就要自己到网上找了,很多,大概也差不多(懒人版稍微简单直接一点)。

  • 硬件信息参考:
    电脑型号: 华硕 X455LJ 笔记本电脑 (扫描时间:2017年03月19日)
    操作系统: Windows 10 64位 ( DirectX 12 )
    处理器: 英特尔 Core i5-5200U @ 2.20GHz 双核
    主板: 华硕 X455LJ ( 英特尔 Broadwell-U - 5th Generation Intel Core Premium SKU - 9CC3 笔记本芯片组 )
    内存: 3902 MB
    主硬盘: 希捷 ST500LT012-1DG142 ( 500 GB / 5400 转/分 )
    显卡: Nvidia GeForce 920M ( 2 GB / 华硕 )
    显示器: 奇美 CMN1480 ( 14 英寸 )
    光驱: 松下 DVD-RAM UJ8HC DVD刻录机
    声卡: Conexant SmartAudio HD @ 英特尔 High Definition Audio Controller
    网卡: 瑞昱 RTL8168/8111/8112 Gigabit Ethernet Controller / 华硕
    我用的镜像是Mac OS 10.12.3 Sierra。

分区

我分了一个60g的分区用来装mac os,另外有一个win10系统盘,两个资料盘。 efi分区400m左右。

制作安装盘

用transMac把16g的u盘格式化成Mac格式,然后选择用镜像制作Mac安装盘,选择下载好的懒人版Mac os10.12,等待完成。

装clover

用U盘进入pe系统,挂载efi分区(用分区助手等指定盘符),把clover文件夹(附件中的CLOVER压缩包,解压)放到efi分区下的EFI目录内。把对应的驱动添加或替换到驱动所在文件夹,把用相应的配置文件替换clover的默认配置文件(华硕f454l的驱动基本放好了,其他型号的要自行替换否则可能开不了机)。在BIOS设置里把clover设为第一启动项,并且把显存改为128m(进入BIOS设置,切换到advanced页面,找到graphics configuration进行修改)。

安装

开机就会引导到clover,选择install mac os from …,然后走第一条加载进度条,之后如果出现英文的安装界面,并且有Back和Continue按钮,那么第一步大概要成功了。按Back,选择简体中文,然后在上方菜单栏的实用工具中打开磁盘工具,把刚才的60g盘抹掉,变成Mac os journal格式,可以给它命名为Mac,然后可以下一步安装到这个Mac盘里。

驱动安装及部分问题的修复

装完后如无意外应该可以正常开机,特效应该也正常。

声卡

  • 万能声卡voodooHDA
  • 仿冒声卡:
    对于已经装过万能声卡驱动的要先完全卸载。
    2.1在win下打开设备管理器,查看声卡(音频)属性-硬件ID,记录其中信息。对于cx卡,根据VEN和DEV这两段信息(codec),后面有方法推断出声卡型号。而对于realtek,alc这些卡,据说DEV后面的就是型号的一段。
    2.2安装新版applehda patcher。
    2.3可以看到可选台式或者笔记本声卡型号。对于F454L这款机子,由于不清楚具体声卡型号,只知道是cx卡,所以要逐个尝试列表内的cx各型号,界面会输出这个型号的codec,测试到cx20752时,发现codec和刚才在设备管理器看到的声卡属性信息一致,所以可以认定声卡型号为cx20752。
    2.4把苹果系统自带的applehda拖进去软件内。在笔记本列表选择型号cx20752,点击patch,会在桌面生成一个文件夹。
    2.5注入声卡的方式有很多,详情可以看文件夹内的readme.pdf。这里的方式是打dsdt补丁。
    2.6首先用驱动安装器安装制作好的applehda到sle,清缓存修权限。(用kext wizard,别用KCPM Utility Pro,我失败多次的原因在于这个软件不知道为啥抽风,每次搞完驱动重启就卡进度条,搞得我以为驱动有问题,结果后来用kext wizard就可以了)。
    2.7然后用maciasl打开能用的dsdt.dsl,把生成的文件夹里面的两个补丁打进去。这个机子的dsdt,HDED内原本已经存在一个_DSM方法,所以编译会有一个这样的错误。把原来的删去即可编译通过。
    2.8这里IRQ FIX有点重要。因为有的教程可能没有提到这个,但其实F454L必须要打这个补丁才能驱动。
    2.9编译好的DSDT.aml放在相应文件夹。重启,声卡可以了。不过麦克风似乎不正常。

    NTFS盘读写

  • NTFS for Mac OS X。似乎只能试用十天。
  • 系统原生读写
    (1)终端输入命令diskutil list查看硬盘分区的TYPE NAME,也就是分区名称,现在我要挂载的一个分区名字是Develop,那么看到某一行显示“4: Microsoft Basic Data Develop 153.3 GB disk0s4”。其中Develop便是所需信息。
    (2)终端用vi编辑fstab文件:sudo vi /etc/fstab,填入LABEL=Develop none ntfs rw,auto,nobrowse。重启。
    (3)发现在finder侧边栏中Develop分区不见了,其实现在可以在/Volumes文件夹找到这个挂载的分区,查看简介发现权限已经变为自定权限,也就是可读写了。可以将这个分区链接到某个容易到达的文件夹。
    比如,在桌面创建文件夹Develop,在终端输入:mkdir ~/Desktop/Develop,然后:ln -s /Volumes/Develop ~/Desktop/Develop。于是便可以在桌面的Develop文件夹打开Develop分区。另外,里面的快捷方式也可以移动到Finder侧栏中的我的收藏中。
    Ps: 上面的LABEL可用设备的UUID代替。终端输入:diskutil info /Volumes/Develop | grep UUID,得到:Volume UUID: CD5406CA-D362-4CF3-B3C0-524911CA3A5F,UUID这一截代替fstab中LABEL那一段即可。
    参考:http://www.jianshu.com/p/08abdd95b989

    网络:

  • 换网卡
  • 无线网卡
  • 360随身wifi(或小米wifi)充当无线网卡:
    mtk英文官网下载驱动MT7612_7610U,安装,看看在/System/Library/Extensions/有没有RT2870USBWirelessDriver.kext,如果没有用kext wizard安装RT2870USBWirelessDriver.kext,再用kext wizard修复权限,清空缓存。屏幕顶部工具栏出现了一个挫挫的三条黄色竖线,没错这货就是wireless utility的图标。。。此时应该可以打开wireless utility并且链接wifi了。不得不说真有点难看。

    触摸板

    如果有问题,装个smart touchpad驱动就好。

    解决开机进度条第二阶段花屏

    以下针对10.12 sierra。其他版本的系统代码不一样。
    在KextsTopatches字段中加入
        <dict>
                <key>Comment</key>
                <string>Boot graphics glitch, 10.12.dp1 (credit denskop)</string>
                <key>MatchOS</key>
                <string>10.12.x</string>
                <key>Find</key>
                <data>AQAAdSU=</data>
                <key>Name</key>
                <string>com.apple.iokit.IOGraphicsFamily</string>
                <key>Replace</key>
                <data>AQAA6yU=</data>
        </dict>

要与其他<dict>字段平行。

dsdt纠错以及显示电量

1.在linux下提取所有aml(或者用clover),放在同一个文件夹(特别是用linux提取的aml,dynamics文件夹里面的也要拿出来和其他的放一起)。在mac的终端进入这个放aml件的文件夹,输入命令iasl -da -dl DSDT.aml SSDT*.aml,在这个文件夹内会生成很多dsl文件,用maciasl打开dsdt.dsl,compile后可以发现只有两个错误。
2.在patch框输入

into_all all code_regex (\s+Zero){2,} removeall_matched;
into_all all code_regex (\s+Zero){2,} removeall_matched;
into method label ADBG replace_content begin Return(0) end;

此时如果编译,会发现已经没有错误,只有警告。也就是说已经可以保存为一个无错的dsdt文件了,以后可用于打dsdt补丁,驱动某些硬件。
(或者,这一步,不用上面的代码补丁,直接在patch里面先后用RehabMan的”Fix PARSEOP_ZERO Error” 和”Fix ADBG Error”这两个patch效果是一样的。第一个patch要去掉最后两行的注释号。)
要显示电量,接下来:
3.在maciasl加入RehabMan的asus的n55sl电池补丁,应用, 再次compile,没有错误。另存为aml文件,放到efi/clover/acpi/patched。
4.把ACPIBatteryManager.kext放到efi/clover/kexts/10.12中。
此时,要保证bios设置里面,高级设置,图形设置里面是64或128m,不然开机会卡在进度条。(如果设为32m,会在开机logo处花屏卡死,如果设为256、512等,进度条会停滞)
重启,没有异常。电量正常。

屏蔽独显

1.终端进入存放所有dsl文件的目录,输入:grep -l Method.*_OFF *.dsl或者grep -l Method.*_ON *.dsl
得到结果:

SSDT-11.dsl
SSDT-12.dsl
SSDT-13.dsl
SSDT-2.dsl

2.经过比对,确定在SSDT-12中的_OFF函数中调用的SB.PCI0.RP05.PEGP.SGOF是关闭独显的函数。
所以在dsdt中的_INI和_WAK方法中调用这个函数来关闭独显。
首先在dsdt开头的

DefinitionBlock (“”, “DSDT”, 2, “ASUS“, “Notebook”, 0x01072009)
{
……
}

代码块中第一行加入声明:External (_SB_.PCI0.RP05.PEGP.SGOF, MethodObj)
然后搜索定位到_INI函数(_INI会有很多个,注意是SB.PCI0._INI)
首行加入:\_SB.PCI0.RP05.PEGP.SGOF ()
搜索定位到_WAK函数,同样首行加入:\_SB.PCI0.RP05.PEGP.SGOF ()
3.最后保存为DSDT.aml,放到patched文件夹。
参考:
https://imac.hk/dsdt-masking-of-hackintosh.html
http://www.haolie.net/thread-658.htm
http://bbs.pcbeta.com/viewthread-1450829-1-1.html

修复系统偏好设置-显示器选项不能载入的问题

问题表现为点击系统偏好设置-显示器选项,系统提示“未能载入偏好设置-显示器”。
原因:asus f454l这个本子用的是hd5500这个核显,仿冒的是mbp retina 13-inch,但是其本身的显示器是14寸的,与mbp显示器不同,于是有冲突。
解决思路:用clover configurator注入EDID,仿冒13寸的mbp显示器。
过程:
用clover configurator打开config.plist。
用DarwinDumper提取EDID,打开提取文件夹,打开EDID.txt,将basic params 的第二个数改为1d, 第三个数改为10,将checksum改为40,将所有十六进制数(不包括任何其他字符)复制到clover configurator内,graphics选项卡的custom edid框,勾选inject edid。保存放到efi-clover文件夹。
完整十六进制字符如下:

00ffffffffffff000dae8014000000001e160103801d10780acb45965755912827505400000001010101010101010101010101010101da1d56e250002030442d470035ae10000018000000fe004e3134304247452d4c32330a20000000fe00434d4e0a202020202020202020000000fe004e3134304247452d4c32330a200040

参考链接:http://blog.csdn.net/wr132/article/details/54836994
http://www.yekki.me/fix-sysprefs-display-fail-with-an-error-on-t440p-issue-on-sierra/

亮度不能保存问题(更新系统后再次失效,待解决)

1.首先,在/etc/下面创建一个rc.shutdown.local文件,内容如下:

 #!/bin/sh
# (c) Slice 2010
nvram -x -p >nvram.plist

2.然后,在/Library/LaunchDaemons/下面创建一个com.delta.nvram.set.plist文件
内容如下:

<?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>Label</key>
<string>com.delta.nvram.set</string>
<key>ProgramArguments</key>
<array>
<string>nvram</string>
<string>-xf</string>
<string>/nvram.plist</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

3.最后修复权限: sudo chown 0:0 /Library/LaunchDaemons/com.delta.nvram.set.plist
4.在终端中输入sudo nano /etc/save.nvram,创建一个空的文件save.nvram在/ect下面。
在Nano编辑器中输入下面的命令

#!/bin/bash

nvram -x -p > "/nvram.plist"

if [[ -f "/nvram.plist" ]]; then
   chflags hidden "/nvram.plist"
fi

Ctrl+X保存文件,然后按Enter或Return键确认文件名
在终端中输入sudo chmod +x /etc/save.nvram使之成为可执行文件。
继续在终端输入sudo defaults write com.apple.loginwindow LogoutHook /etc/save.nvram,这会将刚才新建的命令行文件写入登陆窗口的 LogoutHook中。这意味着我们的脚本会在每次注销系统时执行,所以nvram.plist会在登出、重启和关机时生成。
Clover会在开机的时候自动加载nvram.plist,并且使用保存的nvram值。
参考链接:
http://bbs.pcbeta.com/viewthread-1538926-1-1.html
http://bbs.pcbeta.com/viewthread-1182812-1-1.html

亮度

安装intelbacklights.kext,dsdt打fix brightness补丁。
参考链接:https://www.douban.com/note/526541270/?type=rec

亮度调节快捷键消失

再次重装,发现偏好设置-快捷键已经没有显示器选项卡,不能自己设定亮度调节快捷键,代替:Karabiner-Elements。
https://github.com/tekezo/Karabiner-Elements/blob/master/usage/README.md#installation

icloud的登录问题

装完直接在偏好设置打开icloud用apple id进行登录,出现类似“帐号已达限制”的提示,无法登录进行设置。估计苹果根据序列号来判断一个apple id在一台mac上能否登录。因此尝试一下方法:
用clover更改序列号,改为其他未绑定apple id的mac产品序列号。
具体序列号怎么获得,就要靠自己了。其实这样不太好,对于那些被盗用序列号的mac用户来说,如果他们还没有在mac上激活并设置icloud的话,这台mac的序列号被别人用来激活icloud之后,他们的apple id也许就没有机会在自己的mac上使用icloud了。
似乎有人随便编一个序列号也达到了同样效果(如果这样可行的话,感觉更人畜无害一点?):
http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1464733
如果有其他顾虑,就别用这方法。

附加内容

  • 开启HiDPI(非高分屏没什么意义,会降低桌面的可用空间)
    1.安装Retina display Menu(RDM)
    2.下载、执行脚本
    打开终端,输入curl -o ~/enable-HiDPI.sh https://raw.githubusercontent.com/syscl/Enable-HiDPI-OSX/master/enable-HiDPI.sh
    来获得enable-HiDPI.sh脚本。
    执行chmod +x ~/enable-HiDPI.sh加入执行权限。
    输入./enable-HiDPI.sh运行脚本,输入想要的分辨率,回车后输入0,再输入密码,重启生效,打开RDM在菜单栏选择输出模式。
    参考链接:https://imac.hk/os-x-10-11-how-to-open-hi-dpi-1080p.html

    常用命令

    1.安装商店外软件免警告:sudo spctl –master-disable
    2.显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder。(或者在finder中用快捷键command+shift+ .)
    3.finder显示完整路径:
    解决上部显示完整路径的方法: defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES 。重启finder,用快捷键command+option+esc,在弹出的窗口中找到finder并选中,然后点击“重新启动”按钮。

附件

百度网盘链接: https://pan.baidu.com/s/1nuVe5gH 密码: ifyc。
里面都是我用到的软件工具。HWMonitor.app是硬件监控;Clover Configurator.app是Mac OS下修改Clover配置文件的;睿频脚本用来搞cpu多档变频;RehabMan-FakeSMC-2017-0117.zip是I5-5200U的kext驱动;OS-X-Clover-Laptop-Config-master.zip是各种显卡的Clover配置文件的集合;HoRNDIS-rel8(安卓usb网络分享)是使Mac OS能够支持安卓的usb网络共享的软件,让Mac OS临时连上网。CLOVER.zip是我efi分区内CLOVER文件夹的压缩包。

尚未完成

目前大问题基本解决,可以正常使用。

参考链接