khronokernel / SmallTree-I211-AT-patch

Patched SmallTree kext for I211-AT support
82 stars 4 forks source link

Kext no longer working with MacOS 12.0 #3

Open AudioG opened 3 years ago

AudioG commented 3 years ago

Hi, Sorry to bother you but I was wondering if you have any plans to update the kext to be compatible with MacOS 12? The kext is loading and showing up as it should but I’m not getting a connection of and sort. If there is anything I can do to help like supply logs or test any changes for you then just let me know. Thanks for your time and fantastic work, Regards, AudioGod

khronokernel commented 3 years ago

Unfortunately as I own no hardware with the I211-AT chipset so testing is impossible. However we are researching changes to IONetworkingFamily and associated kexts to resolve the IO80211 back porting situation so perhaps our research there can be used with this kext as well. Currently the following of our kexts are broken:

Oddly enough however we have had no reports of our ethernet patch set breaking so not too sure what exactly broke if SmallTree's kext is having issues.

Feel free to research further if your hardware is affected, otherwise will leave this issue open for further discussion

AudioG commented 3 years ago

Thanks for getting back to me, The reason why you haven’t had any reports on it yet is probably because only a handful of people have the new AMD kernel patches for MacOS 12, They have not been released yet and are still in the testing phase. It is odd with the Ethernet because the kext is loading and it all seems like it’s right yet it doesn’t connect. If there’s any logs or anything else that may help you down the line if you look into it then just let me know and I will do what I can for you. Good luck with the IO80211 back porting. :)

SavageAUS commented 3 years ago

Same issue here for for me with SmallTreeIntel82576.kext not working correctly in macOS 12 beta 1 on AMD.

More information: The actual hardware is detected correctly but no link can be obtained.

ghost commented 3 years ago

Same issue. As the person above said, the hardware is loaded, but cannot linked.

image

SavageAUS commented 3 years ago

Has any work been done to see what this issue is? Now that Clover has working Monterey beta 1 I will be installing it and would like working Ethernet.

PencilNotPen commented 3 years ago

I have the same problem on my Gigabyte Z370N WIFI Hackintosh (Intel) on Monterey 12.0 beta 2. SmallTree kext does not work for my I211 ethernet port (other ethernet port I219-V is working fine with a different kext).

System Preferences... Network shows 'Not Connected' in the sidebar. In the main window it reports 'Cable Unplugged: Either the cable for [I211 port] is not plugged in or the device at the other end is not responding.'

However, System Info reports the controller correctly under 'Ethernet Cards', and lists the kext name and location correctly. Under 'Network', it has also assigned the port a BSD Name correctly, though no IP address.

Is there any chance of this being fixed, and is there anything further I can do to provide info or troubleshoot?

Cheers

inseyven commented 3 years ago

Also broken on my B450 Aorus Pro Rev.1. Showing "Not Connected"

iGPU commented 3 years ago

khronokernel,

I too have no I211 functionality on my TRX40 Threadripper build under OS 12 (works just fine thru 11.5). My mobo has an Aquantia port that works under both 11 and 12 with different patches, so I have a built-in comparison.

I've basically been using IDA64 and HexFiend to make changes in various kexts to get the I211 to work, including trying FakePCIID. I've posted here and here about my attempts.

Is there any chance we can work on this together? While I realize from your post above that you cannot directly test since you have no I211 device on your current builds, I'm willing to continue working on the problem if you have any ideas or guidance you can provide.

inseyven commented 3 years ago

Any new about this? It's still broken.

aluveitie commented 2 years ago

You can try the older AppleIGB kext which has been confirmed to still work on Monterey: https://forum.amd-osx.com/index.php?threads/intel-i211-at-alternative-to-smalltree.2028/

iGPU commented 2 years ago

The khronokernel SmallTree-modified kext works again starting with Monterey ß7: the problem was the macOS, not the kext. The version for Catalina also works in Big Sur and now Monterey ß7.

PencilNotPen commented 2 years ago

It's still not working for me, is it still working for you in b10 and 12.0.1? Not sure what I can be doing wrong, all my other /OC/Kexts are working correctly. System Info/Ethernet reports the driver as present at en0, but there is no connection and System Preferences/Network doesn't show a working interface either, even after deleting NetworkInterfaces.plist.

iamDecode commented 2 years ago

The khronokernel SmallTree-modified kext works again starting with Monterey ß7: the problem was the macOS, not the kext. The version for Catalina also works in Big Sur and now Monterey ß7.

I (maybe too optimistically) just updated to the official release of macOS Monterey (12.0.1, 21A559). Unfortunately, this problem doesn't seem resolved to me: similar problems, showing "Not Connected". Motherboard: MSI B450 Gaming Pro Carbon AC, CPU: AMD Ryzen 3600X.

AppleIGB kext get me to self-assigned IP, but no further.

Did anything happen after ß7?

radianttap commented 2 years ago

Yes, Apple made changes that broke this kext again. Unless someone else with appropriate hardware and knowledge picks up development, it will stay broken. As far as I know from Discord, khronokernel does not have the hw anymore.

eliehokayem commented 2 years ago

Tried AppleIGB kext on my Asus x299 tuff mark 1 instead of small tree kext to fix the I211-AT issue, i can confirm it does work on first boot but unfortunately it breaks after sleep wake or system restart.

dnnspaul commented 2 years ago

I tried the AppleIGB on my ASRock X570 Steel Legend and it only works for several seconds and then stops working. Only a change from 1000 to 100 Mbit or vice versa makes it work again ... but again for only some seconds. The SmallTree I211 worked flawlessly until Big Sur, so I'm hoping there will be a skilled developer who can fix the issue in Monterey. Until then I won't be able to update to Monterey :/

EDIT: I bought a 2.5 GBit PCIE network card for 18€ (https://aliexpress.com/item/1005003290281764.html) from aliexpress with Realtek RTL8125 chip 10 days ago. It arrived today and I tried it out immediately. With the help of Mieze's LucyRTL8125Ethernet kext drivers (https://github.com/Mieze/LucyRTL8125Ethernet) ethernet works flawlessly under Monterey now. So a litte plan b recommendation from me, maybe the SmallTree drivers won't updated ever...

stefan89 commented 2 years ago

See workaround for this: https://forum.amd-osx.com/index.php?threads/intel-i211-at-alternative-to-smalltree.2028/

tomilus commented 2 years ago

See workaround for this: httIps://forum.amd-osx.com/index.php?threads/intel-i211-at-alternative-to-smalltree.2028/

I tried this AppleIGB.kext with a B450 Aorus Pro Wifi mobo with the I211 chipset, and got it to work, got some stability issues but not sure if its the kext or my hackintosh.

PD: im running Monterey 12.0

kokokobe commented 2 years ago

The khronokernel SmallTree-modified kext works again starting with Monterey ß7: the problem was the macOS, not the kext. The version for Catalina also works in Big Sur and now Monterey ß7. Monterey 12.1 not fixed the problem

donatengit commented 2 years ago

Same for me (B450 Pro Wifi) -- SmallTree: disconnected, AppleIGB doesn't work after wake-up

donatengit commented 2 years ago

Hi all,

TLDR: It seems I was able to patch AppleIGB a bit so my device (I211 @ B450) is properly enabled after suspend/sleep. Switch off/on via Settings works but ifconfig enX up/down through console might still not work (but it could be my system specific).

It would be perfect if anyone could confirm independently it works https://github.com/donatengit/AppleIGB/releases especially those who have different NIC:

NB The driver built targeting 12.1 Monterey, I'm on 12.2 at the moment.

Generally I am impressed by amount of work done by hnak back in 2014 and then @Shanee recently to adopt pretty up-to-date version (2021-07-06) of Intel driver's source code . There is only one major stable version ahead but I'm not convinced it could bring any notable improvements -- pretty all code is the same for I210/I211 while I was checking/comparing the versions.

Titozzz commented 2 years ago

@donatengit Tried your fork on X570 with I211, but it makes my whole system way less stable, havn't tried the original AppeIGB so can't say if that comes from your changes or not

donatengit commented 2 years ago

Hi @Titozzz,

Thanks for checking this out.

Could you please bring a bit more colour: was SmallTree driver working in 11.x MacOS (and that's the only driver you replaced in MacOS 12.2)? Does it work stable if you just switch this driver off?

If the opencore/macos loads and network is up there is very little in driver itself what could make the whole system unstable. My uptime is 7 days with number of sleeps/suspends. Would be happy to help debugging this further, feel free to initiate an issue in the repository to keep this thread clean

% uptime 11:53 up 7 days, 14:26, 4 users, load averages: 1,08 0,78 1,56

Titozzz commented 2 years ago

Your repo is issue locked which is why I answered here. My hackintosh was working with Ethernet on 11 with small tree. On 12 small tree stoped working but I left it activated cause it did not cause any harm. I deactivated it when adding IGB tho. When IGB, whole system feels laggy. So in the meantime I disabled it again and went back to wifi. Happy to debug this with your we can pair on discord or something.

donatengit commented 2 years ago

On 12 small tree stoped working but I left it activated cause it did not cause any harm

I think it would make sense to set Min/Max Kernel on both drivers to ensure they are not conflicting anyway.

Your repo is issue locked which is why I answered here

Thanks, I've just opened issues and discussions in the repository and put release version without extra debugging (even though it's unlikely to be a reason for your lags).

Happy to debug this with your we can pair on discord or something

Sure, my discord is donniedisc#1988 (server) , it would be ideal if you provide your EFI and your hardware specs.

donatengit commented 2 years ago

Hi all, Thanks, based on your testing and feedback I've made some adjustments to the driver (here)

It primarily adopts IntelMausi link management and code structure approach with merge of IGB native driver flow. It should properly handle:

And, hopefully, potential issues with connection drops (not reproducible on my I211 @ B450) due to changes in transmit queues control.

Tested on 1Gbps ISP cable and 100Mbs router's link both forced and autonegotiated (although on 1Gbps autoneg is always enabled per Intel's source).

Note: please give it up to ~10 seconds to reset/negotiate if your changes of link state are frequent.

P.s. It also contains extended debug across the code, so feel free to sudo dmesg | grep -i igb while testing, it will definitely help.

PencilNotPen commented 2 years ago

Hi all,

TLDR: It seems I was able to patch AppleIGB a bit so my device (I211 @ B450) is properly enabled after suspend/sleep. Switch off/on via Settings works but ifconfig enX up/down through console might still not work (but it could be my system specific).

It would be perfect if anyone could confirm independently it works https://github.com/donatengit/AppleIGB/releases especially those who have different NIC:

  • igb driver supports all 82575-, 82576-, 82580-, I350-, I210-, I211- and I354-based gigabit network connections.

NB The driver built targeting 12.1 Monterey, I'm on 12.2 at the moment.

Generally I am impressed by amount of work done by hnak back in 2014 and then @Shanee recently to adopt pretty up-to-date version (2021-07-06) of Intel driver's source code . There is only one major stable version ahead but I'm not convinced it could bring any notable improvements -- pretty all code is the same for I210/I211 while I was checking/comparing the versions.

This first version of the driver didn't work at all for me on Z370N WIFI Rev 1.0 (I think the controller is Intel i211 GbE LAN, but not positive). It still showed:

System Preferences... Network shows 'Not Connected' in the sidebar. In the main window it reports 'Cable Unplugged: Either the cable for [I211 port] is not plugged in or the device at the other end is not responding.'

I will try the second version of the driver, posted above with adjustments, when I am back with my hack. Is the Z370N Wifi w/ i211 GbE chipset being taken into account in this patched driver, or am I wasting my time testing it as it's not supported in your patched driver?

Thanks for your help!

donatengit commented 2 years ago

@PencilNotPen

I will try the second version of the driver, posted above with adjustments

Thanks. Please use the latest driver and ensure that auto-negotiation is set first of all.

Is the Z370N Wifi w/ i211 GbE chipset being taken into account in this patched driver

You can ensure your driver is supported by checking system report (Ethernet). Vendor ID should be 0x8086, Device ID 0x1539. Thats for i211 (please let me know if you have different values)

iGPU commented 2 years ago

donatengit,

I tried the latest version of AppleIGB (5.7.2-im-eee-stall) with Threadripper 3970X on MSI TRX40 Creator mobo under Monterey v12.2.1, and it does not work. The I211 port is inactive when using AppleIGB as shown in top image below (using HackCheck). Meanwhile, on this mobo, the older SmallTree is working (bottom image).

Screen Shot 2022-02-26 at 9 22 17 AM SmallTree
donatengit commented 2 years ago

I tried the latest version of AppleIGB (5.7.2-im-eee-stall) with Threadripper 3970X on MSI TRX40 Creator mobo under Monterey v12.2.1, and it does not work

@iGPU thanks, will you be able to install DEBUG version and run sudo dmesg | grep -i igb right after disabling/enabling interface through Settings or sudo ifconfig en2 down/up ?

And, separately, what is in Ethernet section of the system report.

iGPU commented 2 years ago

donatengit,

I tried these settings and dmesg gave no result. I then ran a kextstat command, which shows that the kext debug file did load. Using the ifconfig command did nothing either way with the debug kext.

Screen Shot 2022-02-27 at 9 44 03 AM
BNolet commented 2 years ago

Extremely far outside the loop outsider here: Wouldn't the deprecation of the networking kernel extensions affect the ability to use networking kernel extensions?

Source: https://developer.apple.com/support/kernel-extensions/

I see that there's NetworkingDriverKit and the various related components.

Hopefully I'm asking the right questions

lucky13820 commented 2 years ago

https://github.com/donatengit/AppleIGB/tree/v0.4-eee-stall I tried this for a few hours now, it works, but I still lose the internet connection once in a while, but after turning off the ethernet and back on, it works again. So probably still not super stable, but at least it's working. I'm using Gigabyte AORUS X570 Pro Wifi, with 5600x.

lucky13820 commented 2 years ago

donatengit,

I tried the latest version of AppleIGB (5.7.2-im-eee-stall) with Threadripper 3970X on MSI TRX40 Creator mobo under Monterey v12.2.1, and it does not work. The I211 port is inactive when using AppleIGB as shown in top image below (using HackCheck). Meanwhile, on this mobo, the older SmallTree is working (bottom image).

What is the software you are using to check the ethernet?

donatengit commented 2 years ago

https://github.com/donatengit/AppleIGB/tree/v0.4-eee-stall I tried this for a few hours now, it works, but I still lose the internet connection once in a while, but after turning off the ethernet and back on, it works again. So probably still not super stable, but at least it's working. I'm using Gigabyte AORUS X570 Pro Wifi, with 5600x.

Hey @lucky13820, Apologies for the delay, I don't check this thread frequently, feel free to initiate issues right in the repository.

Anyway thanks for testing, great to hear it at least works with X570. Will you be able to install DEBUG version and to run sudo dmesg | grep -i igb in the mac terminal right after the issue appears and post the results into new issue in the repository?

What is the software you are using to check the ethernet?

Nothing specific, just ping 8.8.8.8 and giving usual network load: speedtest, torrents, sftp upload/download and/or hd youtube video.

Thanks in advance, looking forward

donatengit commented 2 years ago

Extremely far outside the loop outsider here: Wouldn't the deprecation of the networking kernel extensions affect the ability to use networking kernel extensions?

Source: https://developer.apple.com/support/kernel-extensions/

I see that there's NetworkingDriverKit and the various related components.

Hopefully I'm asking the right questions

It might in some version in the future, but now it's still supported.

Benau commented 2 years ago

@donatengit I see similar issue in rtl8111 driver and https://github.com/Benau/RTL8111_driver_for_OS_X/commit/fcd42d647b1b0b936b48eabf22f3884a8595a41d fixed the problem (though maybe a bit slower to poll it every 1ms)

https://github.com/Mieze/RTL8111_driver_for_OS_X/issues/73#issuecomment-1089192426

Do you think it makes sense for your AppleIGB driver if you try something like this too? So it may work for everybody

donatengit commented 2 years ago

@donatengit I see similar issue in rtl8111 driver and Benau/RTL8111_driver_for_OS_X@fcd42d6 fixed the problem (though maybe a bit slower to poll it every 1ms)

Mieze/RTL8111_driver_for_OS_X#73 (comment)

Do you think it makes sense for your AppleIGB driver if you try something like this too? So it may work for everybody

Hi @Benau, Thanks, Even though it doesn't look that well from a performance pov and it might help -- I'm not sure how to test this. My i211/B450 works stably in various mods and at full speed (I'm not alone). I think the problem for X570 is in something else (e.g. additional NIC & port) but I can't narrow it down without an actual hardware.

edfloreshz commented 2 years ago

Is there a way I could provide my hardware for you to test? I'm a developer and I own an X570 AORUS PRO WIFI, I got some experience with Hackintosh, not an expert tho...

donatengit commented 2 years ago

Is there a way I could provide my hardware for you to test? I'm a developer and I own an X570 AORUS PRO WIFI, I got some experience with Hackintosh, not an expert tho...

@edfloreshz If you are a developer I think you could diagnose potential issues yourself (and I would be happy to assist you feel free to reach me in discord donniedisc#1988 ) as there is nothing rocket-science-ish in this driver (all the hard part is implemented by Intel themselves and code is pretty the same across all their drivers including linux kernel).

I believe there is something either in environment (e.g. other pci devices or drivers) or in initialization / loading process that prevents normal load which I can't debug but someone like you with the hardware and both development and (presumably) terminal skills -- ideal!

You need XCode, then just clone the project and build the DEBUG version of it (or take the prebuilt version). Put the kext and modify config.plist the usual way. Then while playing around network settings and/or network load you could check output of sudo dmesg | grep -i igb to see what's going and on what stage. You could also add _DEBUGFUNC to the building options but it will start generating a lot of info not practically useful and/or add additional debug messages (unfortunately the driver doesn't implement advanced remote debugging as IntelMausi). I located all the issues this way for B450 and then adopted parts of the code from IntelMausi to fix it.

Again feel free to reach me in Discord for quicker coordination. Or @ tag me so I see replies.

shizhe1618 commented 1 year ago

主板c6h和c7h,同样的在mac12上这个kext开始失效,不能正常连网。

CrayCJ commented 1 month ago

For anyone still searching for a solution, please see a working version of AppleIGB.kext in this post https://github.com/donatengit/AppleIGB/issues/19#issuecomment-2227514964 by @aravikusu!

I have a B450 Gaming Pro Carbon AC Motherboard (BIOS firmware 7B85v19; firmware probably not relevent for AppleIGB) which has a Intel I211AT Gigabit LAN controller (Device ID: 0x1539, Vendor ID: 0x8086) with CPU AMD Ryzen 5 3600X (6-Core), GPU Radeon RX 5700 XT, Wifi Card Fenvi BCM94360CD (FV-A436CDM; native support) and this version of AppleIGB.kext by @mbarbierato works!