dortania / bugtracker

Dortania Bugtracker
108 stars 7 forks source link

Kernel Patch for I225 Ethernet Controller no longer works in macOS 11.4 #213

Closed 5T33Z0 closed 2 years ago

5T33Z0 commented 3 years ago

Thanks for the great guide!

EDIT: Changing DeviceProperties > device-id" fromF2150000(Data) to0x15f28086` (String) → Fixes Ethernet on Big Sur 11.4. But unfortunately this is not working in Monterey yet. But Progress at least.

vit9696 commented 3 years ago

As far as I know, this is garbage. The explanation is here: https://www.applelife.ru/posts/944246/. On newer GA boards enabled VT-d sometimes breaks most network cards, so either DisableIoMapper should be enabled, or VT-d needs to be disabled in the BIOS settings.

5T33Z0 commented 3 years ago

It does not work in Monterey, wheter you think it is "garbage" or not!

vit9696 commented 3 years ago

You mentioned 11.4 in the issue and the garbage reference was to your device-id value. As for macOS 12, it is in early beta stage, and no beta support is provided for obvious reasons. To be fair, Monterey may have dropped kext driver indeed.

xMilesManx commented 3 years ago

Hi there,

I would like to chime in on this issue in particular. I believe this patch is indeed not working in 11.4 and it is completely unrelated to Vt-d.

I have an asus prime z490A with this I225-V network controller. This patch only works on 11.3 and below.

After updating 11.4, with the same patches applied, the machine will panic during boot or immediately after login, or it will freeze altogether. It will boot with no issue if I unplug the Ethernet cable completely.

I believe the fakepccid kext solution still works however.

There is more info here about my exact symptoms from another user: https://reddit.com/r/hackintosh/comments/mx1mp3/big_sur_114_rx_6800_success_10900_asus_prime/

And here is a post outline potential reason why it broke from 11.4 beta 1

https://www.tonymacx86.com/threads/gigabyte-z490-vision-d-thunderbolt-3-i5-10400-amd-rx-580.298642/page-598#post-2247206

5T33Z0 commented 3 years ago

The Kernel Patch in the Guide is for Catalina and Big Sur up to 11.3. In 11.4 it is indeed no longer required:

  1. Disable the Kernel Patch for com.apple.driver.AppleIntelI210Ethernet
  2. Go to DeviceProperties > PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) and change the Device ID to F3150000
vit9696 commented 3 years ago

The panic is specific to Gigabyte boards. Disabling VT-d fixed it for some setups, but perhaps not all. The patch works fine on ASUS with I225, but you can disable it and remove the DeviceProperties addition. It should work fine with the DEXT driver in 11.4.

xMilesManx commented 3 years ago

The Kernel Patch in the Guide is for Catalina and Big Sur up to 11.3. In 11.4 it is indeed no longer required:

  1. Disable the Kernel Patch for com.apple.driver.AppleIntelI210Ethernet
  2. Go to DeviceProperties > PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) and change the Device ID to F3150000

Okay so after all day of trial and error, the only solution that worked for me was the suggestion you made in the original post: Changing DeviceProperties > device-id from F2150000(Data) to 0x15f28086 (String) This fixed ethernet and stopped all Kernel panics and freezes.

Upon simply removing DeviceProperties and kernel patch as written in the guide, the com.apple.driver.AppleIntelI210Ethernet loads, but will cause KP immediately when plugged and receives an IP address.

Adding DeviceProperties > device-id F2150000(Data) results in no change and still KP. Adding DeviceProperties > device-id F3150000(Data) results in no change either and still KP.

To be perfectly clear I do not have any fakepciid kexts installed.

Im not sure what the issue is, but either way the patches in the guide as written do not work for the Asus prime Z490A on 11.4

Please let me know if there is something else I should be doing instead.

Edit: @5T33Z0 Okay so thanks to you and stumbling across this issue it appears the fix for 11.4 is as simple as changing my DeviceProperties > PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0) device-id to F2158680 instead of F2150000 as the guide suggests.

I know this isn't a help forum but thanks for the replies guys.

Edit 2: So this patch also fixed the ethernet for the i225v on Monterey beta 1 as well! Woohoo!

vit9696 commented 3 years ago

Are you sure you do not have FakePCIID or anything?

dreamwhite commented 3 years ago

Are you sure you do not have FakePCIID or anything?

Good evening vit, today I installed macOS on a Asus Z490-I with a I225-V NIC and got the LAN working by simply changing the device-id of the device to F2158680 as suggested by the comment above yours. The installation is clean and works flawlessly without any interruption of the internet connection with the LAN cable

xMilesManx commented 3 years ago

Are you sure you do not have FakePCIID or anything?

Thanks for getting back to this thread! I'm 100% positive. I have a completely bare bones config that is done exactly according to the comet lake guide.

If I follow the guide as written, the Asus z490A will not boot anything above 11.3 if the cable is plugged in. It will crash and kernel panic relating to AppleIntelI210Ethernet

The only changes needed to be made are to remove com.apple.driver.AppleIntelI210Ethernet kernel patch and To change device-id from F2150000 to F2158680

Attached is current config as proof. This is currently being written from Monterey Beta 1 using I225v Ethernet.

config.plist.zip

vit9696 commented 3 years ago

That looks a bit strange, can you provide the IOReg? The patch on com.apple.driver.AppleIntelI210Ethernet is different in 11.4, and by default DEXT driver should load, so it is getting a bit strange.

xMilesManx commented 3 years ago

That looks a bit strange, can you provide the IOReg? The patch on com.apple.driver.AppleIntelI210Ethernet is different in 11.4, and by default DEXT driver should load, so it is getting a bit strange.

Sure. Hopefully this is the right file. Let me know if you need something else.

Miles’s iMac.zip

xMilesManx commented 3 years ago

That looks a bit strange, can you provide the IOReg? The patch on com.apple.driver.AppleIntelI210Ethernet is different in 11.4, and by default DEXT driver should load, so it is getting a bit strange.

Just for good measure, here is the IOReg from Monterey as well although I know were not discussing that here. Miles’s iMacMonterey.zip

vit9696 commented 3 years ago

Ok, what changed in 11.4 is the following:

Please confirm the last part. CC @khronokernel

xMilesManx commented 3 years ago

Awesome. Thanks for taking a look at this. I have confirmed changing device-id to F0 00 00 00 does work. Attached IOReg.

I feel it's worth noting that completely removing DeviceProperties > PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) altogether results in panic.

Miles’siMac114.zip

vit9696 commented 3 years ago

Instead of injecting <00 00 00 00> you can add dk.e1000=0 boot argument. This is cleaner, as it will give you a working solution for both 11.3 and 11.4.

xMilesManx commented 3 years ago

Woohoo! That bootarg does the trick. Thank you so much.

I have deleted the DeviceProperties completely. Ethernet is recognised natively as device-id F3150000 and the kernel panic is gone. Attached IOReg.

Miles’siMacagain.zip

5T33Z0 commented 3 years ago

I can confirm: disabling the DeviceProperties for PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) and using boot-arg dk.e1000=0 instead works on my Gigabyte Z490 Vision G on Big Sur 11.4.

Since macOS Catalina still requires the Device Property entry with Device ID F2158680 and the Kernelpatch to rename it I would disable these entries instead of deleting them.

EDIT: I think I found a solution which works for both Catalina and Big Sur:

Catalina boots a bit slower but you have Internet on both OSes using the same config.plist

vit9696 commented 3 years ago

Use Device ID F2158680

This is not strictly correct for both Catalina and Sur. It should be F2150000. Will solve the slow boot issues.

Also need to add Count = 1 to the patch, as @khronokernel forgot that initially.

@dhinakg, @khronokernel can you update the manual?

5T33Z0 commented 3 years ago

Well, IO Registry Explorer says F2158680/F3158680 is the correct ID – for my board at least. Anyway, F2150000/F3150000 works also. But thanks for the tip about the Patch Count.

dreamwhite commented 3 years ago

Use Device ID F2158680

This is not strictly correct for both Catalina and Sur. It should be F2150000. Will solve the slow boot issues.

Also need to add Count = 1 to the patch, as @khronokernel forgot that initially.

@dhinakg, @khronokernel can you update the manual?

Good morning vit. Please correct me if I'm wrong. In order to make the I225-V work on macOS Catalina/Big Sur you have to:

Am I right?

vit9696 commented 3 years ago

Yes, the DevicePath may be different (e.g. I have 2 I225), but otherwise this is correct.

vit9696 commented 3 years ago

The 8086 part is part of vendor-id on macOS. It should normally be masked out, but this is not guaranteed. So better not to rely on known to be unsupported things.

dreamwhite commented 3 years ago

Yes, the DevicePath may be different (e.g. I have 2 I225), but otherwise this is correct.

yes of course. Just a stupid question: can the PciRoot be detected via a SysReport dump eventually? Or should we test-n-retry with the right PciRoot paths? Thanks ^^

sash11 commented 2 years ago

I have z590i Vision D and i225-v worked with different ways: two kexts and fake pci-id, or just kernel patch and fake pci-id. Then I removed all methods for 11.4 BS and it swill continued to work. For ASRock B550 Phantom gaming ITX I could not get the card to work. System would freeze and crash after lan cable is connected. What fixed it was a boot argument dk.e1000=0. Now I only have this entry and nothing else. Both systems have a working LAN interface set to Auto and connected at 2.5 Gb speed.

5T33Z0 commented 2 years ago

There has been a security update for Catalina 10.1.5.17 recently. New Build is: 19H1417.

After this update, the combination of DeviceProperty (device-id F2150000) and Kernel Patch (base __Z18e1000_set_mac_typeP8e1000_hw) for the I225-V Controller does no longer work.

It causes crashes close to the end of the boot process. Disabling the PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) resolves the crashing but then Ethernet doesn't work of course.

I have tested this with several back-ups of older OpenCore EFIs which I know are working for Catalina, so I can pretty much exclude a configuration error as a source of the problem.

ghost commented 2 years ago

Use Device ID F2158680

This is not strictly correct for both Catalina and Sur. It should be F2150000. Will solve the slow boot issues. Also need to add Count = 1 to the patch, as @khronokernel forgot that initially. @dhinakg, @khronokernel can you update the manual?

Good morning vit. Please correct me if I'm wrong. In order to make the I225-V work on macOS Catalina/Big Sur you have to:

  • Leave the Device Property PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) (or PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)) enabled
  • Use Device ID F2150000
  • Enable the Kernel Patch but change MaxKernel to 20.4 so it only applies to Catalina and Big Sur up to 11.3, and Count to 1
  • boot-arg dk.e1000=0 then takes care of ethernet for Big Sur.

Am I right?

Thanks a lot! I can connect to Ethernet now, there is one problem though. When i connect to ethernet i lose connection after about 5 seconds. Any solutions for that?

ghost commented 2 years ago

I am on 11.6 btw

5T33Z0 commented 2 years ago

@juicystick F2150000 is for Catalina only. Disable the device property and the kernel patch and use the boot-arg only.

Check the Hardware Tab of your internet connection (in System Settings). Make sure it's set to "Full Duplex, flow-control", and not energy-efficient.

ghost commented 2 years ago

Didn't work for me. I can't install mac os in the recovery since it needs network connection.

ghost commented 2 years ago

Okay so for all I225-V NIC users have trouble with keep disconnecting ethernet: set the BaseT to 1000 and Full-Duplex. I used the command: "ifconfig en0 media 1000baseT mediaopt full-duplex" After that my Ethernet worked perfectly fine. (ASUS Strix B550-A Gaming, 5600x)

5T33Z0 commented 2 years ago

No chance on gigabyte z490 boards on Monterey. I bought a network card when I got so annoyed trying to fix this.

ghost commented 2 years ago

I have the issue now that i am stuck in a Bootloop. After i pressed install it normally installs mac os. When it restarts the first time though, i have the problem that i keeps rebooting after rebooting. Any ideas?

ghost commented 2 years ago

Which NIC did you buy?

Danke und Gruss Arno Vietense

On 15 Jan 2022, at 12:04 AM, 5T33Z0 @.***> wrote:



No chance on gigabyte z490 boards on Monterey. I bought a network card when I got so annoyed trying to fix this.

— Reply to this email directly, view it on GitHubhttps://github.com/dortania/bugtracker/issues/213#issuecomment-1013531498, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXEXUNUQ56NBKP7W5W7EUK3UWCTXNANCNFSM46KUMSSA. You are receiving this because you were mentioned.Message ID: @.***>

rursache commented 2 years ago

@juicystick i got this and it works OOB on monteray

vincerutabaga commented 2 years ago

I have the issue now that i am stuck in a Bootloop. After i pressed install it normally installs mac os. When it restarts the first time though, i have the problem that i keeps rebooting after rebooting. Any ideas?

I got a gigabyte z490 Aorus pro ax (last bios), and with F2150000 in device property, and boot-arg dk.e1000=0 : it work for me in Monterey 12.2.1 (don't use kernel patch, that was needed for Catalina)

vincerutabaga commented 2 years ago

In Monterey 12.3, that do not work anymore :/

xMilesManx commented 2 years ago

In Monterey 12.3, that do not work anymore :/

Try boot arg e1000=0

info here

vincerutabaga commented 2 years ago

In Monterey 12.3, that do not work anymore :/

Try boot arg e1000=0

info here

Thanks man! That did it

Xboarder56 commented 2 years ago

Is there any reason why a I225-LM (3) wouldn't be natively working out of the box with just the boot arg e1000=0 on Monterey?

IO Reg shows the device ID as F2150000 without any patching, the Nic shows up under system info/system preferences/network. Link light turns on but it just won't establish a connection/get an IP address or even show that the NIC is connected in macOS.

malvinpratama commented 2 years ago

anyone use 1225-v in monterey 12.3.1? my ethernet always cable unplugged(if use e1000=0) or self assigned (if not use e1000=0)

vincerutabaga commented 2 years ago

Yes it is working for me with with e1000=0 (z490 gigabyte) But I leave F2150000 in devices properly, within OC. I also use the method to write the correct ROM/Mac address, but I don't think it's related to get a working Nic. I read somewhere that there may be different revision of this Nic, some works, others don't.....

tftio commented 2 years ago

Question -- I have an MSI Z590-A Pro, with a I225-V onboard NIC. Everything in 12.3.1 works correctly, except for the Ethernet. My understanding on how to get this working is:

  1. Edit the DeviceProperties/Add/PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) to be (type data) F2150000;
  2. add the boot flag e1000=0;
  3. profit!

Do I need any kexts or otherwise?

TheFloydDivisionBell commented 1 year ago

This thread is very confusing due to people talking about different OS and configurations so I'll share my working configuration for Monterey 12.5. I have a Z590 Aorus Ultra with a I225-V onboard NIC.

Now it is working and no kernel panics :)

Truman1234 commented 1 year ago

I have a Gigabyte Vision G and configured it now under Opencore 0.8.3 as follows:

The system report shows me: image

Now I have to see, whether ethernet is constantly working and doesn't drop from time to time as it happened in the past.

drewbk99 commented 1 year ago

This thread is very confusing due to people talking about different OS and configurations so I'll share my working configuration for Monterey 12.5. I have a Z590 Aorus Ultra with a I225-V onboard NIC.

  • I set my device property to PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) -> device-id: F2150000
  • I left the Kernel patch in place for I225-V (disabled: false) as it doesn't apply to Monterey anyway
  • I set my boot arg to e1000=0
  • In the advanced settings of my ethernet I set the hardware tab to 1000baseT, "full-duplex, flow-control", Standard (1500)

Now it is working and no kernel panics :)

This also worked for me. I'm on 12.6.2 with a z590 vision d and I followed the guide as-is just like you and only changed my hardware ethernet settings to "full duplex, flow control". This essentially just removes the energy-efficient ethernet option from what it was configuring automatically as. Selecting full duplex only also seemed to work, I'm not sure what the difference between using flow control or not is, or if this has to do with your own network.

dayt47 commented 1 year ago

The solutions didn't work for me. I tried this and it worked. Just writing here for others who are searching for a solution and lands here from google.

vincerutabaga commented 1 year ago

In Ventura you don't need to to anything for this NIC to work. The only thing, is to replace the DMAR table. If the OEM got reserved regions, and you need more than one NIC.

dayt47 commented 1 year ago

In Ventura you don't need to to anything for this NIC to work. The only thing, is to replace the DMAR table. If the OEM got reserved regions, and you need more than one NIC.

Can you please explain or send a link how to do this? I already flashed an eeprom to my NIC (btw: I only have one I225-V) via this tutorial but it didn't work. Option1 worked though.

Edit: I have a B550-F Asus wifi motherboard.

vincerutabaga commented 1 year ago

In Ventura you don't need to to anything for this NIC to work. The only thing, is to replace the DMAR table. If the OEM got reserved regions, and you need more than one NIC.

Can you please explain or send a link how to do this? I already flashed an eeprom to my NIC (btw: I only have one I225-V) via this tutorial but it didn't work. Option1 worked though.

Edit: I have a B550-F Asus wifi motherboard.

In the link you send it's said to replace the DMAR table, but not explained. https://elitemacx86.com/threads/how-to-fix-dmar-table-on-macos-memory-mapping.964/