Mieze Posted November 26, 2013 Author Share Posted November 26, 2013 Hi, I'm unable to get WoL working and am not sure where to start debugging. I have a Asus p8z68-m pro motherboard with the latest bios. I have Power On by PCI and Power On by PCI-E Enabled in the bios. I have Realtek PXE OPROM disabled (and it doesn't make a difference if I enable it as well, except that there is a 3sec delay at boot). I have "Wake on Ethernet access" checked in Energy Saver and am using the latest version of your driver 1.1.3. I put my hackintosh to sleep from the menu item and then tried sending a WoL packet using the wol and etherwake tools from my Openwrt router. I know I specified the right mac address, but the system does not respond at all. It continues to sleep until I press the power button or press a key on my usb keyboard. Can you advise on whether I'm missing something or where I can start troubleshooting? I guess one way would be to check if this works on another OS but Windows isn't an option. I can try a usb linux distro or something, I suppose. Thanks, /vv In order to collect debug data use a debug build of the driver (for version 1.1.3 build from source). Kernel logs can be retrieved in Terminal with grep kernel /var/log/system.log Although I tested WoL successfully using "wol" too (from a Mac) and got several success reports from users, you are not the first reporting problems with WoL. As of now I have no idea how to solve the problem. It might be a firmware issue but as there is no documentation from Realtek, it's just a black box to me. Sorry! Mieze Link to comment Share on other sites More sharing options...
warduck Posted November 27, 2013 Share Posted November 27, 2013 After installing a RAID card, AppleIntelE1000e was giving kernel panic on Mavericks. So I bought a TG-3468 (8139E) NIC and installed your 1.1.3 driver. Works wonderfully so far, thank you very much Mieze! Link to comment Share on other sites More sharing options...
shiecldk Posted November 28, 2013 Share Posted November 28, 2013 @vinodv & Mieze I can confirm WOL works for me with 1.1.3. (on my GA-P67A-UD3R-B3 with RTL8168E/8111E chipset) I've tried to WOL from splashtop with splashtop 2 and from VNC with Remotix on my iPhone. Both worked fine. I haven't tried using my tomato router to send WOL packet, so I'm not sure if it would work. Maybe modifying your Sharing settings in System Preferences like mine would help: 1 Link to comment Share on other sites More sharing options...
Mieze Posted November 29, 2013 Author Share Posted November 29, 2013 I just wanted to let you know that I pushed version 1.1.3 to github and updated the binary in the download section. Mieze 3 Link to comment Share on other sites More sharing options...
RehabMan Posted November 30, 2013 Share Posted November 30, 2013 I just wanted to let you know that I pushed version 1.1.3 to github and updated the binary in the download section. Mieze While doing a merge here... noticed you removed the IOLock for transmit structures/descriptors. Are you certain this is safe? The code in RTL8111:outputPacket does not look thread safe to me. For example: index = txNextDescIndex; txNextDescIndex = (txNextDescIndex + numSegs) & kTxDescMask; A context switch and re-entry into outputPacket (from another thread) between those two lines creates problems. If OS X is guaranteeing that calls to outputPacket are serialized, then no problem, but if not... Link to comment Share on other sites More sharing options...
Mieze Posted November 30, 2013 Author Share Posted November 30, 2013 If OS X is guaranteeing that calls to outputPacket are serialized, then no problem, but if not... Yes it does! While output queues might have more than one producer, the number of consumers is limited to 1 (the output thread). Mieze Link to comment Share on other sites More sharing options...
warduck Posted December 4, 2013 Share Posted December 4, 2013 I'm having some problems with the Mac App store with the driver. When I try to login, it says 'An unknown error has occurred'. I tried deleting NetworkInterfaces.plist in \Library\Preferences\SystemConfiguration\. Then I found this thread and tried EthernetBuiltIn set to 'yes'. But this leads to a black screen before the login screen! I had to boot to installer and Terminal to remove the entry and restore the desktop. I'm at a loss of what to do next. Link to comment Share on other sites More sharing options...
RehabMan Posted December 4, 2013 Share Posted December 4, 2013 Yes it does! While output queues might have more than one producer, the number of consumers is limited to 1 (the output thread). Mieze Thanks for the info. The OS X docs were not very clear. It even talks about how the driver cannot block for fear of re-entering the network stack in a bad way... a rather strange statement in a pre-emptive multithread/multicore system. Link to comment Share on other sites More sharing options...
Mieze Posted December 4, 2013 Author Share Posted December 4, 2013 I'm having some problems with the Mac App store with the driver. When I try to login, it says 'An unknown error has occurred'. I tried deleting NetworkInterfaces.plist in \Library\Preferences\SystemConfiguration\. Then I found this thread and tried EthernetBuiltIn set to 'yes'. But this leads to a black screen before the login screen! I had to boot to installer and Terminal to remove the entry and restore the desktop. I'm at a loss of what to do next. Please send me you kernel logs collected with the debug build and a dump of IOReg. Mieze Link to comment Share on other sites More sharing options...
warduck Posted December 5, 2013 Share Posted December 5, 2013 Thank you Mieze.The boot file declares an SSDT and entries: '-v -f npci=0x2000 GraphicsEnabler=yes EthernetBuiltIn=yes'. I was only able to generate a kernel panic with option '-x', ironically. There were no log files in \L\L\DR. Chameleon is version 2.2 svn r2266. Attached is a photo of the panic, ioreg and IORegistryExplorer dumps, and SSDT. Please let me know if you need further information. warduck.ioreg.SSDT.zip Link to comment Share on other sites More sharing options...
Mieze Posted December 5, 2013 Author Share Posted December 5, 2013 (edited) In Terminal type grep kernel /var/log/system.log in order to retrieve the kernel messages. IOReg shows that there is no built in Ethernet interface. "IOPrimaryInterface" = No "IOBuiltin" = No I would suggest to remove these lines from the SSDT because the Intel NIC seems to be unused at the moment but it's declared as the "built-in" interface: Method (_DSM, 4, NotSerialized) { Store (Package (0x0A) { "AAPL,slot-name", Buffer (0x09) { "Internal" }, "built-in", Buffer (One) { 0x01 }, "device_type", Buffer (0x14) { "Ethernet Controller" }, "model", Buffer (0x1E) { "Intel(R) 82579V PCI-E Gigabit" }, "name", Buffer (0x14) { "Ethernet Controller" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } Another point is that booting with "npci=0x2000" seems to cause trouble and is actually not needed on most systems. Mieze Edited December 5, 2013 by Mieze Link to comment Share on other sites More sharing options...
ed_straker Posted December 6, 2013 Share Posted December 6, 2013 This driver is for the RTL8111/8168 series NICs only. The RTL8151 is not supported. Mieze Ola Mieze, lucky I tried with a Ubuntu-usb-key and the network worked ... Investigating I discovered a IONetworkingFamily.kext in Extra folder.. . Removed and voilà! your kext works very well!!!! Thanks a lot, Ciaoooo Link to comment Share on other sites More sharing options...
Dans1975 Posted December 7, 2013 Share Posted December 7, 2013 When installing the binary remove ionetworkingfamily.kext as well?? Link to comment Share on other sites More sharing options...
RehabMan Posted December 7, 2013 Share Posted December 7, 2013 When installing the binary remove ionetworkingfamily.kext as well?? Not generally. ed_straker was referring to a rollback IONetworkingFamily.kext he had in /Extra/Extensions. IONetworkingFamily.kext is core networking support. Networking does not work without it. Link to comment Share on other sites More sharing options...
Dans1975 Posted December 7, 2013 Share Posted December 7, 2013 Ok, thought that was the case ... thanks ... off to try it on my AMD Mavericks install..!! Link to comment Share on other sites More sharing options...
Dans1975 Posted December 7, 2013 Share Posted December 7, 2013 Does this work with RTL 8169 or does it need to be patched? Link to comment Share on other sites More sharing options...
Mieze Posted December 7, 2013 Author Share Posted December 7, 2013 Does this work with RTL 8169 or does it need to be patched? The underlying linux driver does not support the RTL8169. Although the RTL8169 is very similar to the RTL8111 family, it's a PCI, not a PCIe device, which have problems to do 64 bit DMA operations (dual address cycles) when connected to 32 bit PCI bus. Therefore I don't think that it would make any sense to add support for these outdated chips. Mieze Link to comment Share on other sites More sharing options...
Dans1975 Posted December 7, 2013 Share Posted December 7, 2013 PCI vs PCIe .... ok.... guess I just leave it as is.... Thanks much!!! Link to comment Share on other sites More sharing options...
giofrida Posted December 8, 2013 Share Posted December 8, 2013 PCI vs PCIe .... ok.... guess I just leave it as is.... Thanks much!!! For RTL8169 this driver should work (at bottom, MacOS 10.7 on Intel-based Mac computer) Link to comment Share on other sites More sharing options...
warduck Posted December 11, 2013 Share Posted December 11, 2013 (edited) I would suggest to remove these lines from the SSDT because the Intel NIC seems to be unused at the moment but it's declared as the "built-in" interface: Thank you Mieze for all your help! I have a much better understanding of how things work now. It was silly to declare EthernetBuiltIn for an external Realtek. I don't think it's even possible to login to Apple services through the Realtek. I tried all your suggestions, and npci=0x2 turned out to be critical for my system. I think the editing of SSDT will ensure the stability, especially with one of two internal (Intel 82574) and external Realtek both active now. Edit: Looks like I was wrong about both playing nice together. Edit2: The problem was due to having to use both EthernetBuiltIn and GraphicsEnabler in Chameleon. Edited December 28, 2013 by warduck Link to comment Share on other sites More sharing options...
ipumuk Posted December 14, 2013 Share Posted December 14, 2013 Hi Mieze, thanks a lot for this driver! I followed your instructions carefully but unfortunately no ethernet device is showing in the networks settings after I finished the procedure. I did the following steps: 1. I deleted the old reaktek driver kext. 2. I rebuild the kernel cache using the terminal and sudo touch /S/L/E 3. delete all entries in the network settings 4. reboot 5. I put the newly downloaded realtek kext file in the extensions folder 6. I rebuild the kernel cache using the terminal and sudo touch /S/L/E 7. reboot But now when I try to setup my ethernet connection no ethernet controller can be found. It is like as if I had no ethernet controller installed. Can you help me with this issue? Link to comment Share on other sites More sharing options...
Mieze Posted December 14, 2013 Author Share Posted December 14, 2013 Hi Mieze, thanks a lot for this driver! I followed your instructions carefully but unfortunately no ethernet device is showing in the networks settings after I finished the procedure. I did the following steps: 1. I deleted the old reaktek driver kext. 2. I rebuild the kernel cache using the terminal and sudo touch /S/L/E 3. delete all entries in the network settings 4. reboot 5. I put the newly downloaded realtek kext file in the extensions folder 6. I rebuild the kernel cache using the terminal and sudo touch /S/L/E 7. reboot But now when I try to setup my ethernet connection no ethernet controller can be found. It is like as if I had no ethernet controller installed. Can you help me with this issue? Please send me your kernel logs retrieved in Terminal with grep kernel /var/log/system.log Mieze Link to comment Share on other sites More sharing options...
ipumuk Posted December 14, 2013 Share Posted December 14, 2013 Thanks for replying so fast. I will attach the kernel log to this post. kernel log.rtf Link to comment Share on other sites More sharing options...
Mieze Posted December 14, 2013 Author Share Posted December 14, 2013 Hello ipumuk, in your kernel logs there is not a single line mentioning the driver, not even an error message, which shows that the driver is not installed properly. Please install it to /S/L/E using an utility like Kext Wizard or anything else. Mieze 1 Link to comment Share on other sites More sharing options...
ipumuk Posted December 14, 2013 Share Posted December 14, 2013 Hello ipumuk, in your kernel logs there is not a single line mentioning the driver, not even an error message, which shows that the driver is not installed properly. Please install it to /S/L/E using an utility like Kext Wizard or anything else. Mieze Thanks Mieze, I did not know I had to use a special software to install the kext. I simply copied the file into the extensions folder before. Now it works perfectly Link to comment Share on other sites More sharing options...
Recommended Posts