Solved Need help to make Killer Ethernet E2600 work.

I installed FreeBSD 13.2-RELEASE-p3 on a laptop and I got,
1. Killer Ethernet E2600 [not working]
2. Killer Wi-Fi 6 AX1650 [working out of the box].
But there is neither Wi-Fi nor Ethernet icon showing on the top bar for Gnome 42.4.

I added the following in the/boot/loader.conf,
Code:
if_alc_load="YES"
hw.alc.msix_disable="1"

Code:
root@freebsd:~ # pciconf -lv | grep -A1 -B3 network
    class      = serial bus
none4@pci0:2:0:0:    class=0x020000 rev=0x21 hdr=0x00 vendor=0x10ec device=0x2600 subvendor=0x1458 subdevice=0x86b6
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    class      = network
    subclass   = ethernet
iwlwifi0@pci0:3:0:0:    class=0x028000 rev=0x1a hdr=0x00 vendor=0x8086 device=0x2723 subvendor=0x1a56 subdevice=0x1654
    vendor     = 'Intel Corporation'
    device     = 'Wi-Fi 6 AX200'
    class      = network
nvme0@pci0:4:0:0:    class=0x010802 rev=0x00 hdr=0x00 vendor=0x144d device=0xa808 subvendor=0x144d subdevice=0xa801

Any help would be appreciated. Thank you.
 
To make the E2600 supported might be as easy as to add only the device ID (0x2600) and eventually a QUIRK. See example for E2500: alc: Add Killer E2500 support

Best is to open a problem report at https://bugs.freebsd.org . Or if you feel confident, modify the source code yourself. Take the review for the E2500 as draft to modify the relevant files. For the QUIRK set 0x26001969 (<device id>1969)
 
T-Daemon Thank you for the advice. I am a little bit confused about following,

1. What is "312250" or how could I find out mine?
Code:
__FBSDID("$FreeBSD: head/sys/dev/alc/if_alc.c 312250 2017-01-16 03:03:47Z sephe $");

2. How could I find out that register address like "0xE0B11969"?
Code:
{ 0xE0B11969, PCI_QUIRK_MSI_INTX_BUG,    0,    0 },

If I am not wrong for my device, the vendor ID should be,
Code:
#define    DEVICEID_ATHEROS_E2500        0x10EC
 
covacat But Gigabyte stated as follows,

Communications
Killer™ Ethernet E2600
Killer™ Wi-Fi 6 AX1650 (Powered by Intel)
Bluetooth: Bluetooth V5.0 + LE
 
your device seems to be realtek not atheros
so try with if_re.c
Nice catch with the Linux realtek driver. Did you find it by any chance over linux-hardware.org?

I believe besides sys/dev/re/if_re.c ... sys/dev/rl/if_rlreg.h does need adding the device ID (taking the D-Link DGE-530T Rev. C controller as draft, highlighted in black bold in both files).

freebsd_user, if done, revert modifications of files from the review, try the green highlighted modifications.

sys/dev/re/if_re.c
Rich (BB code):
/*
 * Various supported device vendors/types and their names.
 */
static const struct rl_type re_devs[] = {
    { DLINK_VENDORID, DLINK_DEVICEID_528T, 0,
        "D-Link DGE-528(T) Gigabit Ethernet Adapter" },
    { DLINK_VENDORID, DLINK_DEVICEID_530T_REVC, 0,
        "D-Link DGE-530(T) Gigabit Ethernet Adapter" },
    { RT_VENDORID, RT_DEVICEID_2600, 0,
       "RealTek Killer E2600 Gigabit Ethernet Controller" },
    { RT_VENDORID, RT_DEVICEID_8139, 0,
        "RealTek 8139C+ 10/100BaseTX" },
    { RT_VENDORID, RT_DEVICEID_8101E, 0,
        "RealTek 810xE PCIe 10/100baseTX" },
    { RT_VENDORID, RT_DEVICEID_8168, 0,
        "RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet" },
    { RT_VENDORID, RT_DEVICEID_8161, 0,
        "RealTek 8168 Gigabit Ethernet" },
    { NCUBE_VENDORID, RT_DEVICEID_8168, 0,
        "TP-Link TG-3468 v2 (RTL8168) Gigabit Ethernet" },
    { RT_VENDORID, RT_DEVICEID_8169, 0,
        "RealTek 8169/8169S/8169SB(L)/8110S/8110SB(L) Gigabit Ethernet" },
    { RT_VENDORID, RT_DEVICEID_8169SC, 0,
        "RealTek 8169SC/8110SC Single-chip Gigabit Ethernet" },
    { COREGA_VENDORID, COREGA_DEVICEID_CGLAPCIGT, 0,
        "Corega CG-LAPCIGT (RTL8169S) Gigabit Ethernet" },
    { LINKSYS_VENDORID, LINKSYS_DEVICEID_EG1032, 0,
        "Linksys EG1032 (RTL8169S) Gigabit Ethernet" },
    { USR_VENDORID, USR_DEVICEID_997902, 0,
        "US Robotics 997902 (RTL8169S) Gigabit Ethernet" }
};

sys/dev/rl/if_rlreg.h
Rich (BB code):
#define    RT_VENDORID                0x10EC

/*
* RealTek chip device IDs.
 */
#define    RT_DEVICEID_2600          0x2600
#define    RT_DEVICEID_8139D           0x8039
#define    RT_DEVICEID_8129            0x8129
#define    RT_DEVICEID_8101E           0x8136
#define    RT_DEVICEID_8138            0x8138
#define    RT_DEVICEID_8139            0x8139
#define    RT_DEVICEID_8169SC          0x8167
#define    RT_DEVICEID_8161            0x8161
#define    RT_DEVICEID_8168            0x8168
#define    RT_DEVICEID_8169            0x8169
#define    RT_DEVICEID_8100            0x8100
...
#define    DLINK_DEVICEID_528T            0x4300
#define    DLINK_DEVICEID_530T_REVC     0x4302
...
 
weren't those "killer" NICs only "the currently cheapest off-the-shelf chipset with custom firmware to make it incompatible"?
Can they be flashed to stock realtek/atheros/whaterever firmware? Might be the best choice in terms of compatibility and possibly even for better HW-offloading.
 
T-Daemon Did you suggest to edit files from this repository?
No, that repository is no good. It says "patch for FreeBSD 11.0-Release". The 11 branch is end of life for some time.

You need to fetch the source code for 13.2, build and install a new kernel with the made modifications. Don't worry it's quit easy. See FreeBSD handbook chapter 26.6.3. Updating the Source.

First, the system should be updated to the latest patch level as described in 26.2.2. Applying Security Patches (which you have done).

To fetch the source code install devel/git. The tiny flavor will do.
Code:
pkg install git-tiny
then follow the handbook, the git clone example with the 13.2 branch.

If the system is on ZFS, now would be a good time to create a new boot environment to fall back to (see bectl(8)), in case the current environment suffers a major screw up (which is less likely, but better save than sorry).

Make the modifications to files /usr/src/sys/dev/re/if_re.c and /usr/src/sys/dev/rl/if_rlreg.h.

Double check they are correct modified and no typos.

Build and install the kernel:
Code:
cd /usr/src
make -j `sysctl -n hw.ncpu` kernel
The sysctl(8) command is in backticks, not single quotes.

The original kernel will be renamed in /boot/kernel.old and the new kernel becomes /boot/kernel.

In case the new kernel doesn't boot, kernel.old can be selected and booted at the FreeBSD boot menu.

Or, if a ZFS boot environment was created, boot that.

Assuming the support can be resolved by setting the device id, as long as the E2600 support is not integrated in the official source, the kernel needs to be rebuild (after /usr/src is updated) every time the kernel is updated by freebsd-update(8).

If E2600 is recogniced by the new kernel and the driver has attached, the controller working as expected, you should open a problem report to get the support intregated.
 
Thank you so much T-Daemon for such detailed instructions and covacat for redirecting me to the right way. I would've probably given up if you wouldn't encourage me, and I sincerely appreciate what you’ve done. Now it is recognized and working as expected. I apologize for the delay. I was working on other parts of the laptop to stay on FreeBSD.
Bash:
$ pciconf -lv | grep -A1 -B3 network
    class      = serial bus
re0@pci0:2:0:0: class=0x020000 rev=0x21 hdr=0x00 vendor=0x10ec device=0x2600 subvendor=0x1458 subdevice=0x86b6
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    class      = network
    subclass   = ethernet
 
Last edited:
Thank you so much T-Daemon for such detailed instructions and covacat for redirecting me to the right way. I would've probably given up if you wouldn't encourage me, and I sincerely appreciate what you’ve done. Now it is recognized and working as expected. I apologize for the delay. I was working on other parts of the laptop to stay on FreeBSD.
Bash:
$ pciconf -lv | grep -A1 -B3 network
    class      = serial bus
re0@pci0:2:0:0: class=0x020000 rev=0x21 hdr=0x00 vendor=0x10ec device=0x2600 subvendor=0x1458 subdevice=0x86b6
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    class      = network
    subclass   = ethernet
can you post a PR while including the patch so it could be added to the source tree ?
 
Not sure if 13.2-RELASE will have it merged or beginning with 13.3-R. Support will be for sure in 14.0-RELEASE.
Wow! Thank you so much. I thought it would take months or eventually get rejected like Linux. I learned a lot and became sort of addicted to FreeBSD. By the way, I marked as closed the bug or did I do that wrong?
 
I thought it would take months
I believe, the cause why the patch was committed that fast (in six hours !! after submitting the report), the committer, Kristof Provost, is at the Hackathon October 4th-6th Oslo, Norway.

One of the topics that people could work on during the Hackathon is
Code:
work through the PR database (both
low-hanging fruits and longer work
items)
It looks like yout PR cought his attention.

By the way, I marked as closed the bug or did I do that wrong?
No at all. It was exactly the right thing to do.
 
It's a little late for this but I experienced the same issue while checking out Acer laptops for company use running 13.2.

none6@pci0:45:0:0: class=0x020000 rev=0x21 hdr=0x00 vendor=0x10ec device=0x2600 subvendor=0x1025 subdevice=0x159c
vendor = 'Realtek Semiconductor Co., Ltd.'
class = network
subclass = ethernet
etc.

This device is supported out of the box in OpenBSD7.3, so I began with that to get it going.
After reading what others said about 14.0 support for 2600 I tried 14.0 beta; it was not recognized.
I posted about this in an earlier forum posting (hardware).

Regards,
 
Back
Top