Jump to content

Driver for Realtek's RTL810x Fast Ethernet Series


Mieze
 Share

179 posts in this topic

Recommended Posts

I just update the binary and the source code in the first post of this thread with the release candidate. Changes since the last version are minimal, nevertheless I would like everyone to test it again. In case nobody finds a serious problem in this release candidate I will make it the official version 1.0.

 

Good luck!

 

Mieze 

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

Hello Mieze,

 

great work so far. Looking a long time for a working driver.

It's a Lenovo Lappy Z560 from my daughter running 10.9.2.

The link is not coming up. See log.

Last three lines will const. repeated.

 

Ethernet [RealtekRTL8100]: Warning: PCIe ASPM enabled.

Ethernet [RealtekRTL8100]: EEE support enabled.

Ethernet [RealtekRTL8100]: TCP/IPv4 segmentation offload enabled.

Ethernet [RealtekRTL8100]: TCP/IPv6 checksum offload enabled.

Ethernet [RealtekRTL8100]: Using interrupt mitigate value 0x0.

Ethernet [RealtekRTL8100]: RTL8103E: (Chipset 7) at 0xffffff807b336000, xx:xx:xx:xx:xx:xx

Ethernet [RealtekRTL8100]: Link up on en0, 100-Megabit, Full-duplex, flow-control

Ethernet [RealtekRTL8100]: Tx timeout. Lost interrupt?

Ethernet [RealtekRTL8100]: Tx stalled? Resetting chipset. ISR=0xffff, IMR=0xffff.

Ethernet [RealtekRTL8100]: Link up on en0, 100-Megabit, Full-duplex, flow-control

Ethernet [RealtekRTL8100]: Tx timeout. Lost interrupt?

Ethernet [RealtekRTL8100]: Tx stalled? Resetting chipset. ISR=0xffff, IMR=0xffff.

post-52582-0-70846100-1396439588_thumb.png

Link to comment
Share on other sites

Hello Mieze,

 

great work so far. Looking a long time for a working driver.

It's a Lenovo Lappy Z560 from my daughter running 10.9.2.

The link is not coming up. See log.

Last three lines will const. repeated.

 

Ethernet [RealtekRTL8100]: Warning: PCIe ASPM enabled.

Ethernet [RealtekRTL8100]: EEE support enabled.

Ethernet [RealtekRTL8100]: TCP/IPv4 segmentation offload enabled.

Ethernet [RealtekRTL8100]: TCP/IPv6 checksum offload enabled.

Ethernet [RealtekRTL8100]: Using interrupt mitigate value 0x0.

Ethernet [RealtekRTL8100]: RTL8103E: (Chipset 7) at 0xffffff807b336000, xx:xx:xx:xx:xx:xx

Ethernet [RealtekRTL8100]: Link up on en0, 100-Megabit, Full-duplex, flow-control

Ethernet [RealtekRTL8100]: Tx timeout. Lost interrupt?

Ethernet [RealtekRTL8100]: Tx stalled? Resetting chipset. ISR=0xffff, IMR=0xffff.

Ethernet [RealtekRTL8100]: Link up on en0, 100-Megabit, Full-duplex, flow-control

Ethernet [RealtekRTL8100]: Tx timeout. Lost interrupt?

Ethernet [RealtekRTL8100]: Tx stalled? Resetting chipset. ISR=0xffff, IMR=0xffff.

 

The link is up but the transmitter hangs, but this doesn't seem to be the reason which is causing the trouble. Please take a look at the line in the logs identifying the chipset and compare it with System Profiler's screenshoot. It says RTL8103E while the screenshot shows an RTL8101E. There must be something which is interfering. Have you removed any other driver for the NIC which you installed previously?

 

Or have you modified the source in any way?

 

Mieze

Link to comment
Share on other sites

The link is up but the transmitter hangs, but this doesn't seem to be the reason which is causing the trouble. Please take a look at the line in the logs identifying the chipset and compare it with System Profiler's screenshoot. It says RTL8103E while the screenshot shows an RTL8101E. There must be something which is interfering. Have you removed any other driver for the NIC which you installed previously?

 

Or have you modified the source in any way?

 

Mieze

I had a not working kext installed to have an ethernet0.

Removed that and installed yours a second time and deleted network.plist.

Now it works! Great job!

 

Thanks

verleihnix

Link to comment
Share on other sites

I had a not working kext installed to have an ethernet0.

Removed that and installed yours a second time and deleted network.plist.

Now it works! Great job!

 

Thanks

verleihnix

 

Thanks for the information. Have fun!

 

Mieze

Link to comment
Share on other sites

  • 2 weeks later...

I've checked your DSDT and found no problem. It's really strange but it seems as if your NIC doesn't get powered on completely after wakeup.

 

As ikkoku has no problems with sleep/wakeup using the same chipset, I assume that the cause of the problem isn't located inside the driver. Have you verified that there is no other driver for your NIC installed. I recently had a user reporting a funny problem with the RTL8111 driver and finally it turned out that he had forgotten to remove Realtek's own driver before installing mine.

 

You should also review your BIOS settings very carefully. Is energy saving and suspension (sleep = S3 state) configured correctly? Are PCIe devices allowed to generate wakeup events? What entity is handling wakeup events: the BIOS or OS X?

 

Mieze

Thanks, I finally solve the problem!

 

The key is getting MAC address. My computer seems having issue getting ethernet MAC address (maybe hardware related). It was happening on Mac OS only, but now on Win and Ubuntu as well for some unknown reasons. So I need to specify MAC address manually. On Mac OS, it is:

sudo ifconfig en0 ether xx:xx:xx:xx:xx:xx

Since en0 is my ethernet. Similar methods need to be performed in other OSes.

Link to comment
Share on other sites

@lisai9093: Thanks for sharing the information. It looks like your NIC's EEPROM, which stores the MAC address, is messed up so that getting the MAC address fails.

 

Mieze

  • Like 1
Link to comment
Share on other sites

Can someone build the kext for me(Im using mavericks 10.9.0) I want try to build it with my own but my connection too slow to downloading xcode..realy appreciated if someone able to help me..

 

Use the latest prebuilt version posted in this thread.

 

Mieze

Link to comment
Share on other sites

  • 2 weeks later...

@lisai9093: There is a DOS diagnostic utility available for download at Realtek's website. It's name is RSET8136 and, although I haven't checked myself, it might have an option to rewrite the NIC's EEPROM in order to restore the original MAC address. Please see: http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=14&PFid=7&Level=5&Conn=4&DownTypeID=3&GetDown=false

 

Good luck!

 

Mieze

Link to comment
Share on other sites

@lisai9093: There is a DOS diagnostic utility available for download at Realtek's website. It's name is RSET8136 and, although I haven't checked myself, it might have an option to rewrite the NIC's EEPROM in order to restore the original MAC address. Please see: http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=14&PFid=7&Level=5&Conn=4&DownTypeID=3&GetDown=false

 

Good luck!

 

Mieze

Thanks man~

This RSET8136 is for diagnoses only. I found PG8136 tool that can write MAC into EEPROM. There is no problem getting MAC address anymore, even after sleep!

Link to comment
Share on other sites

  • 4 weeks later...
  • 3 weeks later...
  • 2 weeks later...
  • 4 weeks later...

Mieze,

Awesome work! I will report back after iperf testing on my RTL8105E: (Chipset 12).

7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: PCI power management capabilities: 0xffc3.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: PME# from D3 (cold) supported.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: PCIe link capabilities: 0x00077c11, link control: 0x0141.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: Warning: PCIe ASPM enabled.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: EEE support enabled.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: TCP/IPv4 segmentation offload enabled.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: TCP/IPv6 checksum offload enabled.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: Using interrupt mitigate value 0x0.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: RTL8105E: (Chipset 12) at 0xffffff8103bb5000,  xx:xx:xx:xx:xx:xx <= MAC address identified correctly;  removed from here
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: MSI interrupt index: 1
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: kIOEthernetWakeOnMagicPacket added to filters.
7/10/14 4:04:09.000 PM kernel[0]: Ethernet [RealtekRTL8100]: Already in power state 1.
7/10/14 4:06:38.000 PM kernel[0]: Ethernet [RealtekRTL8100]: Link up on en0, 100-Megabit, Full-duplex, No flow-control

Link to comment
Share on other sites

Mieze,

You did it again! Outstanding work!

iperf from Linux to OS X (10.9.4)

[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  12.6 MBytes   106 Mbits/sec
[  3]  1.0- 2.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3]  2.0- 3.0 sec  11.1 MBytes  93.3 Mbits/sec
[  3]  3.0- 4.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3]  4.0- 5.0 sec  11.1 MBytes  93.3 Mbits/sec
[  3]  5.0- 6.0 sec  11.9 MBytes  99.6 Mbits/sec
[  3]  6.0- 7.0 sec  11.1 MBytes  93.3 Mbits/sec
[  3]  7.0- 8.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3]  8.0- 9.0 sec  11.1 MBytes  93.3 Mbits/sec
[  3]  9.0-10.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 10.0-11.0 sec  11.1 MBytes  93.3 Mbits/sec
[  3] 11.0-12.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 12.0-13.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 13.0-14.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 14.0-15.0 sec  10.8 MBytes  90.2 Mbits/sec
[  3] 15.0-16.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 16.0-17.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 17.0-18.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 18.0-19.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 19.0-20.0 sec  10.8 MBytes  90.2 Mbits/sec
[  3] 20.0-21.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 21.0-22.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 22.0-23.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 23.0-24.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 24.0-25.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 25.0-26.0 sec  10.8 MBytes  90.2 Mbits/sec
[  3] 26.0-27.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 27.0-28.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 28.0-29.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 29.0-30.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 30.0-31.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 31.0-32.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 32.0-33.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 33.0-34.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 34.0-35.0 sec  10.8 MBytes  90.2 Mbits/sec
[  3] 35.0-36.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 36.0-37.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 37.0-38.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 38.0-39.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 39.0-40.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 40.0-41.0 sec  10.8 MBytes  90.2 Mbits/sec
[  3] 41.0-42.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 42.0-43.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 43.0-44.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 44.0-45.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 45.0-46.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 46.0-47.0 sec  10.8 MBytes  90.2 Mbits/sec
[  3] 47.0-48.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 48.0-49.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 49.0-50.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 50.0-51.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 51.0-52.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 52.0-53.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 53.0-54.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 54.0-55.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 55.0-56.0 sec  10.8 MBytes  90.2 Mbits/sec
[  3] 56.0-57.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 57.0-58.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3] 58.0-59.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3] 59.0-60.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3]  0.0-60.0 sec   675 MBytes  94.3 Mbits/sec

iperf from OS X (10.9.4) to Linux

[ ID] Interval       Transfer     Bandwidth
[  5]  0.0- 1.0 sec  11.5 MBytes  96.5 Mbits/sec
[  5]  1.0- 2.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5]  2.0- 3.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5]  3.0- 4.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5]  4.0- 5.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5]  5.0- 6.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5]  6.0- 7.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5]  7.0- 8.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5]  8.0- 9.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5]  9.0-10.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 10.0-11.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 11.0-12.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 12.0-13.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 13.0-14.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 14.0-15.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 15.0-16.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 16.0-17.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 17.0-18.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 18.0-19.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 19.0-20.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 20.0-21.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 21.0-22.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 22.0-23.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 23.0-24.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 24.0-25.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 25.0-26.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 26.0-27.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 27.0-28.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 28.0-29.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 29.0-30.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 30.0-31.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 31.0-32.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 32.0-33.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 33.0-34.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 34.0-35.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 35.0-36.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 36.0-37.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 37.0-38.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 38.0-39.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 39.0-40.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 40.0-41.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 41.0-42.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 42.0-43.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 43.0-44.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 44.0-45.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 45.0-46.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 46.0-47.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 47.0-48.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 48.0-49.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 49.0-50.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 50.0-51.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 51.0-52.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 52.0-53.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 53.0-54.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 54.0-55.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 55.0-56.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 56.0-57.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 57.0-58.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5] 58.0-59.0 sec  11.2 MBytes  94.4 Mbits/sec
[  5] 59.0-60.0 sec  11.1 MBytes  93.3 Mbits/sec
[  5]  0.0-60.0 sec   671 MBytes  93.8 Mbits/sec

Same performance before and after sleep in both 10.9.4 and 10.10 dp2. Wake-On-Lan also works in both. I also noticed that Wake-On-Lan works only when connected to the power supply. This could be regular OS X behavior since there is no "Wake for network access" when on battery. Can someone confirm please.

 

Thank you for this great kext! 

post-506273-0-51139000-1405091794_thumb.png

post-506273-0-94713900-1405091803_thumb.png

post-506273-0-45027000-1405091823_thumb.png

post-506273-0-80454900-1405091831_thumb.png

post-506273-0-60295600-1405091868_thumb.png

post-506273-0-84646500-1405091926_thumb.png

post-506273-0-45000000-1405091937_thumb.png

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

Hi Mieze,

 

thanks for your effort. My RTL8105E is running better with your kext 1.0 instead of AppleRTL8169Ethernet 2.0.6.

 

But when I use lan cable, system fan runs crazy and HWsensor report CPU temp > 70C. 

 

Using wifi is just fine.

 

Don't know if these relate to your kext. 

(also I have warning in console, kernel: apple80211Request Unsupported ioctl 181)

 

Just want to report that, do you have a clue? thanks!

 

-------------

Hereby the log from "grep -i realtek /var/log/system.log"

 

localhost kernel[0]: Ethernet [RealtekRTL8100]: Warning: PCIe ASPM enabled.

localhost kernel[0]: Ethernet [RealtekRTL8100]: EEE support enabled.

localhost kernel[0]: Ethernet [RealtekRTL8100]: TCP/IPv4 segmentation offload enabled.

localhost kernel[0]: Ethernet [RealtekRTL8100]: TCP/IPv6 checksum offload enabled.

localhost kernel[0]: Ethernet [RealtekRTL8100]: Using interrupt mitigate value 0x0.

localhost kernel[0]: Ethernet [RealtekRTL8100]: RTL8105E: (Chipset 12) at 0xffffff807aaa5000,  8:9e: 1:35:d5:5c

myMachine kernel[0]: Ethernet [RealtekRTL8100]: Link up on en0, 100-Megabit, Full-duplex, No flow-control

myMachine kernel[0]: Ethernet [RealtekRTL8100]: Link down on en0

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...
 Share

×
×
  • Create New...