Step by step instructions to remove integrated Intel HD graphics GPU kernel extension kexts with FileVault and SIP enabled

I’ve been working on a 2011 15″ MacBook Pro for a friend, and encountered a unique situation: the Intel integrated graphics are faulty, while the discrete AMD GPU still works fine. (in all my searching, everybody else has encountered the opposite problem, a failure of the discrete GPU, while the integrated Intel HD GPU still works fine)

Safe boot and the macOS install/recovery work fine, since the accelerated Intel drivers aren’t loaded. However, an attempt to perform a normal boot hangs, with a kernel debug message in the system log about a “possible hang in main graphics engine”.

As a workaround, I moved all of the AppleIntelHDxxxxxx.kext drivers out of /System/Library/Extensions and rebuilt the kernel cache, and I’m using GFXCardStatus to force the machine onto the discrete GPU upon login. The MBP is now running flawlessly, but I’m concerned about a future system update reinstalling the kexts that I removed.

Ideally, I’d like to prevent any system updates from installing the drivers that I removed, or alternatively, a way to automate or script the recovery process.

Meanwhile I’ll document the steps to repeat the process, in case a future update reinserts the drivers. The process was complicated by FileVault and SIP, making it necessary to boot from a USB installation disk or the recovery partition, mount the FileVault volume with Disk Utility, and then move the kexts out of /S/L/E.

  • While powering on, press and hold Command-R.
  • At the language selections screen, click Continue.
  • From the menu bar, click “Utilities”, select “Terminal”
  • diskutil coreStorage list
  • From the output of the command, highlight, right-click, and copy the logical Volume UUID (alphanumeric code)
    diskutil coreStorage unlockVolume 11111111-2222-3333-4444-555555555555 -stdinpassphrase
    [enter your password at the prompt]

    The output of this command should show “Logical Volume successfully mounted as…” followed by the mount point.
  • (On this step, remember to use the BASH tab completion feature to be sure you don’t make a type!)
    cd /Volumes/(insert Volume Name here)/System/Library/Extensions
    ls -al AppleIntelHD*

    (should see list of many files)
  • mkdir backup-06Oct16
    mv AppleIntelHD* ./backup-06Oct16/
    cd ..
    ls -al AppleIntel*

    The last command should output “no such file or directory”, confirming that the files have been moved into the backup-xxxxxx folder created earlier.
  • Apple menu, restart, while holding Command-S
  • enter password at prompt
  • Once text stops scrolling:
    fsck -fy
    mount -uw /
  • Press Control-D. Should boot successfully

Raspberry Pi 3 Overclocking and Stability Testing

I recently ordered and took delivery of the new Raspberry Pi 3, with the intention of letting my son use it as a desktop computer replacement.

Web browsing with Chromium works pretty well, but was still a little bit laggy on Javascript-heavy sites, and I had hoped to eek a bit more performance out of it.

Inspired by this guy, I tried upping the clock speed, but needed a way to stress test it, and at the same time, check for stability. On x86 equipment, I would use Prime95 to fill that role: it has the CPU perform calculations, and compares the results with a known reference. If they don’t match, then the CPU has made an error (due to heat, voltage, a flipped bit somewhere in RAM or cache, etc).

Existing stress test software that I’ve encountered for the Raspberry Pi doesn’t seem to care about the integrity of the calculations performed. And since Prime95 doesn’t run on ARM processors, I came up with my own solution: a quick and dirty BASH script that will run four simultaneous iterations of a command that calculates a million digits of pi. It then makes sure the results match, outputs the time it took to execute the commands, and the temperature of the CPU core, and loops until it’s aborted with CTL-C, or it encounters an error.

Here’s that script:

My results were pretty disappointing, by the way. The stock clocking of the CPU, 1.2GHz, appears to be the highest speed this chip is able to handle stably.

Raspberry Pi with USB DAC running XBMC on OpenELEC

This is just a note to self, to make things easier when updating to a new build in the future. What I needed to do to get my Pi running correctly with Milhouse build 503:

First mount flash partition read/write:
mount -o rw,remount /flash

In /flash/config.txt:

In /flash/cmdline.txt, add noram.

In Settings, System, enable advanced, then select ALSA USB DAC audio, enable passthrough, and DTS capable receiver.

In ~/.xbmc/userdata/advancedsettings.xml:



In case I ever have issues again with ZFS DKMS:

Honda parts shipped to an APO address

I didn’t expect it to be so difficult to find an online Honda dealer that was willing to ship to an APO address. After wasting time on site after site after site, I finally found one that ships to APO, but wanted to charge over 4x their normal shipping rate! After further searching, I finally found a place that will ship Honda parts to military members overseas at APO address without price gouging them! Visit if you need to order Honda parts for an APO address without getting ripped off. (or perhaps ?)
(this is mainly a note to myself)