Become a MacRumors Supporter for $25/year with no ads, private forums, and more!
  • Did you order new AirTags? We've opened a dedicated AirTags forum.

cdf

macrumors 65816
Original poster
Jul 27, 2012
1,342
1,249
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,750
1,908
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.
 
Comment

cdf

macrumors 65816
Original poster
Jul 27, 2012
1,342
1,249
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
Comment

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
 
Comment

bookemdano

macrumors 65816
Jul 29, 2011
1,421
801
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
Comment

Macschrauber

macrumors 65816
Dec 27, 2015
1,305
486
Germany
AHCI blade:

SAMSUNG MZHPU512HCGL-00000:



Capacity: 512,11 GB (512.110.190.592 bytes)

Model: SAMSUNG MZHPU512HCGL-00000
 
Comment

two-mac-jack

macrumors member
Mar 25, 2016
31
17
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
 
Comment

cdf

macrumors 65816
Original poster
Jul 27, 2012
1,342
1,249
The latest version of Innie is 1.3.0:


Making PCIe drives appear internal with Innie

You will need:
Download the latest release version. The uncompressed folder contains the file Innie.kext.​

Installation
  1. Boot into macOS with SIP disabled.
  2. For macOS Catalina or later, enter sudo mount -uw / in terminal. You may need to authorize this.
  3. Copy Innie.kext to /Library/Extensions. You may need to authorize this.
  4. Enter the following commands in terminal:
    Code:
    sudo chmod -R 755 /Library/Extensions/Innie.kext
    sudo chown -R root:wheel /Library/Extensions/Innie.kext
    sudo touch /Library/Extensions
    sudo kextcache -update-volume /
  5. Wait for the last command to complete.
  6. For macOS Big Sur, approve the installation in System Preferences > Security & Privacy.
  7. Reboot.
If all goes well, your drive will now be seen as internal.

Legacy instructions

These instructions apply to Innie 1.2.1 and earlier. For these versions, Innie is a Lilu plugin.

You will need:

Lilu
Download the latest release version. The uncompressed folder contains the file Lilu.kext.​
Innie (see also attached to this post)​
Download version 1.2.1 or earlier. The uncompressed folder contains the file Innie.kext.​

Installation
  1. Disable SIP.
  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 will go.
  4. Copy Innie.kext into the Plugins folder.
  5. For macOS Catalina or later, enter sudo mount -uw / in terminal. You may need to authorize this.
  6. Now copy Lilu.kext to /Library/Extensions. You may need to authorize this.
  7. Enter the following commands in terminal:
    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 /
  8. Wait for the last command to complete.
  9. For macOS Big Sur, approve the installation in System Preferences > Security & Privacy.
  10. Reboot.
 

Attachments

  • 1.0.9 (DEBUG).zip
    10.6 KB · Views: 2,070
  • 1.2.0 (RELEASE).zip
    8.6 KB · Views: 1,579
Last edited:
Comment

bookemdano

macrumors 65816
Jul 29, 2011
1,421
801
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?
 
Comment

cdf

macrumors 65816
Original poster
Jul 27, 2012
1,342
1,249
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.
 
Comment

MIKX

macrumors 68000
Dec 16, 2004
1,799
670
Aussie in Japan
It would be nice to see this on the Desktop after bootup :)

M.2 desktop icon.png

EDIT :I'm aware that the drive icons appearance is purely cosmetic.
 
Last edited:
  • Like
Reactions: dabotsonline
Comment

h9826790

macrumors P6
Apr 3, 2014
15,195
7,511
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?
 
Comment

cdf

macrumors 65816
Original poster
Jul 27, 2012
1,342
1,249
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
Comment

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.
 
Comment

Catzjes

macrumors newbie
Aug 23, 2018
24
11
Utrecht, The Netherlands
OK. Innie should also work with two identical drives, but this remains to be tested.
Also confirmed to work on Mojave volume (earlier confirmation was for High Sierra, had to repeat all terminal steps but just copied the edited Innie from HS library to Mojave library) :)
 
  • Like
Reactions: cdf
Comment
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.