Innie: A fix for PCI drives seen as external

Discussion in 'Mac Pro' started by cdf, Sep 10, 2018.

  1. cdf, Sep 10, 2018
    Last edited: Sep 16, 2018

    cdf macrumors regular

    Joined:
    Jul 27, 2012
    #1
    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.
     
  2. Catzjes macrumors newbie

    Catzjes

    Joined:
    Aug 23, 2018
    Location:
    Utrecht, The Netherlands
    #2
    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 ;-)
     
  3. crjackson2134 macrumors 68040

    crjackson2134

    Joined:
    Mar 6, 2013
    Location:
    Charlotte, NC
    #3
    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.
     
  4. cdf thread starter macrumors regular

    Joined:
    Jul 27, 2012
    #4
    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."
     
  5. Catzjes macrumors newbie

    Catzjes

    Joined:
    Aug 23, 2018
    Location:
    Utrecht, The Netherlands
    #5
    Thanks for the pointer, here you go :)

    Screen Shot 2018-09-10 at 22.02.36.png
     
  6. bookemdano macrumors 6502a

    Joined:
    Jul 29, 2011
    #6
    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
     
  7. Macschrauber macrumors regular

    Macschrauber

    Joined:
    Dec 27, 2015
    Location:
    Germany
    #7
    AHCI blade:

    SAMSUNG MZHPU512HCGL-00000:



    Capacity: 512,11 GB (512.110.190.592 bytes)

    Model: SAMSUNG MZHPU512HCGL-00000
     
  8. two-mac-jack macrumors newbie

    Joined:
    Mar 25, 2016
    #8
    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
     
  9. cdf, Sep 10, 2018
    Last edited: Sep 16, 2018

    cdf thread starter macrumors regular

    Joined:
    Jul 27, 2012
    #9
    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 our testing purposes, I recommend the latest debug version (see the releases page).

    An updated version of Innie that works with any SATA (AHCI) or NVMe device has been attached to this post.

    Warning: Please make sure that you understand the risks of trying early releases of software, particularly kexts. Back up all data. Should your system become unbootable, you will need to get into recovery mode, open terminal, and delete Lilu by entering the following command:

    Code:
    rm -r /Volumes/"Macintosh HD"/Library/Extensions/Lilu.kext
    (You may have to replace "Macintosh HD" by the actual name of your system disk in quotation marks, if it is different.)

    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, just like mine.
     

    Attached Files:

  10. bookemdano macrumors 6502a

    Joined:
    Jul 29, 2011
    #10
    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?
     
  11. cdf thread starter macrumors regular

    Joined:
    Jul 27, 2012
    #11
    Once the kext installed, SIP can indeed be re-enabled.
     
  12. MIKX macrumors 6502a

    MIKX

    Joined:
    Dec 16, 2004
    Location:
    Japan
    #12
    It would be nice to see this on the Desktop after bootup :)

    M.2 desktop icon.png
     
  13. flowrider macrumors 601

    flowrider

    Joined:
    Nov 23, 2012
    #13
    ^^^^The icon of the drive makes no difference whether it shows as internal or external. A simple copy/paste operation will change the icon.

    Lou
     
  14. bookemdano macrumors 6502a

    Joined:
    Jul 29, 2011
    #14
    Great! Did you already update it with the WD black? I'll test it Tuesday afternoon in Mojave PB9 and report back!
     
  15. MoerBoer macrumors member

    Joined:
    Jan 27, 2018
    #15
    I'm running this one:

    Kingston SHPM2280P2/480G
     
  16. ivhrb macrumors newbie

    ivhrb

    Joined:
    Sep 11, 2018
  17. h9826790 macrumors G4

    h9826790

    Joined:
    Apr 3, 2014
    Location:
    Hong Kong
    #17
    May I know if the intension for this project is to only provide fix for PCIe SSD, or including SATA SSD on PCIe cards?
     
  18. cdf, Sep 11, 2018
    Last edited: Sep 11, 2018

    cdf thread starter macrumors regular

    Joined:
    Jul 27, 2012
    #18
    Not to worry it's coming. I'm currently building up the device list. Check post #9 later.

    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.
     
  19. cdf thread starter macrumors regular

    Joined:
    Jul 27, 2012
    #19
    Innie is now available. Please see post #9.
     
  20. misanthrophy macrumors regular

    misanthrophy

    Joined:
    Aug 16, 2018
    #20
    I have a:

    SAMSUNG MZVPV256HDGL-00000

    NVMe blade!

    Thank you for that project! If that will work, my system is complete. Haha.
     
  21. Catzjes macrumors newbie

    Catzjes

    Joined:
    Aug 23, 2018
    Location:
    Utrecht, The Netherlands
    #21
    Samsung SSD 970 EVO 250GB Confirmed :) THANKS!!!!

    Screen Shot 2018-09-11 at 22.15.37.png
     
  22. cdf thread starter macrumors regular

    Joined:
    Jul 27, 2012
    #22
    Nice. By the way, do you have two of them?
     
  23. Catzjes macrumors newbie

    Catzjes

    Joined:
    Aug 23, 2018
    Location:
    Utrecht, The Netherlands
  24. cdf thread starter macrumors regular

    Joined:
    Jul 27, 2012
    #24
    OK. Innie should also work with two identical drives, but this remains to be tested.
     
  25. Catzjes macrumors newbie

    Catzjes

    Joined:
    Aug 23, 2018
    Location:
    Utrecht, The Netherlands
    #25
    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) :)
     

Share This Page