Jump to content
1052 posts in this topic

Recommended Posts

@Mieze I performed 5 more boot tests with Kernel > Quirks > DisableIoMapper = False and VT-d enabled in BIOS.  I found that if I waited longer before logging in, the Ethernet connection was more likely to be ok.  I also found that, in cases where the Ethernet was not connected or had a self-assigned IP, if I waited a minute (didn't actually time it) the Ethernet would "heal" itself and become fully functional.

 

It appears to me that the only difference after upgrading to macOS 26.4 (25E246) is that the Ethernet connection may require more time to negotiate a connection.  Waiting longer before login or waiting for a minute or so after login allows Ethernet to become fully connected and working.

 

Here are the ifconfigs for the 5 new boot tests.  Boot test #4 and #5 initially resulted in self-assigned IP and not connected respectively, but then became fully connected after waiting a minute.

 

Spoiler

macOS Tahoe 26.4 (25E246)

BIOS: VT-d enabled

EFI: Open Core 1.0.7, Kernel > Quirks > DisableIoMapper = False

IntelMausiEthernet 3.0.3

 

Boot Test #1: Ethernet Fully Working

 

% ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

        options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>

        inet 127.0.0.1 netmask 0xff000000

        inet6 ::1 prefixlen 128

        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

        nd6 options=201<PERFORMNUD,DAD>

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

XHC20: flags=0<> mtu 0

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

        options=46b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4,TSO6,CHANNEL_IO>

        ether f8:b4:6a:af:1b:ce

        inet6 fe80::16:1e31:36af:dd5d%en0 prefixlen 64 secured scopeid 0x5

        inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255

        nd6 options=201<PERFORMNUD,DAD>

        media: autoselect (100baseTX <full-duplex,flow-control,energy-efficient-ethernet>)

        status: active

utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500

        inet6 fe80::fb30:1323:7a41:5c08%utun0 prefixlen 64 scopeid 0x6

        nd6 options=201<PERFORMNUD,DAD>

utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380

        inet6 fe80::3a80:4993:a0b:3277%utun1 prefixlen 64 scopeid 0x7

        nd6 options=201<PERFORMNUD,DAD>

utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000

        inet6 fe80::ef05:50b1:4d79:36ed%utun2 prefixlen 64 scopeid 0x8

        nd6 options=201<PERFORMNUD,DAD>

utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1000

        inet6 fe80::ce81:b1c:bd2c:69e%utun3 prefixlen 64 scopeid 0x9

        nd6 options=201<PERFORMNUD,DAD>

 

 

Boot Test #2: Ethernet Fully Working

 

% ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

        options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>

        inet 127.0.0.1 netmask 0xff000000

        inet6 ::1 prefixlen 128

        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

        nd6 options=201<PERFORMNUD,DAD>

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

XHC20: flags=0<> mtu 0

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

        options=46b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4,TSO6,CHANNEL_IO>

        ether f8:b4:6a:af:1b:ce

        inet6 fe80::16:1e31:36af:dd5d%en0 prefixlen 64 secured scopeid 0x5

        inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255

        nd6 options=201<PERFORMNUD,DAD>

        media: autoselect (100baseTX <full-duplex,flow-control,energy-efficient-ethernet>)

        status: active

utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500

        inet6 fe80::9b30:de3:7ec8:1818%utun0 prefixlen 64 scopeid 0x6

        nd6 options=201<PERFORMNUD,DAD>

utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380

        inet6 fe80::fa43:442e:f427:a914%utun1 prefixlen 64 scopeid 0x7

        nd6 options=201<PERFORMNUD,DAD>

utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000

        inet6 fe80::5b3a:d1e6:da14:e4db%utun2 prefixlen 64 scopeid 0x8

        nd6 options=201<PERFORMNUD,DAD>

utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1000

        inet6 fe80::ce81:b1c:bd2c:69e%utun3 prefixlen 64 scopeid 0x9

        nd6 options=201<PERFORMNUD,DAD>

 

 

Boot Test #3: Ethernet Fully Working

 

% ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

        options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>

        inet 127.0.0.1 netmask 0xff000000

        inet6 ::1 prefixlen 128

        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

        nd6 options=201<PERFORMNUD,DAD>

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

XHC20: flags=0<> mtu 0

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

        options=46b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4,TSO6,CHANNEL_IO>

        ether f8:b4:6a:af:1b:ce

        inet6 fe80::16:1e31:36af:dd5d%en0 prefixlen 64 secured scopeid 0x5

        inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255

        nd6 options=201<PERFORMNUD,DAD>

        media: autoselect (100baseTX <full-duplex,flow-control,energy-efficient-ethernet>)

        status: active

utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500

        inet6 fe80::7d3f:ae4a:c0aa:98f0%utun0 prefixlen 64 scopeid 0x6

        nd6 options=201<PERFORMNUD,DAD>

utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380

        inet6 fe80::3e8:4416:32fd:2f65%utun1 prefixlen 64 scopeid 0x7

        nd6 options=201<PERFORMNUD,DAD>

utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000

        inet6 fe80::a8ef:fef5:b92:21e7%utun2 prefixlen 64 scopeid 0x8

        nd6 options=201<PERFORMNUD,DAD>

utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1000

        inet6 fe80::ce81:b1c:bd2c:69e%utun3 prefixlen 64 scopeid 0x9

        nd6 options=201<PERFORMNUD,DAD>

 

 

Boot Test #4: Ethernet Self-Assigned IP, No Internet Connection

 

% ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

        options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>

        inet 127.0.0.1 netmask 0xff000000

        inet6 ::1 prefixlen 128

        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

        nd6 options=201<PERFORMNUD,DAD>

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

XHC20: flags=0<> mtu 0

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

        options=46b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4,TSO6,CHANNEL_IO>

        ether f8:b4:6a:af:1b:ce

        inet6 fe80::16:1e31:36af:dd5d%en0 prefixlen 64 secured scopeid 0x5

        inet 169.254.83.125 netmask 0xffff0000 broadcast 169.254.255.255

        nd6 options=201<PERFORMNUD,DAD>

        media: autoselect (100baseTX <full-duplex,flow-control,energy-efficient-ethernet>)

        status: active

utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500

        inet6 fe80::2ba9:55d0:cd40:b635%utun0 prefixlen 64 scopeid 0x6

        nd6 options=201<PERFORMNUD,DAD>

utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380

        inet6 fe80::1d20:20e:3312:1087%utun1 prefixlen 64 scopeid 0x7

        nd6 options=201<PERFORMNUD,DAD>

utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000

        inet6 fe80::f2c1:5e1:b8c6:4dbe%utun2 prefixlen 64 scopeid 0x8

        nd6 options=201<PERFORMNUD,DAD>

utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1000

        inet6 fe80::ce81:b1c:bd2c:69e%utun3 prefixlen 64 scopeid 0x9

        nd6 options=201<PERFORMNUD,DAD>

 

Boot Test #5: Ethernet Not Connected, No Internet Connection

 

% ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

        options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>

        inet 127.0.0.1 netmask 0xff000000

        inet6 ::1 prefixlen 128

        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

        nd6 options=201<PERFORMNUD,DAD>

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

XHC20: flags=0<> mtu 0

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

        options=46b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4,TSO6,CHANNEL_IO>

        ether f8:b4:6a:af:1b:ce

        inet6 fe80::16:1e31:36af:dd5d%en0 prefixlen 64 secured scopeid 0x5

        nd6 options=201<PERFORMNUD,DAD>

        media: autoselect (100baseTX <full-duplex,flow-control,energy-efficient-ethernet>)

        status: active

utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500

        inet6 fe80::f8e5:39e7:ae4b:adf5%utun0 prefixlen 64 scopeid 0x6

        nd6 options=201<PERFORMNUD,DAD>

utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380

        inet6 fe80::f329:7b72:1c18:1085%utun1 prefixlen 64 scopeid 0x7

        nd6 options=201<PERFORMNUD,DAD>

utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000

        inet6 fe80::3e50:a8e8:3818:7636%utun2 prefixlen 64 scopeid 0x8

        nd6 options=201<PERFORMNUD,DAD>

utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1000

        inet6 fe80::ce81:b1c:bd2c:69e%utun3 prefixlen 64 scopeid 0x9

        nd6 options=201<PERFORMNUD,DAD>

 

 

EDIT: Note that I don't observe the "delayed' Ethernet connection when Kernel > Quirks > DisableIoMapper = True.  As I mentioned before, I am perfectly ok with setting DisableIoMapper = True and am only reporting this status in case it helps you.

Edited by deeveedee
  • Like 1

@deeveedee Looks like a race condition of the DHCP daemon trying to acquire an address before the physical connection is properly established. In any case the physical connection is  already established at the point in time when you called ifconfig as the output in Terminal shows, even in those cases, when an IP address is still missing:

        media: autoselect (100baseTX <full-duplex,flow-control,energy-efficient-ethernet>)
        status: active

With AppleVTD enabled, initialisation of the driver needs more time because it has to allocate additional system resources for mapping of I/O buffers. This increases the time until the driver is fully operational and ready for packet transmission. In some cases the DHCP daemon seems to try to get the address before the driver is ready. This would also explain why the issue is self-healing after some time, because the daemon retries the DHCP request periodically until it succeeds. A retry is also triggered by ifconfig down and up, or by reconnecting the cable. Another workaround might be to use a static IP address to eliminate the race condition.

 

Mieze 😺

  • Thanks 1
×
×
  • Create New...