Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Jun 2014 12:00:16 +0200
From:      Benjamin Lutz <mail@maxlor.com>
To:        stable@freebsd.org
Subject:   re(4) on Realtek 8111G in Shuttle DS437 not working
Message-ID:  <3a9fc5056ecfe9d78d0b80be929b4c54@maxlor.mine.nu>

next in thread | raw e-mail | index | archive | help
Hello,

I bought a Shuttle DS437 (cheap small industrial barebone), it has two
Realtek 8111G network interfaces onboard. While support for that NIC
was added to FreeBSD 10.0, it doesn't seem to actually work. I can
configure the interface, and detect whether a cable is plugged in, but
no data is actually sent or received over the wire in 1000baseTX mode.

If I reduce the interface speed to 100baseTX, data is sent (I see
outgoing ARP requests on the local machine, as well as on a second
machine using tcpdump), but no data is received (anwers are seen on the
second machine, but not the local one.)

I'm running FreeBSD 10.0-RELEASE-p5 amd64, GENERIC kernel.

The hardware works, I think, using the driver from Realtek's homepage.
But using that driver is not a long-term option: for one, it doesn't
cause devd events, which partially breaks the network configuration
scripts, and for another, it doesn't seem to be 100% stable; I've
observed lockups under load (indicated by sendto: no buffer space
available) that needed an ifconfig down/up to clear, and since it
replaces FreeBSD's re driver, kernel updates become a chore.

Are there any parameters that I can maybe tune to get the standard
FreeBSD driver going? Patches don't scare me either.

Here's how FreeBSD sees the devices:

dmesg

re0: <Realtek PCIe GBE Family Controller> port 0xd000-0xd0ff mem 
0xf7a00000-0xf7a00fff,0xf0100000-0xf0103fff irq 17 at device 0.0 on pci2
re1: <Realtek PCIe GBE Family Controller> port 0xc000-0xc0ff mem 
0xf7800000-0xf7800fff,0xf0000000-0xf0003fff irq 19 at device 0.0 on pci4

pciconf -lv

re0@pci0:2:0:0: class=0x020000 card=0x40211297 chip=0x816810ec rev=0x0c 
hdr=0x00
     vendor     = 'Realtek Semiconductor Co., Ltd.'
     device     = 'RTL8111/8168B PCI Express Gigabit Ethernet controller'
     class      = network
     subclass   = ethernet
re1@pci0:4:0:0: class=0x020000 card=0x40211297 chip=0x816810ec rev=0x0c 
hdr=0x00
     vendor     = 'Realtek Semiconductor Co., Ltd.'
     device     = 'RTL8111/8168B PCI Express Gigabit Ethernet controller'
     class      = network
     subclass   = ethernet

Cheers,
Benjamin

PS: For people curious about the DS437, it has a Celeron 1037U CPU,
is passively cooled and rated for 24/7 operation. It has two NICs, two
serial ports (one RS232 and one RS232/RS422/RS485) and the ichwd(4)
hardware watchdog.

I've benchmarked it reaching 16 MiB/sec out and 20MiB/sec in through
a single OpenVPN connection. The WiFi card it ships with is not
recognized by FreeBSD. Under load at 24°C room temperature in still air,
the case temperature reaches about 43°C and the CPUs (according to
coretemp(4)) reach about 50°C.

pciconf -lv shows the unsupported WiFi card as follows:
none2@pci0:1:0:0:       class=0x028000 card=0x817510ec chip=0x817610ec 
rev=0x01 hdr=0x00
     vendor     = 'Realtek Semiconductor Co., Ltd.'
     device     = 'RTL8188CE 802.11b/g/n WiFi Adapter'
     class      = network



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3a9fc5056ecfe9d78d0b80be929b4c54>