olm3ca / PixelbookOSX

Pixelbook OS X
68 stars 7 forks source link

Installing macOS on the Google Pixelbook.

It turns out that the latest verion(s) of macOS work quite well on the Google Pixelbook.


Before you begin,

Pixelbook owners with an Samsung 512GB NVMe SSD should be aware that problems will arise during the installation process. This is primarily due to the fact that the Samsung SSD does not play well with macOS, which could result in degraded performance and prolonged boot times.

If you have an Pixelbook with eMMC, you may proceed without any issue.


Table of Contents


OpenCore Boot Menu macOS Ventura

Some notable specs:


Current Status

Feature Status Notes
WiFi Working With itlwm.kext v2.1.0 stable and Heliport v1.4.1 (Latest).
Bluetooth Working With IntelBluetoothFirmware and BlueToolFixup.kext.
Suspend / Sleep Working partially Only on battery power, working with EmeraldSDHC.kext.
Trackpad Working Install Karabiner and go to Devices to enable ID 6353
Graphics Accel. Working With -igfxnotelemetryload in the boot-args.
Internal Speakers Not working Unsupported codec.
Keyboard backlight Not Working
Keyboard Remaps Working partially Install Karabiner and use that to remap top row keys.
eMMC Storage Working With EmeraldSDHC.kext.
USB Ports Working Working OOTB, still advised to map USB ports.
Webcam Not Working
Internal Mic. Not working Same reason why internal speakers don't work; unsupported codec.
Logout / Lock Working Working OOTB.
Shutdown / Restart Working
Touchscreen Working With VoodooI2C.kext and VoodooI2CHID.kext
Screen backlight Working partially Using BetterDisplay helps as a stopgap solution.
Continuity Not working Will likely never work, limitation with Intel Wi-Fi and itlwm.

⚠️ Mandatory Disclaimer

By continuing, you acknowledge that you have read and understood the contents of the following disclaimer, and consent to their terms.

The process described in this document could cause irreversible damage to your laptop, and you should prepare yourself for that outcome before you begin. I accept absolutely no responsibility for the consequences of anyone choosing to follow or ignore any of the instructions in this document, and make no guarantees about the quality or effectiveness of the software in this repo.


Requirements

Before you start, you'll need to have the following things to complete the process:


Installation

Here are the steps to go from stock Pixelbook to a macOS install using OpenCore:

  1. If you haven't already, flash UEFI firmware. Read and follow MrChromebox's instructions on how to flash the UEFI firmware using MrChromebox's scripts. To do this, you will need to disable write protect with either the SuzyQable cable or by removing the battery.

Fixing coreboot 4.2.0

coreboot 4.2.0 (5/15/2023 release) has a known issue where macOS will hang on due to coreboot not defining CPU cores by default. To fix this, we'll use a SSDT to manually define them. Credits to ExtremeXT for the fix. You do not need this SSDT if you're on 4.1.9 or older.

  1. Setup your EFI folder using the OpenCore Guide. Use Laptop Kaby Lake & Amber Lake Y for your config.plist.

  2. Re-visit this guide when you're done setting up your EFI. There are a few things we need to tweak to ensure our Pixelbook works with macOS. Skipping these steps will result in a very broken hack.

  3. In your config.plist, under Booter -> Quirks set ProtectMemoryRegions to TRUE. It should look something like this in your config.plist when done correctly:

    Quirk Type Value
    ProtectMemoryRegions Boolean True

    Warning This must be enabled.

  4. In your config.plist, under NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82, add -igfxnotelemetryload to your boot-args. Without it, you will NOT have iGPU acceleration. translation: it will run horribly.

  5. Under DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0), make the following modifications:

    Key Type Value
    AAPL,ig-platform-id data 0000C087
    device-id data C0870000
    enable-dpcd-max-link-rate-fix data 01000000
    dpcd-max-link-rate data 1E000000

    Warning These should be the only items in PciRoot(0x0)/Pci(0x2,0x0).

  6. Set your SMBIOS as MacBookAir8,1. Ignore what the guide tells you to use, MacBookAir8,1 works better with our laptop.

    Note If you choose to use MacBook10,1, which also works, you will not have Low Battery Mode.

  7. Download EmeraldSDHC for eMMC storage support. Put it in your Kexts folder.

  8. Download corpnewt's SSDTTime, open it, select the first option FixHPET, choose C for default, and drag the SSDT it makes (SSDT-HPET.aml) into your ACPI folder. Then, in the same folder, copy the patches from oc_patches.plist into your config.plist under ACPI -> Patch. Without it, eMMC won't be recognized by macOS.

  9. Snapshot (cmd +r) or (ctrl + r) your config.plist.

  10. Now, boot from the OpenCore USB. In Disk Utility, go to Show All Devices in the top left, and then select the entire drive to format it as APFS. Begin the install after.

    • After some while, it will reboot. Go back into the boot menu and select your macOS Monterey install . In the OpeCore boot menu, you should now see "Install macOS Monterey" as a menu item. Select that to continue the installation.
      • The second phase of the installation will continue for about ~25-30 minutes. If it appears to be stuck, do NOT shut it down. It is not stuck. It just takes a while.
  11. After installing, make sure to copy your EFI from the USB Drive over to your EFI Partition in your eMMC drive. corpnewt's MountEFI is great for doing this.


Post install:

Note: Required for macOS 12 and up: Make your own USB map, by following the documentation.

Warning You NEED to have USBToolBox.kext in your kext folder for the generated UTBMap.kext to work.


Misc.

*Note: The hotkey to show drives DOES NOT WORK. Make a copy of your EFI with ShowPicker enabled if you need to boot from another drive.


macOS Ventura

Before beginning, it's important to keep the following in mind:


Preparations

Note: These steps can be completed after updating, however, you won't have WiFi during this time. For a smoother experience, it is recommended to perform the following steps before updating.

  1. Mount your EFI using Corpnewt's MountEFI.
  2. In the OC/Kexts folder, delete your previous itlwm/AirportItlwm kext and replace it with itlwm v.2.2.0 alpha.
  3. If you haven't already, download and install Heliport, with the most recent stable release being sufficient.
  4. Launch ProperTree and reload (by pressing ctrl+r) your config.plist.
  5. Start the update process (if you haven't already).
  6. See below for fixing WiFi.

Preparations for installing Ventura directly:

Note: For Windows only, not sure how it's like on Linux.

  1. Under OC/Kexts, delete your old itlwm/AirportItlwm kext and replace it with itlwm v.2.2.0 alpha
  2. Open up your kext folder, and locate itlwm.kext.
  3. Open it, and find Info.plist.
  4. Open ProperTree, navigate to where your Info.plist is, and open it.
  5. Under IOKitPersonalities -> itlwm -> WiFiConfig, enter your WiFI details. Save and close when done.
  6. Launch ProperTree and reload (ctrl+r) your config.plist.
  7. Boot recovery. There will be no WiFi logo/symbol, but you will have WiFi. If you are able to install macOS, then you have not messed up.

Fixing WiFi on Ventura

Only for those that have macOS installed but haven't edited their Info.plist.

  1. Mount your EFI
  2. Open up your kext folder, and locate itlwm.kext.
  3. Click it, and select Show Package Contents and open the Contents folder. Once inside, find the Info.plist and copy it via ctrl + c.
  4. Exit itlwm.kext and go back to your Kext folder. Paste your Info.plist.
  5. Open ProperTree, select the Info.plist in your Kext folder and open it.
  6. Under IOKitPersonalities -> itlwm -> WiFiConfig, enter your WiFI details. Save and close when done.
  7. Replace the old Info.plist with the one you just edited.

Do note that Heliport will report no WiFi upon logging in but keep in mind you actually do thanks to the edits we just made. :)


That's it. Feel free to share your ideas of how to improve this process and the hardware compatibility.