Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Realtek 8111G Support

    Hardware
    16
    53
    47.9k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • stephenw10S
      stephenw10 Netgate Administrator
      last edited by

      A lot of the bad rep Realtek suffers is due to their 10/100 cards which were indeed junk. Their gigabit cards are far better. That's not to say they're particularly good just that you can at least expect them to continue functioning even if not at full line speed.

      Steve

      1 Reply Last reply Reply Quote 0
      • K
        kejianshi
        last edited by

        I've noticed no problems with nvidia and I've never had a problem with a realtek (if they had working drivers - can be big if).

        1 Reply Last reply Reply Quote 0
        • T
          tguldener
          last edited by

          @stephenw10:

          { RT_VENDORID, RT_DEVICEID_8168, 0,
          "RealTek 8168/8111 B/C/CP/D/DP/E/F PCIe Gigabit Ethernet" },
          

          Steve

          Realtek send me a new driver:

          After consulting with SW Engineers, we have different driver version for inbox drivers and Realtek drivers.
          The Driver on Realtek website is supported  8111G.
          And the message you show on mail that is inbox Driver, have you installed the driver?

          { RT_VENDORID, RT_DEVICEID_8168, 0,
          "RealTek 8168/8111 B/C/CP/D/DP/E/F PCIe Gigabit Ethernet" },

          But I don't know how to integrate and test this driver on a pfsense installation:

          The main steps you have to do:(FreeBSDSrcDir means the directory of FreeBSD source code
          and it may be "/usr/src/sys")

          1. keep the orginal driver source code:

          cd /usr/src/sys/dev/re

          cp if_re.c if_re.c.org

          cd /usr/src/sys/modules

          cp Makefile Makefile.org

          cd /usr/src/sys/modules/re

          cp Makefile Makefile.org

          cd /usr/src/sys/i386/conf/

          cp GENERIC GENERIC.org

          2. recompile your kernel (you must install your FreeBSD source code first !!)

          vim /usr/src/sys/i386/conf/GENERIC and delete re

          vim /usr/src/sys/modules/Makefile and delete re

          cd /usr/src/sys/i386/conf

          /usr/sbin/config GENERIC

          (for FreeBSD 5.x/6.x/7.x/8.x/9.x)

          cd ../compile/GENERIC

          (for FreeBSD 4.x)

          cd ../../compile/GENERIC

          make cleandepend

          make depend

          make

          make install

          reboot

          3. update the driver source code:
              Copy the dirver source code( if_re.c and if_rereg.h) into /usr/src/sys/dev/re
              Copy the Makefile into /usr/src/sys/modules/re
             
          4. build the driver:

          cd /usr/src/sys/modules/re

          make clean

          make

          5. install the driver

          cd /usr/src/sys/modules/re

          kldload ./if_re.ko

          I'm just a advanced user and not a developer.

          g.
          Thomas

          1 Reply Last reply Reply Quote 0
          • stephenw10S
            stephenw10 Netgate Administrator
            last edited by

            You would have to do that from a full FreeBSD 8.1 install as pfSense doesn't have any build tools or source included.
            You could try the kernel linked in this thread which has updated Realtek drivers. I don't know if they're new enough though.
            http://forum.pfsense.org/index.php/topic,62032.msg342520.html#msg342520

            Steve

            1 Reply Last reply Reply Quote 0
            • X
              xtra-james1
              last edited by

              Are there any other solutions for this problem for basic users like me?  :o

              Do you see any possibilities to include a working driver directly in the 2.1-RELEASE iso somehow?

              Or can we use some 2.2-ALPHA which includes the missing driver?

              Any help / information on this would be great  :)

              Не знаю, но да

              1 Reply Last reply Reply Quote 0
              • T
                tguldener
                last edited by

                Bad news - also in the Alpha Release of FreeBSD10 is the 8111G Support missing  :'(

                1 Reply Last reply Reply Quote 0
                • X
                  xtra-james1
                  last edited by

                  well … then I will use the unit as a Linux server if we can't get working this network adapters in 2013 ... really awesome.

                  I don't understand why this network adapter is so different compared to the RTL8111E.

                  Не знаю, но да

                  1 Reply Last reply Reply Quote 0
                  • T
                    tguldener
                    last edited by

                    It looks like that it will work in the next FreeBSD 10 Version:

                    Index: sys/dev/re/if_re.c

                    –- sys/dev/re/if_re.c (revision 255582)
                    +++ sys/dev/re/if_re.c (working copy)
                    @@ -234,6 +234,10 @@
                    { RL_HWREV_8168E_VL, RL_8169, "8168E/8111E-VL", RL_JUMBO_MTU_6K},
                    { RL_HWREV_8168F, RL_8169, "8168F/8111F", RL_JUMBO_MTU_9K},
                    { RL_HWREV_8411, RL_8169, "8411", RL_JUMBO_MTU_9K},

                    • { RL_HWREV_8168_0, RL_8169, "8168G/8111G", RL_JUMBO_MTU_9K},
                    • { RL_HWREV_8168_1, RL_8169, "8168G/8111G", RL_JUMBO_MTU_9K},
                    • { RL_HWREV_8168_2, RL_8169, "8168G/8111G", RL_JUMBO_MTU_9K},
                    • { RL_HWREV_8168_4, RL_8169, "8411", RL_JUMBO_MTU_9K},
                      { 0, 0, NULL, 0 }
                      };

                    @@ -1457,6 +1461,10 @@
                    case RL_HWREV_8168E_VL:
                    case RL_HWREV_8168F:
                    case RL_HWREV_8411:

                    • case RL_HWREV_8168G_0:
                    • case RL_HWREV_8168G_1:
                    • case RL_HWREV_8168G_2:
                    • case RL_HWREV_8168G_4:
                      sc->rl_flags |= RL_FLAG_PHYWAKE | RL_FLAG_PAR |
                          RL_FLAG_DESCV2 | RL_FLAG_MACSTAT | RL_FLAG_CMDSTOP |
                          RL_FLAG_AUTOPAD | RL_FLAG_JUMBOV2 |
                      Index: sys/pci/if_rlreg.h
                      ===================================================================
                      --- sys/pci/if_rlreg.h (revision 255582)
                      +++ sys/pci/if_rlreg.h (working copy)
                      @@ -191,6 +191,10 @@
                      #define RL_HWREV_8402 0x44000000
                      #define RL_HWREV_8168F 0x48000000
                      #define RL_HWREV_8411 0x48800000
                      +#define RL_HWREV_8168G_0 0x4c000000
                      +#define RL_HWREV_8168G_1 0x4c100000
                      +#define RL_HWREV_8168G_2 0x50900000
                      +#define RL_HWREV_8168G_4 0x5c800000
                      #define RL_HWREV_8139 0x60000000
                      #define RL_HWREV_8139A 0x70000000
                      #define RL_HWREV_8139AG 0x70800000
                    1 Reply Last reply Reply Quote 0
                    • X
                      xtra-james1
                      last edited by

                      great, at least with FreeBSD 10.

                      they won't merge it to the FreeBSD 8 I suppose?

                      What about a Debian installation with a pfSense installation running in VirtualBox? Beside the performance it may work good enough until we get a better solution..  :D

                      Не знаю, но да

                      1 Reply Last reply Reply Quote 0
                      • T
                        tguldener
                        last edited by

                        @kushtrim:

                        they won't merge it to the FreeBSD 8 I suppose?

                        I ask for FreeBSD 8 Support, but I don't think that someone is willing to work again on FreeBSD8. The corrent Version is 9 and the next Version is 10. So soon is FreeBSD 8 not anymore supportet. PFSense is still on FreeBSD 8.3 and the FreeBSD 8.4 is already listet as legacy release. So I hope, that PFSense will push the change to FreeBSD 9 or 10. On FreeBSD 9 or 10 it's possible to get the new drivers directly into the kernel.

                        1 Reply Last reply Reply Quote 0
                        • T
                          tguldener
                          last edited by

                          So, the discussion is back on PFSense developers ;-)

                          Hi Thomas,

                          I recommend getting ahold of the pfsense guys with this question.

                          Scott

                          On Sep 15, 2013, at 2:35 AM, wrote:

                          Is it also possible to get a working kernel in FreeBSD 8.3 for PFSense support?

                          g.
                          Thomas

                          1 Reply Last reply Reply Quote 0
                          • M
                            miloman
                            last edited by

                            I also have a ds47. Nice little device.

                            I installed debian/kvm on it. I have a running virtual pfsense on it. Throughput around 110mbit.

                            1 Reply Last reply Reply Quote 0
                            • T
                              tguldener
                              last edited by

                              @miloman:

                              I also have a ds47. Nice little device.

                              I installed debian/kvm on it. I have a running virtual pfsense on it. Throughput around 110mbit.

                              i'd like to have a working version without virtual pfsense  ;)

                              1 Reply Last reply Reply Quote 0
                              • stephenw10S
                                stephenw10 Netgate Administrator
                                last edited by

                                You could attempt to cherry pick the code that added 'G' support and insert it into the 8.3 driver. I imagine it's not a straight forward copy and paste job though. The surrounding code may have changed substantially between 8.3 and 10.

                                Steve

                                1 Reply Last reply Reply Quote 0
                                • T
                                  tguldener
                                  last edited by

                                  @stephenw10:

                                  You could attempt to cherry pick the code that added 'G' support and insert it into the 8.3 driver. I imagine it's not a straight forward copy and paste job though. The surrounding code may have changed substantially between 8.3 and 10.

                                  Steve

                                  Right Steve, but it's not impossible to get the "G" support also in 8.3. The problem is, in PFSense is no FreeBSD sources and i'm not a developer. I have the files from Realtek to build the driver for "G" support in FreeBSD but I don't now, how I can build it for PFsense.

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    kejianshi
                                    last edited by

                                    I'm liking the VM idea more and more - Or maybe use as a small workstation.

                                    1 Reply Last reply Reply Quote 0
                                    • stephenw10S
                                      stephenw10 Netgate Administrator
                                      last edited by

                                      You need to build it in a standard FreeBSD 8.3 install and then move it across to pfSense. The instructions all talk about building a completely new kernel but I would first attempt to build the driver as a kernel module and load it as that's much easier. I have done that succefully with the msk(4) driver and I know it's been done with em(4) too.
                                      It has been done for re(4) aswell to support slightly newer 8111: https://forum.pfsense.org/index.php/topic,58150.0.html
                                      I don't know how new the driver has to be to support G.

                                      Steve

                                      1 Reply Last reply Reply Quote 0
                                      • NeverSimpleN
                                        NeverSimple
                                        last edited by

                                        I also own a Shuttle DS47 that I wanted to use to replace my existing pfSense hardware in my home network. As others have found out, the NIC's on the device are Realtek 8111G, which aren't supported on FreeBSD 8.3, 8.4 or 9.2, so also not on pfSense 2.0x or 2.1.

                                        As mentioned in an earlier post, there is source code to build a FreeBSD kernel module on the Realtek Website, which I used to do exactly that.

                                        The module was build on a FreeBSD 8.3p11 installation (pfSense 2.1) and tested on FreeBSD 8.3 and with pfSense 2.1-RELEASE.
                                        The attached module should be placed in /boot/kernel/ and the file /boot/loader.conf should be modified to include the line 'if_re_load="YES"' (in a pfSense full install; nano could be different, don't know)

                                        Because I had a bit of trouble getting an editor to work properly when booted into single user mode (WARNING: shell not fully functional?), I include a copy of the 'loader.conf' file so it can just be copied to it's location. Of course, this is a standard 'loader.conf' from a fresh 2.1-RELEASE install.

                                        If more detail is needed, ask.

                                        I did some very simple testing with the NIC's on FreeBSD 8.3 and they seem to work fine. Copying files on my network gets me around 70MB/s transfer speed, which seems reasonable for something like a DS47. (I get 100MB/s between Windows8 and FreeNAS9). I had it 'wget'ting a lot of files from the internet and it used my full bandwidth for hours, without problems.

                                        On the other hand, I'm having a hard time getting pfSense 2.1-RELEASE to work with it. I'm using PPPOE over a VLAN on the WAN side to connect to my ISP. I'm doing that right now with a pfSense box (2.03), so it can work. I now get very erratic behaviour; while it sometimes connects for a very short time it usually does nothing. I haven't spent a lot of time debugging this, it could still be PICNIC… I had expected to just copy my config from the 2.03 box and be done with it, but things are never simple...
                                        so my final verdict on the pfSense install is still to come...

                                        Two files attached in a gzipped tar: the kernel module (if_re.ko) & loader.conf. NOTE: Please remove the .txt extension.

                                        Richard

                                        8111G_module.tar.gz.txt
                                        8111G_module.tar.gz.txt

                                        pfSense 2.7 home router
                                        Shutlle DS77U (passively cooled Intel Celeron CPU 3865U)
                                        8GB RAM, OCZ 60GB SSD
                                        NIC's: build in Intel i211 & i219LM

                                        Business: several Netgate devices

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          tguldener
                                          last edited by

                                          Great work Richard

                                          I will test it in the next days

                                          g.
                                          thomas

                                          1 Reply Last reply Reply Quote 0
                                          • stephenw10S
                                            stephenw10 Netgate Administrator
                                            last edited by

                                            Nice!  :)
                                            Can you give us a link to the source for that module? Is it 32 or 64bit?

                                            You should probably put the modules in /boot/modules and add the line to /boot/loader.conf.local but either will work. The file loader.conf.local gets copied across an update but the modules won't (in Nano at least) so you might want to keep a copy handy. Create loader.conf.local if it doesn't exist.

                                            Steve

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.