HP Pavilion 14-B042TU 安装 Mavericks 札记

/

OS X Mavericks 正式版姗姗来迟,安装过程比较简单,算不上艰辛,下面是一点经验(针对 Hackintosh for HP Pavilion 14-B042TU):

upgrade to Mavericks

安装之前

  1. 做好备份工作

    我的分区表是 MBR 格式,没法直接升级,所以只能格式化后安装新系统。真理:在安装新系统前请记得备份,代码别忘了 push 到代码仓库里,其他的一些资料别忘了利用 Time Machine 或者 CCC 备份。

  2. 用 MyHack 制作启动 U 盘

    MyHack 制作启动 U 盘非常简单,全傻瓜化操作,唯一的要求是需在 OS X 系统下运行,无论是白苹果还是 Hackintosh,如果这些都没有,可以先在 Windows 下通过虚拟机安装 OS X。

    启动 U 盘不仅用于安装系统,而且对于 Hackintosh 来说,是不可或缺的维护工具,当进入安装界面后,可以启动磁盘工具和终端来维护系统。

  3. 手动安装 Chameleon 后出现 boot0: error 的解决方法

    用启动 U 盘启动后,进入磁盘管理工具,卸载 OS X 系统分区,比如 disk2s1,然后进入终端,执行:

     cd path_to_i386
     dd if=boot1h of=/dev/rdisk2s1
    

    重启~

安装要点

DSDT

利用 MaciASL 为 DSDT 打补丁,参考:https://github.com/RehabMan/Laptop-DSDT-Patch

我为 DSDT 打的补丁依次是:

1. Fix
  - HPET fix
  - SMBUS fix
  - IRQ fix
  - RTC fix
  - OS Check fix
  - Fix Mutex with non-zero SyncLevel
  - Fix PNOT/PPNT
  - Add IMEI
  - Fix _WAK Arg0 v2
2. Video
  - HD4000 Low Resolution
  - Rename GFX0 to IGPU
  - Brightness fix
3. Audio
4. Battery (customize)
5. USB3
  - USB 7 Series
  - USB3 Multiplex

AppleHDA

HP Pavilion 14-B042TU 的 声卡:IDT 92HD99BXX(设备 ID:111d76e5),写了个脚本用于生成 AppleHDA 的注入驱动,每次 AppHDA 有新版本后,重新运行一次脚本即可,方便升级。

同时需给AppleIntelFramebufferCapri.kext 打补丁:

sudo perl -pi -e 's|\x05\x03\x00\x00\x02\x00\x00\x00\x30\x00\x00\x00\x02\x05\x00\x00\x00\x04\x00\x00\x07\x04\x00\x00\x03\x04\x00\x00\x00\x04\x00\x00\x81\x00\x00\x00\x04\x06\x00\x00\x00\x04\x00\x00\x81\x00\x00\x00|\x05\x03\x00\x00\x02\x00\x00\x00\x30\x00\x00\x00\x02\x05\x00\x00\x00\x08\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|g' /System/Library/Extensions/AppleIntelFramebufferCapri.kext/Contents/MacOS/AppleIntelFramebufferCapri

USB3

为 DSDT 打了 USB 7 Series 和 USB3 Multiplex 补丁后,可以使用原生 AppleUSBXHCI 驱动 USB3,能够正常识别支持 USB3 的 U 盘。

显示器亮度调节

除了为 DSDT 打 Brightness fix 补丁,还需要额外驱动支持。

方法1:使用 ACPIBacklight 驱动替代原生驱动。参考:Patching DSDT/SSDT for LAPTOP backlight control

方法2:使用注入驱动+原生驱动的方式。参考:Native Brightness working without ‘blinkscreen’ using patched AppleBacklight.kext

电池信息

无现成补丁可用,需对 DSDT 进行手动修改,参考:How to patch DSDT for working battery status

电源管理

  • AppleIntelCPUPowerManagement.kext

    利用 AICPMPatch 对电源管理驱动打补丁:

      perl AICPMPatch.pl /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement
      sudo perl AICPMPatch.pl /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement --patch
    
  • SMBIOS

    根据配置选择,我选择的是 MacBookAir6,2。

  • SSDT

    使用 ssdtPRGen.sh 生成 ssdt.aml。

      cd /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources
      sudo cp Mac-2E6FAB96566FE58C.plist{,.bak}
      sudo cp Mac-35C1E88140C3E6CF.plist Mac-2E6FAB96566FE58C.plist
      sudo chown -R root:wheel /System/Library/Extensions/IOPlatformPluginFamily.kext
      sudo touch /System/Library/Extensions
      sudo kextcache -update-volume /
      ./ssdtPRGen.sh -lfm 800 -x 1 -w 0
    

    org.chameleon.Boot.plist 添加:

      set GenerateCStates=No
      set GeneratePStates=No
      add DropSSDT=Yes
    
  • mach_kernel

    为 mach_kernel 打补丁,使其支持 xcpm:

      # for xpcm related panic/reboot 10.9.x kernel
      perl -pi -e 's|\x74\x6c(\x48\x83\xc7\x28\x90\x8b\x05..\x5e\x00\x85\x47\xdc)\x74\x54(\x8b\x4f\xd8\x45\x85\xc0\x74\x08\x44\x39\xc1\x44\x89\xc1)\x75\x44(\x0f\x32\x89\xc0\x48\xc1\xe2\x20\x48\x09\xc2\x48\x89\x57\xf8\x48\x8b\x47\xe8\x48\x85\xc0\x74\x06\x48\xf7\xd0\x48\x21\xc2\x48\x0b\x57\xf0\x49\x89\xd1\x49\xc1\xe9\x20\x89\xd0\x8b\x4f\xd8\x4c\x89\xca)(\x0f\x30\x8b\x4f\xd8\x0f\x32\x89\xc0\x48\xc1\xe2\x20\x48\x09\xc2\x48\x89\x17\x48\x83\xc7\x30\xff\xce)\x75\x99(\x5d\xc3)\x90{7}|\x74\x73${1}\x74\x5b${2}\x75\x4b${3}\x66\x81\xf9\xe2\x00\x74\x02${4}\x75\x92${5}|g' mach_kernel
    
      # for Local APIC panic (also causes instant reboot) 10.9.x kernel
      perl -pi -e 's|(\x25\x1c\x00\x00\x00\x48\x8d\x0d..\x5e\x00\x3b\x01)\x74(\x11\x48\x8d\x3d...\x00\x44)|${1}\xeb${2}|g' mach_kernel
    

    参考:Patching the kernel for Haswell CPUs, XCPM early reboot

AppleRTC.kext

为了防止 CMOS 重置,需要对原驱动打补丁:

sudo perl -pi -e 's|\x75\x30\x89\xd8|\xeb\x30\x89\xd8|' /System/Library/Extensions/AppleRTC.kext/Contents/MacOS/AppleRTC

Comments