Jump to content

AHCI Changes in Big Sur: Generic AHCI Controller and SATA Hot Plug


miliuco
 Share

19 posts in this topic

Recommended Posts

Big Sur has removed the AppleIntelPchSeriesAHCI class in AppleAHCIPort.kext so the Intel family AHCI drivers are no longer recognized as such and are shown as generic.
 

ahci.png.886b007d9d5eb9cd160a68a4f61b4dc0.png

Some users dislike seeing the Intel driver for a certain family come out as generic although this is a purely cosmetic issue that does not appear to interfere with the performance or behavior of the drivers.

The solution found, originally proposed from the Dortania website, consists of using the modified macOS Catalina extension AppleAHCIPort.kext (CtlnaAHCIPort.kext) with the identifiers of each Intel driver family.
To use CtlnaAHCIPort it is recommended:

  • Block AppleAHCIPort.kext from Big Sur to avoid conflicts (I have tried blocking and without blocking the Big Sur kext and in both cases it has worked correctly)
  • Set the MinKernel parameter to 20.0.0
  • You can do without the extension that we are using to recognize unsupported SATA.


But I have encountered the problem that, if I use CtlnaAHCIPort, in exchange for having the AHCI driver well recognized, I lose the ability to hot plug or unplug SATA disks.
By simply removing CtlnaAHCIPort.kext, the SATA Hot Plug option works again.

Summary: Big Sur showing the Intel AHCI driver as generic does not seem to be a real problem, only cosmetic. With the CtlnaAHCIPort extension the driver displays correctly but the SATA Hot Plug option is lost.

You have to choose: (Generic AHCI Controller + SATA Hot plug) or (well identified AHCI Controller - SATA Hot plug).


Note: This is not exclusive behavior of hackintosh, even in my iMac of the year 2015 it's Generic AHCI Controller.

Edited by miliuco
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

I didn't remember the @rd8111 article. Thank you.
What I try to highlight in my article and maybe I have not succeeded is that, if someone uses the SATA Hot Plug patch and installs CtlnAHCIPort.kext, they will lose the patch option because the identifier "com.apple.driver.AppleAHCIPort" that it's used in the patch is not valid when we have CtlnAHCIPort. This is the most important.

I suppose that with the method proposed by @rd8111 it would be possible to have a well-identified AHCI Controller and also Sata hot plug.

Link to comment
Share on other sites

  • 1 year later...
  • 1 month later...
On 12/13/2020 at 8:11 AM, miliuco said:

Big Sur has removed the AppleIntelPchSeriesAHCI class in AppleAHCIPort.kext so the Intel family AHCI drivers are no longer recognized as such and are shown as generic.
 

ahci.png.886b007d9d5eb9cd160a68a4f61b4dc0.png

Some users dislike seeing the Intel driver for a certain family come out as generic although this is a purely cosmetic issue that does not appear to interfere with the performance or behavior of the drivers.

The solution found, originally proposed from the Dortania website, consists of using the modified macOS Catalina extension AppleAHCIPort.kext (CtlnaAHCIPort.kext) with the identifiers of each Intel driver family.
To use CtlnaAHCIPort it is recommended:

  • Block AppleAHCIPort.kext from Big Sur to avoid conflicts (I have tried blocking and without blocking the Big Sur kext and in both cases it has worked correctly)
  • Set the MinKernel parameter to 20.0.0
  • You can do without the extension that we are using to recognize unsupported SATA.


But I have encountered the problem that, if I use CtlnaAHCIPort, in exchange for having the AHCI driver well recognized, I lose the ability to hot plug or unplug SATA disks.
By simply removing CtlnaAHCIPort.kext, the SATA Hot Plug option works again.

Summary: Big Sur showing the Intel AHCI driver as generic does not seem to be a real problem, only cosmetic. With the CtlnaAHCIPort extension the driver displays correctly but the SATA Hot Plug option is lost.

You have to choose: (Generic AHCI Controller + SATA Hot plug) or (well identified AHCI Controller - SATA Hot plug).


Note: This is not exclusive behavior of hackintosh, even in my iMac of the year 2015 it's Generic AHCI Controller.

 

@miliuco

 

by hot plug do you mean, your external USB drive, ZSATA and this types? USB drives?

 

Or

 

Hot pluggin into a server? with a bay that is like HP 9000 Servers? Sun Solaris boxes?

 

Nice points guys these are crucial indeed. A small change can be detrimental in functionality like DNA or cells.

Each having it's unique Identifier. Like UUID's, PID's, and so on.

 

@miliuco

 

Your findings are for Big Sur this CtlnaAHCIPort.kext is no go without further editing and modifications to internal mechanisms?

Or does some kind soul have a working fix?

 

What I have done is used Clover Configurator just to get information for the PciRoots. This way I know if the driver is loaded (kext patch worked)

Though it does become somewhat of a bloating boat in the observance, it is good measure to know for as Herve' has so kindly pointed out

by his photos.  This is definitely crucial and good measure.

 

We are after all 'Sys' Admins of our own rigs.

 

Thank you for the information it is good to see and understand.

 

 

Edited by makk
Link to comment
Share on other sites

@makk

By hot plug I mean SATA hot plug. Disks plugged into SATA ports set as hot plug capable are displayed as external and can be connected - disconnected without shutting down macOS.

 

I don't use CtlnaAHCIPort anymore because with recent OpenCore versions on Monterey my SATA device is well detected (not generic).

Link to comment
Share on other sites

48 minutes ago, miliuco said:

@makk

By hot plug I mean SATA hot plug. Disks plugged into SATA ports set as hot plug capable are displayed as external and can be connected - disconnected without shutting down macOS.

 

I don't use CtlnaAHCIPort anymore because with recent OpenCore versions on Monterey my SATA device is well detected (not generic).

 

@miliuco

 

right the tech is upto speed.

 

I'm searching for a better NVMexxx.kext for this old Intel SSD M.2 which seems to offend the IONVMeApple version.

Had three panics and shutdowns.

I have right now NVMeFix.kext and some SSDT-DNVMe.aml these are not helping much.

 

When I have the CtlnaAHCIPort it helps quite a bit but, when I plug in my external USB drive I have to plug in a USB Thumb drive and leave it there for a bit.

then connect Ext USB Drive.  I never had this problem before until I read this post! hahaha.. seriously.

 

One other thing I installed Windows 10 Home and it hijacked the BootLoader...hahaha..

So I have to ask your expert opinion on these.

 

I have just finished updating all the drivers for Windows, restarted, then no OpenCore!  Not even in the BIOS.  

Had to use SD slot which I have on backup.  

 

I think maybe this Intel SSD M2 conflicts with Apple software for this.

Heading to Micro Center later to pickup a Samsung 980 EVO M2 1Tb and upgrade the RAM to 32GB DDR4 3200MHZ.

 

I have to clone the drive to my external and this is causing hicccups.

 

Thank you for the find.

I've read on the NET that CtlnaAHCIPort is good for Big Sur and Monterey.

Link to comment
Share on other sites

@makk

 

Installing Windows after macOS what has happened to you can happen, Windows installs its boot loader on the macOS EFI partition. It is safer to disconnect the macOS disk while installing Windows.


When I have had this problem, I have been able to solve it like this:
- delete the Microsoft folder from the macOS EFI partition
- re-create the EFI partition on the Windows disk
- remove the OpenCore entries from the BIOS boot menu leaving the macOS disk as the first device.

 

To re-create the Windows EFI partition:

 

Boot the computer using the Windows 7/8/8.1/10 installation media.

 

On the first screen, press SHIFT+F10 to bring up the command prompt.

 

Run the following commands at the command prompt:

  • diskpart
  • list disk
  • select disk # Note: Select the disk where you want to add the EFI System partition
  • list partition
  • select partition # Note: Select the Windows OS partition
  • shrink desired=100
  • create partition efi size=100
  • format quick fs=fat32 label="EFI"
  • assign letter=s
  • list partition
  • select partition # Note: Select the Windows OS partition
  • assign letter=w
  • list volume # Note: Note the volume letter where the Windows OS is installed
  • exit
  • bcdboot Z:\windows /s S: # Note: Replace "Z" with the volume letter of the Windows OS partition.

BCDBoot copies the boot files from the Windows partition to the EFI System partition and creates the BCD store in the same partition.

Remove the Windows installation media and restart the computer into your BIOS settings and set the SSD as the First Boot Device.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

@miliuco

 

Hi miliuco!

 

I have a situation and thanks again for the above! where I upgraded to Samsung 980 EVO NVMe SSD M.2 and 

32GB DDR4 Sodimm 3200MHz.

 

New drive new install of Monterey 12.3.1

 

After installing, 

 

I'm seeing  with the -v option- the "GPU - GFX firmware update trying to but cannot get msgs", going on during boot in OpenCore.  This is causing a no acceleration in Desktop mode and no audio. Very lagging to say the least. 

1 windows slow

2 sound kaput

3 just terrible

 

I've never seen this nor experienced this before.

And I have never worked on Dual GPU systems prior to this.

 

During the install process being that the OS is being installed and being finalized but not fresh to run, don't see these msgs flash upon the screen.

 

This is on my Acer Nitro 5 Laptop with Kaby Lake specs as follows: 

 

Intel Core i5 7300HQ

Intel HD 630

NVidia GTX 1050 Ti 

 

I'm not sure why this is occurring other than, ??

 

Here is my config can you point me in the right direction and have you experienced this?

 

Before upgrading to new SSD and memory I ran Big Sur, Catalina and did not experience this.

It is only after the upgrades has this occurred.  Rather strange.

I also flashed the BIOS prior to install MacO

 

 

UPDATE: SOLVED

old Kexts!! haha

 

config.plist.zip

Edited by makk
Link to comment
Share on other sites

On 4/13/2022 at 11:21 AM, miliuco said:

@makk

 

Installing Windows after macOS what has happened to you can happen, Windows installs its boot loader on the macOS EFI partition. It is safer to disconnect the macOS disk while installing Windows.


When I have had this problem, I have been able to solve it like this:
- delete the Microsoft folder from the macOS EFI partition
- re-create the EFI partition on the Windows disk
- remove the OpenCore entries from the BIOS boot menu leaving the macOS disk as the first device.

 

To re-create the Windows EFI partition:

 

Boot the computer using the Windows 7/8/8.1/10 installation media.

 

On the first screen, press SHIFT+F10 to bring up the command prompt.

 

Run the following commands at the command prompt:

  • diskpart
  • list disk
  • select disk # Note: Select the disk where you want to add the EFI System partition
  • list partition
  • select partition # Note: Select the Windows OS partition
  • shrink desired=100
  • create partition efi size=100
  • format quick fs=fat32 label="EFI"
  • assign letter=s
  • list partition
  • select partition # Note: Select the Windows OS partition
  • assign letter=w
  • list volume # Note: Note the volume letter where the Windows OS is installed
  • exit
  • bcdboot Z:\windows /s S: # Note: Replace "Z" with the volume letter of the Windows OS partition.

BCDBoot copies the boot files from the Windows partition to the EFI System partition and creates the BCD store in the same partition.

Remove the Windows installation media and restart the computer into your BIOS settings and set the SSD as the First Boot Device.

@miliuco

 

Hi didn't work.

It seems that on this box,

some secure mode where Windows takes priority ?

 

Also I cannot login into any of the MacOS's I have on M2. I can only login into Windows.

The bootloader for to get to MacOS's I have to use USB now.

Before I did not have this problem.

On my HP probook I login into both Windows and HP and can boot either.

 

On this Acer only Windows.

 

Have to find a fix

 

After I installed windows all this happened on my Acer. I am locked out from logging in to MacOS's

I cleared TPM and disabled it,

Secure boot cleared the keys and disabled Secure Boot

 

Thank you!

 

Edited by makk
Link to comment
Share on other sites

The thing is I need Windows on this SSD to update the firmware from Samsung.

Cohabitate on a small partition. 

Unfortunately, Samsung doesn't have so far as I can tell, Samsung Magician for Mac.

So I had to create Windows partition on this SSD. 

But Windows hijacked the bootloader.

 

I have two other laptops.  

one is dedicated Windows, and the other is dual booting on the same disk Windows and Mac for other SSD software to update firmware.

 

 

the other methods to flash the firmware from a disk is not a good option in this case. 

 

 

 

Link to comment
Share on other sites

On 4/13/2022 at 11:21 AM, miliuco said:

@makk

 

Installing Windows after macOS what has happened to you can happen, Windows installs its boot loader on the macOS EFI partition. It is safer to disconnect the macOS disk while installing Windows.


When I have had this problem, I have been able to solve it like this:
- delete the Microsoft folder from the macOS EFI partition
- re-create the EFI partition on the Windows disk
- remove the OpenCore entries from the BIOS boot menu leaving the macOS disk as the first device.

 

To re-create the Windows EFI partition:

 

Boot the computer using the Windows 7/8/8.1/10 installation media.

 

On the first screen, press SHIFT+F10 to bring up the command prompt.

 

Run the following commands at the command prompt:

  • diskpart
  • list disk
  • select disk # Note: Select the disk where you want to add the EFI System partition
  • list partition
  • select partition # Note: Select the Windows OS partition
  • shrink desired=100
  • create partition efi size=100
  • format quick fs=fat32 label="EFI"
  • assign letter=s
  • list partition
  • select partition # Note: Select the Windows OS partition
  • assign letter=w
  • list volume # Note: Note the volume letter where the Windows OS is installed
  • exit
  • bcdboot Z:\windows /s S: # Note: Replace "Z" with the volume letter of the Windows OS partition.

BCDBoot copies the boot files from the Windows partition to the EFI System partition and creates the BCD store in the same partition.

Remove the Windows installation media and restart the computer into your BIOS settings and set the SSD as the First Boot Device.

 

@miliuco

 

Hi Miliuco

 

I had to make some modifications to your suggestion:

 

shrink desired=100 doesn't work

delete part override

create partition efi size=100

format quick fs=fat32 --no label

assign letter="B"

assign letter="W" for Windows partition

exit

bcdboot W:\Windows /s B:

 

boot to Windows

bcdedit /set "{bootmgr}" path "\EFI\OC\OpenCore.efi"

 

verify bcdedit

returns

Boot Manager as \EFI\OC\OpenCore.efi

 

Reboot

OpenCore Boot Menu

 

Good to go

Thank you

 

@miliuco

 

I have the Generic as well for the Sata information with that ctlnaAHCIPort.kext turned off.

 

Maybe there's some option in info.plist to edit to have the externals available?

  • Like 1
Link to comment
Share on other sites

@makk

Noted your changes re-creating Windows EFI partition. shrink desired=100 worked for me last time I needed it.

Last commands are for set OpenCore as main bootloader. My text is for set Windows EFI as boot partition.

 

About CtlnaAHCIPort.kext:

It's recommended to block the system AppleAHCIPort.kext to avoid conflicts (I have tested it blocking and without blocking the kext and in both cases it has worked fine)
You can skip any extension to recognise unsupported SATA chipsets (if used).

 

CtlnaAHCIPort.kext has inside an Info.plist file, open it and you'll see, in the IOKitPersonalities section, Intel10SeriesAHCI, Intel11SeriesAHCI, Intel12SeriesAHCI, Intel5SeriesAHCI... parts, each of them has an IONameMatch key containing device-ids in the form pci8086,xxxx. If there is not yours, add it (check your device-id with Hackintool or gfxutil). But probably it's already there.

 

 

Link to comment
Share on other sites

6 hours ago, miliuco said:

@makk

Noted your changes re-creating Windows EFI partition. shrink desired=100 worked for me last time I needed it.

Last commands are for set OpenCore as main bootloader. My text is for set Windows EFI as boot partition.

 

About CtlnaAHCIPort.kext:

It's recommended to block the system AppleAHCIPort.kext to avoid conflicts (I have tested it blocking and without blocking the kext and in both cases it has worked fine)
You can skip any extension to recognise unsupported SATA chipsets (if used).

 

CtlnaAHCIPort.kext has inside an Info.plist file, open it and you'll see, in the IOKitPersonalities section, Intel10SeriesAHCI, Intel11SeriesAHCI, Intel12SeriesAHCI, Intel5SeriesAHCI... parts, each of them has an IONameMatch key containing device-ids in the form pci8086,xxxx. If there is not yours, add it (check your device-id with Hackintool or gfxutil). But probably it's already there.

 

 

@miliuco

 

Great news there. I will take a look.

 

great news twice, Windows boots from inside OpenCore on dual boot on same driver in two laptops.

 

The OC MOD by NDK has an option called EnableForAll in ACPI>Quirks.  Keeping this in disabled, false loads ACPI only for Mac.

The second one is in Booter>Quirks>EnableForAll


These two helps keep the us sane and cohabitating.

 

You may want to try it just because now you have the ability to load APCI only for Macs or if you have other flavours of UNIX spinoffs.

 

Thank you again sir! Very helpful always!

 

Have a great Easter ..

 

  • Like 1
Link to comment
Share on other sites

  • 3 months later...
 Share

×
×
  • Create New...