Contribute
Register

[Solved] Issues with Lan (IntelMausiEthernet kext) with z270g motherboard onboard lan

Status
Not open for further replies.
Joined
Feb 3, 2017
Messages
18
Motherboard
Asus Z270G STRIX
CPU
i7-7700K
Graphics
GTX 970
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Hi there,

I've been struggling for a while now with getting my Asus z270g motherboard's onboard lan to work with Sierra. I've been able to get most of the other components working thanks to the generous efforts of this forum, but this last problem has been causing me quite the level of stress!

The z270g apparently has a i219-v chip, however it appears to be a bit different than the device's supported by IntelMausiEthernet (Which I've heard works very well with that chipset). It's using deviceID 8086:15d6 After looking through the source of the driver it appears that the particular device id isnt being searched for:

Code:
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (5) I219-V [8086:15d6]
   Subsystem: ASUSTeK Computer Inc. Ethernet Connection (5) I219-V [1043:8672]
   Flags: bus master, fast devsel, latency 0, IRQ 123
   Memory at df100000 (32-bit, non-prefetchable) [size=128K]
   Capabilities: <access denied>
   Kernel driver in use: e1000e
   Kernel modules: e1000e

Here's what I've tried so far:
  • With IntelMausiEthernet kext:
    • Installed driver in /S/L/E and /L/E in addition to the Clover bootloader kext directory. By itself, none of these caused kextstat to load the driver automatically (Aside from the clover directory)
    • Spoofing the Lan ID to something that the driver did support (ie one of the ones that was also using the i219v chipset), caused the driver to load (via kextstat), but no devices in system information or the network pref panel
    • Followed a number of steps in the troubleshooting steps that Mieze listed with the same result (driver loaded but no devices)
    • Didn't see any useful logging info in the debug info steps but happy to get that info if it would help
  • With AppleIntelE1000e kext (from insanely mac)
    • Very similar results to above
  • With AppleIGB kext
    • No luck across the board (although I haven't tried spoofing the id with this drive)


Happy to provide more information that would be relevant to the situation but not sure exactly what would help.



Thanks!
 
Bumping to see if anyone has any insights :)
 
I'm having the same problem with the same motherboard. Went down a similar path in debugging and haven't been able to solve the issue yet either. :/
 
Somebody already tried to add the deviceID 8086:15d6 to the Info.plist of IntelMausiEthernet.kext?

0x15D68086.png
 
Somebody already tried to add the deviceID 8086:15d6 to the Info.plist of IntelMausiEthernet.kext?

View attachment 243413

That is a good first start, but I think it is likely more changes required.
Do a search in the project files for 'E1000_DEV_ID_PCH_SPT_I219', and you'll see...
 
Somebody already tried to add the deviceID 8086:15d6 to the Info.plist of IntelMausiEthernet.kext?

View attachment 243413

I haven't tried that, but RehabMan is probably right. I figured the opposite (spoofing one of the supported DevID's listed in IntelMausi via Clover) would have a similar effect. What do you think? In particular, I chose this one:

https://github.com/Mieze/IntelMausiEthernet/blob/master/IntelMausiEthernet/hw.h#L93

When I did that, it looks like the driver gets loaded properly (it didnt before), but you arent able to see any network devices in the network prefpane or in system profiler, or in ifconfig.



Wish I knew some of this low level hardware programming, would love to contribute to this! RehabMan - any thoughts on next steps for this? Is it likely just a driver update thats needed?
 
I haven't tried that, but RehabMan is probably right. I figured the opposite (spoofing one of the supported DevID's listed in IntelMausi via Clover) would have a similar effect. What do you think? In particular, I chose this one:

https://github.com/Mieze/IntelMausiEthernet/blob/master/IntelMausiEthernet/hw.h#L93

When I did that, it looks like the driver gets loaded properly (it didnt before), but you arent able to see any network devices in the network prefpane or in system profiler, or in ifconfig.



Wish I knew some of this low level hardware programming, would love to contribute to this! RehabMan - any thoughts on next steps for this? Is it likely just a driver update thats needed?

Spoofing the id is the same as adding the id to the Info.plist.
Will likely require more changes...
something like:
Code:
diff --git a/IntelMausiEthernet/IntelMausiEthernet-Info.plist b/IntelMausiEthernet/IntelMausiEthernet-Info.plist
index 7ef42c1..e31d6be 100644
--- a/IntelMausiEthernet/IntelMausiEthernet-Info.plist
+++ b/IntelMausiEthernet/IntelMausiEthernet-Info.plist
@@ -33,7 +33,7 @@
            <key>IOClass</key>
            <string>IntelMausi</string>
            <key>IOPCIMatch</key>
-            <string>0x10EA8086 0x10EB8086 0x10EF8086 0x10F08086 0x15028086 0x15038086 0x153A8086 0x153B8086 0x155A8086 0x15598086 0x15A08086 0x15A18086 0x15A28086 0x15A38086 0x156F8086 0x15708086 0x15B78086 0x15B88086</string>
+            <string>0x10EA8086 0x10EB8086 0x10EF8086 0x10F08086 0x15028086 0x15038086 0x153A8086 0x153B8086 0x155A8086 0x15598086 0x15A08086 0x15A18086 0x15A28086 0x15A38086 0x156F8086 0x15708086 0x15B78086 0x15B88086 0x15D68086</string>
            <key>IOProbeScore</key>
            <integer>1000</integer>
            <key>IOProviderClass</key>
diff --git a/IntelMausiEthernet/IntelMausiEthernet.cpp b/IntelMausiEthernet/IntelMausiEthernet.cpp
index 05e1fd5..a7964af 100644
--- a/IntelMausiEthernet/IntelMausiEthernet.cpp
+++ b/IntelMausiEthernet/IntelMausiEthernet.cpp
@@ -78,6 +78,8 @@ static const struct intelDevice deviceTable[] = {
     { .pciDevId = E1000_DEV_ID_PCH_SPT_I219_LM2, .device = board_pch_spt, .deviceName = "I219LM2", .deviceInfo = &e1000_pch_spt_info },
     { .pciDevId = E1000_DEV_ID_PCH_SPT_I219_V2, .device = board_pch_spt, .deviceName = "I219V2", .deviceInfo = &e1000_pch_spt_info },
     { .pciDevId = E1000_DEV_ID_PCH_LBG_I219_LM3, .device = board_pch_spt, .deviceName = "I219LM3", .deviceInfo = &e1000_pch_spt_info },
+    { .pciDevId = E1000_DEV_ID_PCH_KBL_I219, .device = board_pch_spt, .deviceName = "I219KBL", .deviceInfo = &e1000_pch_spt_info },
+
     
     /* end of table */
     { .pciDevId = 0, .device = 0, .deviceName = NULL, .deviceInfo = NULL }
diff --git a/IntelMausiEthernet/hw.h b/IntelMausiEthernet/hw.h
index e2abf7f..9e8f9ef 100644
--- a/IntelMausiEthernet/hw.h
+++ b/IntelMausiEthernet/hw.h
@@ -92,6 +92,8 @@ struct e1000_hw;
 #define E1000_DEV_ID_PCH_SPT_I219_LM2        0x15B7    /* SPT-H PCH */
 #define E1000_DEV_ID_PCH_SPT_I219_V2        0x15B8    /* SPT-H PCH */
 #define E1000_DEV_ID_PCH_LBG_I219_LM3        0x15B9    /* LBG PCH */
+#define E1000_DEV_ID_PCH_KBL_I219       0x15D6  //REVIEW_REHABMAN: 200-series I219
+

 #define E1000_REVISION_4    4

diff --git a/IntelMausiEthernet/netdev.c b/IntelMausiEthernet/netdev.c
index 4a0d672..d133934 100644
--- a/IntelMausiEthernet/netdev.c
+++ b/IntelMausiEthernet/netdev.c
@@ -7485,6 +7485,7 @@ static const struct pci_device_id e1000_pci_tbl[] = {
    { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_LM2), board_pch_spt },
    { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_V2), board_pch_spt },
    { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LBG_I219_LM3), board_pch_spt },
+    { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_KBL_I219), board_pch_spt },

    { 0, 0, 0, 0, 0, 0, 0 }    /* terminate list */
 };
 
Spoofing the id is the same as adding the id to the Info.plist.
Will likely require more changes...
something like:
Code:
diff --git a/IntelMausiEthernet/IntelMausiEthernet-Info.plist b/IntelMausiEthernet/IntelMausiEthernet-Info.plist
index 7ef42c1..e31d6be 100644
--- a/IntelMausiEthernet/IntelMausiEthernet-Info.plist
+++ b/IntelMausiEthernet/IntelMausiEthernet-Info.plist
@@ -33,7 +33,7 @@
            <key>IOClass</key>
            <string>IntelMausi</string>
            <key>IOPCIMatch</key>
-            <string>0x10EA8086 0x10EB8086 0x10EF8086 0x10F08086 0x15028086 0x15038086 0x153A8086 0x153B8086 0x155A8086 0x15598086 0x15A08086 0x15A18086 0x15A28086 0x15A38086 0x156F8086 0x15708086 0x15B78086 0x15B88086</string>
+            <string>0x10EA8086 0x10EB8086 0x10EF8086 0x10F08086 0x15028086 0x15038086 0x153A8086 0x153B8086 0x155A8086 0x15598086 0x15A08086 0x15A18086 0x15A28086 0x15A38086 0x156F8086 0x15708086 0x15B78086 0x15B88086 0x15D68086</string>
            <key>IOProbeScore</key>
            <integer>1000</integer>
            <key>IOProviderClass</key>
diff --git a/IntelMausiEthernet/IntelMausiEthernet.cpp b/IntelMausiEthernet/IntelMausiEthernet.cpp
index 05e1fd5..a7964af 100644
--- a/IntelMausiEthernet/IntelMausiEthernet.cpp
+++ b/IntelMausiEthernet/IntelMausiEthernet.cpp
@@ -78,6 +78,8 @@ static const struct intelDevice deviceTable[] = {
     { .pciDevId = E1000_DEV_ID_PCH_SPT_I219_LM2, .device = board_pch_spt, .deviceName = "I219LM2", .deviceInfo = &e1000_pch_spt_info },
     { .pciDevId = E1000_DEV_ID_PCH_SPT_I219_V2, .device = board_pch_spt, .deviceName = "I219V2", .deviceInfo = &e1000_pch_spt_info },
     { .pciDevId = E1000_DEV_ID_PCH_LBG_I219_LM3, .device = board_pch_spt, .deviceName = "I219LM3", .deviceInfo = &e1000_pch_spt_info },
+    { .pciDevId = E1000_DEV_ID_PCH_KBL_I219, .device = board_pch_spt, .deviceName = "I219KBL", .deviceInfo = &e1000_pch_spt_info },
+
    
     /* end of table */
     { .pciDevId = 0, .device = 0, .deviceName = NULL, .deviceInfo = NULL }
diff --git a/IntelMausiEthernet/hw.h b/IntelMausiEthernet/hw.h
index e2abf7f..9e8f9ef 100644
--- a/IntelMausiEthernet/hw.h
+++ b/IntelMausiEthernet/hw.h
@@ -92,6 +92,8 @@ struct e1000_hw;
 #define E1000_DEV_ID_PCH_SPT_I219_LM2        0x15B7    /* SPT-H PCH */
 #define E1000_DEV_ID_PCH_SPT_I219_V2        0x15B8    /* SPT-H PCH */
 #define E1000_DEV_ID_PCH_LBG_I219_LM3        0x15B9    /* LBG PCH */
+#define E1000_DEV_ID_PCH_KBL_I219       0x15D6  //REVIEW_REHABMAN: 200-series I219
+

 #define E1000_REVISION_4    4

diff --git a/IntelMausiEthernet/netdev.c b/IntelMausiEthernet/netdev.c
index 4a0d672..d133934 100644
--- a/IntelMausiEthernet/netdev.c
+++ b/IntelMausiEthernet/netdev.c
@@ -7485,6 +7485,7 @@ static const struct pci_device_id e1000_pci_tbl[] = {
    { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_LM2), board_pch_spt },
    { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_SPT_I219_V2), board_pch_spt },
    { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LBG_I219_LM3), board_pch_spt },
+    { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_KBL_I219), board_pch_spt },

    { 0, 0, 0, 0, 0, 0, 0 }    /* terminate list */
 };
RehabMan - I don't know how you are so good at what you do, but THAT WORKED RIGHT OFF THE BAT!

Thank you so much for your help - I'm going to post the binary and make a PR for Meize so that others can benefit from it. You're great, thank you so much again!
 
RehabMan - I don't know how you are so good at what you do, but THAT WORKED RIGHT OFF THE BAT!

Thank you so much for your help - I'm going to post the binary and make a PR for Meize so that others can benefit from it. You're great, thank you so much again!
Cool...
I should probably build one with all the new devices...

From here: https://pci-ids.ucw.cz/read/PC/8086
15d6 Ethernet Connection (5) I219-V
15d7 Ethernet Connection (4) I219-LM
15d8 Ethernet Connection (4) I219-V
15e3 Ethernet Connection (5) I219-LM

I'm sure Mieze will just update to the latest Linux sources at one point, where perhaps these changes and others have been made.
 
Last edited by a moderator:
Status
Not open for further replies.
Back
Top