First, I've verified that the latest version of ArchLinux I've downloaded was corrupted, so I downloaded the oldest one available in
https://www.archlinux.org/releng/releases/. I was able to re-create the USB Boot Disk and boot into it right away without a hitch.
Next, after uneasy several tries over a few hours, which kept failing, I did a "clean" fix by
resetting the NVRAM/PRAM and SMC. I realized that the reset removes any
gpu-power-prefs... instance, including
gpu-active-... and
gpu-policy-..., which can't be removed. As soon as I did the reset, I did an
ls command after cd /sys/firmware/efi/efivars, which showed that there were no
gpu-power-prefs-... at all.
So, I skipped the other commands which involved having to remove the
gpu-power-prefs-... file, and did the following (as per the screenshot):
---
*) cd /
*) umount /sys/firmware/efi/efivars/
*) mount -t efivarfs rw /sys/firmware/efi/efivars/
*) cd /sys/firmware/efi/efivars/
*) ls (list, just to verify that the file didn't magically appear)
*) printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9
*) chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"
*) cd /
*) umount /sys/firmware/efi/efivars/
*) reboot
---
which, aside from the
ls command, is exactly what
@AppleMacFinder wrote on his first post, sans the commentaries. I found those commentaries were a bit distracting and my bad eyesight wasn't helping since I have to pan between the screen, the keyboard, and the printout I was referring to. After several hours of failed attempts though, I was starting to memorize what I was typing that this final try went smoothly.
And it worked, I was able to successfully boot up without a hitch on the first reboot. By that time, which was a few hours, I was going to post the result. I ran into some problem after launching Cody's current version of
switchGPU (the MBP froze when I tried switching GPUs), but, I was able to successfully do a force restart at least a couple of times.
After that, I removed the AMD kexts using AMF's steps in his first post by logging in
Single-User Mode.
1) fsck -fy
(to check a disk)
2) mount -uw /
(mount a root filesystem with read/write permissions)
3) sudo mkdir /AMD_Kexts/
(make a directory to store the AMD drivers in case you'll need them in future)
4) sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/
(move the AMD drivers)
5) sudo rm -rf /System/Library/Caches/com.apple.kext.caches/
(remove the AMD drivers cache)
6) sudo mkdir /System/Library/Caches/com.apple.kext.caches/
(just in case OS X will be dumb and will not recreate this directory, I am creating it for OS X)
7) sudo touch /System/Library/Extensions/
(to update the timestamps so that new driver caches - without AMD drivers - will be definitely rebuilt)
8) sudo umount /
(umount a partition to guarantee that your changes are flushed to it)
9) sudo reboot
The bootups failed, and I fell asleep while the MBP went through its bootup loop (I saw a few loops before I dozed off). I'm not sure when it actually happened, but,
when I woke up a few hours later, it's working again. I'm not sure if removing the AMD Kexts helped (it probably did), and right now, I don't want to risk having to do another restart just to check if it won't switch under switchGPU/gfxcardStatus.
I'll be posting observation updates over the next few days. For the meantime, at least, my MBP is working again. I know it's temporary, but, I'm planning to get another laptop soon.
Addt'l: Here's my System Configuration and it shows it's currently on integrated.
Thanks again,
@AppleMacFinder!
Update:
Seems the kext removal process didn't work at all. I still have the kexts in their original place. Though I can restart and shutdown properly most of the time, sometimes, it goes on a startup loop at least twice before fully starting up.
Cody's version of gfxcardstatus now freezes while Steve Chows version is working. The laptop works almost most of the time, but now freezes when I open a Facebook chat window (which I suppose tries to switch to the dGPU). It's done that before this fix.