MP 1,1-5,1 Innie: A fix for PCI drives seen as external

cdf

macrumors 6502a
Original poster
Jul 27, 2012
720
574
It is well known that macOS sees PCI drives in a cMP as external. In the past, there have been several attempts to fix this annoyance, typically through codeless kexts and driver patches. However, these approaches are far from perfect.

Codeless kexts affect the properties of all (even non-PCI) drives. We therefore have to settle for calling all drives SATA or PCI. Patches can be dangerous, especially if applied to critical kexts. After system updates, these modifications can prevent the system from booting. There are also bootloader approaches, but these are better suited for hacks and not real Macs.

The problem is not just cosmetic. Improperly identified drives can cause issues for Boot Camp Assistant and the macOS installer.

I am currently working on an actual kext that addresses the problem. The kext simply changes the pertinent properties of PCI drives so that they can be seen as internal. So far, the approach works nicely with the 256 GB Apple SSUBX and the 240 GB Kingston HyperX Predator, the drives which I possess. This is how the drives now appear, for example, under Storage in About this Mac:

Internal.png

If there is interest in the community for the kext, I will make it available. However, to support other drives, particularly NVMe ones, I would need the names of PCI drives reported in System Information:

Devices.png

And, of course, some brave testers. Let me know if you're interested!

Current device list: Innie should now work with any SATA (AHCI) or NVMe drive.

Please refer to Post #9 for the kext and installation instructions.
 
Last edited:

crjackson2134

macrumors 601
Mar 6, 2013
4,727
1,855
Charlotte, NC
Thank you for your hard work, It's much appreciated by many in the Mac community. I personally have a mix of all these drive types and in fact boot from NVMe. Personally for my part, I have no need or issue with the default behavior of macOS identities assigned to the various drive types. Many people do however, and I'm sure this thread will soon be expanding with comments from users who need a change in drive-type identifier assignments.

Once again, community support outshines that of the OEM. Please continue the good work that you are doing.
 

cdf

macrumors 6502a
Original poster
Jul 27, 2012
720
574
I use a bootable NVME drive (thanks again @tsialex) and would like to test but I am a "complete kext newbie" so I need a good guide ;-)
Great. For now I need to build up a list of devices for testing. Just go to the Apple () menu > About this Mac > System Report... > NVMExpress (or SATA/SATA Express) and respond with the name of your device (see the second image in the first post), something perhaps like "Samsung SSD 960 EVO 250GB."
 
  • Like
Reactions: Catzjes

Catzjes

macrumors newbie
Aug 23, 2018
24
11
Utrecht, The Netherlands
Great. For now I need to build up a list of devices for testing. Just go to the Apple () menu > About this Mac > System Report... > NVMExpress (or SATA/SATA Express) and respond with the name of your device (see the second image in the first post), something perhaps like "Samsung SSD 960 EVO 250GB."
Thanks for the pointer, here you go :)

Screen Shot 2018-09-10 at 22.02.36.png
 

bookemdano

macrumors 65816
Jul 29, 2011
1,285
735
Awesome work! I've got a WD Black 500GB NVMe drive (the 2018 version that has much better performance). Here's how it's identified in System Profiler:

WDS500G2X0C-00L350
 
  • Like
Reactions: dabotsonline

Macschrauber

macrumors 6502a
Dec 27, 2015
760
298
Germany
AHCI blade:

SAMSUNG MZHPU512HCGL-00000:



Capacity: 512,11 GB (512.110.190.592 bytes)

Model: SAMSUNG MZHPU512HCGL-00000
 

two-mac-jack

macrumors newbie
Mar 25, 2016
27
16
With the Amfeltec Squid I have:

Generic AHCI Controller
Kingston SHPM2280P2/960G

Generic SATA Express Controller
SAMSUNG MZHPV256HDGL-00000

Generic SATA Express Controller
SAMSUNG MZHPV512HDGL-00000
 

cdf

macrumors 6502a
Original poster
Jul 27, 2012
720
574
The kext is called "Innie" and is a Lilu plugin. Lilu is an open-source kext that provides a unified platform to apply various fixes (see https://github.com/acidanthera/Lilu). For the latest version of Innie, I recommend the latest release version of Lilu (see the releases page).

The latest version, 1.2.0, brings support for Catalina. The previous debug version of Innie remains available.

To install Innie, please carry out these steps:

0) Disable SIP. (SIP can be enabled again after.)
1) Download Lilu. The file (unzipped) will be called Lilu.kext.
2) Control-click on Lilu.kext and select Show Package Contents. You will see the folder "Contents." Open it.
3) In Contents, create a new folder called "Plugins" (exactly like this, but without quotation marks, of course). This is where Innie (and any other plugins) will live.
4) Copy Innie into the Plugins folder.
5) Now copy Lilu.kext to /Library/Extensions. You will need to authorize this.
6) Open terminal. Enter the following commands:

Code:
sudo chmod -R 755 /Library/Extensions/Lilu.kext
sudo chown -R root:wheel /Library/Extensions/Lilu.kext
sudo touch /Library/Extensions
sudo kextcache -update-volume /
Wait for the last command to complete.
7) Reboot.

If all goes well, your drive will now be seen as internal.
 

Attachments

Last edited:

bookemdano

macrumors 65816
Jul 29, 2011
1,285
735
Thanks cdf. Does SIP have to stay disabled in order to use Innie (clever name btw!)? Or can it be re-enabled after installing the kext?
 

cdf

macrumors 6502a
Original poster
Jul 27, 2012
720
574
Thanks cdf. Does SIP have to stay disabled in order to use Innie (clever name btw!)? Or can it be re-enabled after installing the kext?
Once the kext installed, SIP can indeed be re-enabled.
 

h9826790

macrumors G5
Apr 3, 2014
13,987
6,603
Hong Kong
May I know if the intension for this project is to only provide fix for PCIe SSD, or including SATA SSD on PCIe cards?
 

cdf

macrumors 6502a
Original poster
Jul 27, 2012
720
574
where is Innie?
Not to worry it's coming. I'm currently building up the device list. Check post #9 later.

May I know if the intension for this project is to only provide fix for PCIe SSD, or including SATA SSD on PCIe cards?
I initially wrote the kext for my Apple SSUBX drive, and it works great. It also works for my Kingston HyperX Predator. These are AHCI disks on simple PCI adapters. After some testing here, we will be able to see if the kext can handle other disks, even NVMe ones. This is the intention right now. However, if the effectiveness of the approach can be proven, we can certainly try other cases.
 
Last edited:
  • Like
Reactions: h9826790

misanthrophy

Suspended
Aug 16, 2018
165
43
I have a:

SAMSUNG MZVPV256HDGL-00000

NVMe blade!

Thank you for that project! If that will work, my system is complete. Haha.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.