Cable Unplugged in Monterey
THLIVSQAZ opened this issue · comments
mac version: 12.0.1(21A559)
ethernet card :
system is new install ,not OTA upgrade from big sur
I also try to install to /L/E and disable sip ,switch the speed ,deleted and reseted preference ,all not working
network status led on router and motherboard is working, if I use command "sudo ifconfig en0 down" the leds is off , and use "sudo ifconfig en0 up" is on
i didn't found the log in log show and /var/log/system.log, so i take photo when boot up
Most likely an interrupt related issue but I have no time to investigate it at the moment.
I see ,thinks
In monterey 12.2.1 with kext v.2.4.2 it work great.
But it's a pcie card, not onboard nic. Monterey have been hard with all onboard nic.
Thanks meize!
I'm trying to debug now and seems that interruptOccurredPoll
doesn't debuglog blah blah blah at all in 12.3, maybe msiIndex is wrong?
In 10.15 every 1 second i see logging from dmesg
Maybe 12.3 handles
while ((intrResult = pciDevice->getInterruptType(intrIndex, &intrType)) == kIOReturnSuccess) {
if (intrType & kIOInterruptTypePCIMessaged){
msiIndex = intrIndex;
break;
}
intrIndex++;
}
differently, maybe some new (fake!) devices will break eariler
BTW it seems that intrType & kIOInterruptTypePCIMessaged is true for 1 2 3 4 with my onboard lan too
In Benau@fcd42d6, I manually 'poll' interrupt and it seems to work fine with both rxPoll on / off, @THLIVSQAZ can you try this Kext and see if it works? (and does my commit make sense, I'm a noob kernel programmer)
(you can false disableMSI in Info.plist later if you have got a non-onboard rtl8111)
@Benau happy to report that your driver change actually fixed my on-board card.
Realtek RTL8168GU/8111GU PCI Express Gigabit Ethernet:
Bus: PCI
Vendor ID: 0x10ec
Device ID: 0x8168
Subsystem Vendor ID: 0x1028
Subsystem ID: 0x0706
Revision ID: 0x0010
PCIe Link Speed: 2.5 GT/s
PCIe Link Width: x1
Driver: com.insanelymac.RealtekRTL8111
BSD Device Name: en0
MAC Address: <REDACTED>
AVB Support: No
Maximum Link Speed: 1 Gb/s
Even with the automatic link discovery, it works like a charm.
Nice!
@Mieze can you see if my commit make sense for you? Or do you have a better idea instead of keep polling the card every 1ms?
BTW even changing msiindex to 2, 3 or 4 still doesn't work
BTW it seems that intrType & kIOInterruptTypePCIMessaged is true for 1 2 3 4 with my onboard lan too In Benau@fcd42d6, I manually 'poll' interrupt and it seems to work fine with both rxPoll on / off, @THLIVSQAZ can you try this Kext and see if it works? (and does my commit make sense, I'm a noob kernel programmer)
(you can false disableMSI in Info.plist later if you have got a non-onboard rtl8111)
Thank you so much for making this kext available. Fitting also solved my problem here. Thanks.
Realtek RTL8168G/8111G PCI Express Gigabit Ethernet:
Barramento: PCI
ID do Fabricante: 0x10ec
ID do Dispositivo: 0x8168
ID do Fornecedor do Subsistema: 0x1849
ID do Subsistema: 0x8168
ID da Revisão: 0x0011
Velocidade do Link PCIe: 2.5 GT/s
Largura do Link PCIe: x1
Driver: com.insanelymac.RealtekRTL8111
Nome do Dispositivo BSD: en0
Endereço MAC: XX:XX:XX:XX:XX:XX
Compatibilidade AVB: Não
Velocidade Máxima do Link: 1 Gb/s
BTW it seems that intrType & kIOInterruptTypePCIMessaged is true for 1 2 3 4 with my onboard lan too
In Benau@fcd42d6, I manually 'poll' interrupt and it seems to work fine with both rxPoll on / off, @THLIVSQAZ can you try this Kext and see if it works? (and does my commit make sense, I'm a noob kernel programmer)(you can false disableMSI in Info.plist later if you have got a non-onboard rtl8111)
This kext file works really well for AMD Ryzen 3 3200G. Been struggling since couple of days. Thanks :) Should release this patch as many are facing this issue.
BTW it seems that intrType & kIOInterruptTypePCIMessaged is true for 1 2 3 4 with my onboard lan too In Benau@fcd42d6, I manually 'poll' interrupt and it seems to work fine with both rxPoll on / off, @THLIVSQAZ can you try this Kext and see if it works? (and does my commit make sense, I'm a noob kernel programmer)
(you can false disableMSI in Info.plist later if you have got a non-onboard rtl8111)
@Benau (cc @Mieze) I can also approve that fix works (at least at first glance)! Please consider to review and pull the changes
If the driver is unable to pick up the matching interrupt, that's clearly an ACPI related problem and problems should be solved at the origin. I know, macOS is becoming more picky on that with every release but that's not my fault. Permanently polling the device makes no sense and I'm not willing to integrate such a patch.
@Mieze I understand that this patch is not a solution, and should not be merged, but shall we keep this issue open - at least as to have a proper place to look for another solution and/or make people aware of the current limitation?
Unfortunately, I tried the kext from @Benau on my end but it didn't want to budge. Still getting cable unplugged
.
Tried other versions of the kext as well and it was a no go.
I'm not sure what to go for SSDT-wise, but I'm open to any suggestions to get this working!
Update: got some help on Reddit and apparently I had DisableIoMapper
set to false which caused this issue to occur. After enabling it, ethernet started working as expected.
BTW it seems that intrType & kIOInterruptTypePCIMessaged is true for 1 2 3 4 with my onboard lan too In Benau@fcd42d6, I manually 'poll' interrupt and it seems to work fine with both rxPoll on / off, @THLIVSQAZ can you try this Kext and see if it works? (and does my commit make sense, I'm a noob kernel programmer)
(you can false disableMSI in Info.plist later if you have got a non-onboard rtl8111)
You soled my issue (and probably many other's people issues too).
You rock!