Network adapter 10 GbE: Edimax EN9320TX-E

mimesot

Well-Known Member
Aug 17, 2017
36
4
48
Hi!
I would like to know if anyone already has an opinion about this network adapter. It appears to be fairly new, listed since october 2017. But it allows using VLANs (802.1Q) and is available for around 100€. So their must be some drawbacks. It uses an Tehuti TN9510 Chipset. The specifications claim, that there is a Linux driver, but I guess it has not been incorporated into the Debian 9 distro yet. I am not afraid of adding the driver myself and testing the network adapter, especially as this is no production system, but I would like to ask for your opinion anyway. Am I running straight into trouble doing this? Shall I stick with Intel X550 chips?

Greetings
mimesot
 
Hello again!
Well, I just tried that card, but I have troubles getting it to work on Linux.

Sidenotes:
  • It works on wWindows 10 with the Driver provided by the vendor Edimax
  • On the website of Edimax it says that Linux kernels from 2.6 to 4.14 are supported
Regarding the installation on Linux I tried the following:
  • Installed the NIC as sole expansion card to the first PCIe slot
  • Installed a naked Debian 9.5 to make sure it uses a not too fancy linux kernel (which is 4.9.0-7-amd64) in the suppoerted range of versions
  • Downloaded the driver (which is version 0.3.6.15) and unpacked it in my home directory, entered the folder tn40xx-0.3.6.15
  • I ran: m-a prepare (module-assistant), make, make install. No problems so far.
  • I added tn40xx to /etc/modules in order to load the module on startup. Restarted the maschine.
  • The module was loaded, but the NIC did not show up. Well, the NIC did according to lspci, but the kernel module neither loaded or in use.
  • I also tried using dkms:
    git clone -b release/tn40xx-001 https://github.com/acooks/tn40xx-driver.git /usr/src/tn40xx-001
    dkms add -m tn40xx -v 001
    dkms install -m tn40xx -v 001

    Again, with no effect.
  • I also tried to manually bind the device to the driver using:
    echo 0000:01:00.0 > /sys/bus/pci/drivers/tn40xx/bind
    Which gave me an error that no device could be used (dt.: "kein passendes Gerät gefunden")
Current console outputs:

lspci -s 01:00 -nnvvv
Code:
lspci -s 01:00 -nnvvv
01:00.0 Ethernet controller [0200]: Tehuti Networks Ltd. TN9710P 10GBase-T/NBASE-T Ethernet Adapter [1fc9:4027]
    Subsystem: Edimax Computer Co. TN9710P 10GBase-T/NBASE-T Ethernet Adapter [1432:8104]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 11
    Region 0: Memory at d0000000 (64-bit, prefetchable) [size=64K]
    Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
        Address: 0000000000000000  Data: 0000
    Capabilities: [78] Power Management version 3
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [80] Express (v2) Endpoint, MSI 00
        DevCap:    MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <2us
            ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
        DevCtl:    Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
            RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
            MaxPayload 128 bytes, MaxReadReq 128 bytes
        DevSta:    CorrErr+ UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
        LnkCap:    Port #1, Speed 5GT/s, Width x4, ASPM L0s L1, Exit Latency L0s <512ns, L1 <2us
            ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
        LnkCtl:    ASPM Disabled; RCB 64 bytes Disabled- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        DevCap2: Completion Timeout: Range A, TimeoutDis+, LTR-, OBFF Not Supported
        DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
        LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
             Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
             Compliance De-emphasis: -6dB
        LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
             EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
    Capabilities: [100 v1] Virtual Channel
        Caps:    LPEVC=0 RefClk=100ns PATEntryBits=1
        Arb:    Fixed- WRR32- WRR64- WRR128-
        Ctrl:    ArbSelect=Fixed
        Status:    InProgress-
        VC0:    Caps:    PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
            Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
            Ctrl:    Enable+ ID=0 ArbSelect=Fixed TC/VC=01
            Status:    NegoPending- InProgress-

modinfo tn40xx
Code:
modinfo tn40xx
filename:       /lib/modules/4.9.0-7-amd64/updates/dkms/tn40xx.ko
description:    Tehuti Network Driver
author:         Tehuti networks
version:        0.3.6.16.1
license:        GPL
srcversion:     EB3A062D9AF7109C0E5CB18
alias:          pci:v0000105Ad00007203sv0000105Asd00007203bc*sc*i*
alias:          pci:v00001FC9d00004025sv00001432sd00008102bc*sc*i*
alias:          pci:v00001FC9d00004025sv00001FC9sd00003015bc*sc*i*
alias:          pci:v00001FC9d00004025sv00001186sd00002900bc*sc*i*
alias:          pci:v00001FC9d00004026sv00001FC9sd00003015bc*sc*i*
alias:          pci:v00001FC9d00004022sv00001432sd00008103bc*sc*i*
alias:          pci:v00001FC9d00004022sv00001043sd00008709bc*sc*i*
alias:          pci:v00001FC9d00004022sv00001186sd00004D00bc*sc*i*
alias:          pci:v00001FC9d00004022sv00001FC9sd00003015bc*sc*i*
alias:          pci:v00001FC9d00004020sv0000180Csd00002040bc*sc*i*
alias:          pci:v00001FC9d00004020sv00001FC9sd00003015bc*sc*i*
alias:          pci:v00001FC9d00004010sv00001FC9sd00004010bc*sc*i*
depends:    
retpoline:      Y
vermagic:       4.9.0-7-amd64 SMP mod_unload modversions
parm:           no_phy:int
parm:           bdx_force_no_phy_mode:no_phy=1 - force no phy mode (CX4)

lsmod | grep tn40xx

returns:
tn40xx 466944 0

sudo find / -name "*tn40xx*"
Code:
sudo find / -name "*tn40xx*"
/usr/src/tn40xx-001
/usr/src/tn40xx-001/.git/logs/refs/heads/release/tn40xx-001
/usr/src/tn40xx-001/.git/refs/heads/release/tn40xx-001
/home/myusername/tn40xx-0.3.6.15
/home/myusername/tn40xx-0.3.6.15/.tn40xx.ko.cmd
/home/myusername/tn40xx-0.3.6.15/tn40xx.ko
/home/myusername/tn40xx-0.3.6.15/.tn40xx.mod.o.cmd
/home/myusername/tn40xx-0.3.6.15/.tmp_versions/tn40xx.mod
/home/myusername/tn40xx-0.3.6.15/.tn40xx.o.cmd
/home/myusername/tn40xx-0.3.6.15/tn40xx.o
/home/myusername/tn40xx-0.3.6.15/tn40xx.mod.o
/home/myusername/tn40xx-0.3.6.15/tn40xx.mod.c
find: ‘/run/user/1000/gvfs’: Keine Berechtigung
/lib/modules/4.9.0-7-amd64/kernel/drivers/net/tn40xx.ko
/lib/modules/4.9.0-7-amd64/updates/dkms/tn40xx.ko
/var/lib/dkms/tn40xx
/var/lib/dkms/tn40xx/001/4.9.0-7-amd64/x86_64/module/tn40xx.ko
/sys/bus/pci/drivers/tn40xx
/sys/module/tn40xx
/sys/module/tn40xx/drivers/pci:tn40xx

Does someone have some insights for me?
Thanks and kind regards
mimesot
 
Last edited:
Hi!
I can't remember exaclty if I verified that yesterday, but I think it is loaded.
I will post a definite answer in the evening, but I tried this method before on a different system and the kernel module did load. (Well, I guess I forced it to do so by adding it to /etc/modules. And then I found the message "tainted kernel", which is to be expected from proprietary drivers afaik. I think I optained it via dmesg | grep tn40xx. Aah, and there was no error or other warning tn40xx.)
 
Last edited:
Does the driver load?

# modprobe tn40xx

  • modprobe tn40xx
    gives me no return
  • sudo lsmod | grep tn40xx
    returns
    tn40xx 466944 0
    where the 0 is in the column "uses"
So, does that mean it is loaded but not used by any device?

sudo find / -name "*tn40xx*"
Code:
sudo find / -name "*tn40xx*"
/usr/src/tn40xx-001
/usr/src/tn40xx-001/.git/logs/refs/heads/release/tn40xx-001
/usr/src/tn40xx-001/.git/refs/heads/release/tn40xx-001
/home/myusername/tn40xx-0.3.6.15
/home/myusername/tn40xx-0.3.6.15/.tn40xx.ko.cmd
/home/myusername/tn40xx-0.3.6.15/tn40xx.ko
/home/myusername/tn40xx-0.3.6.15/.tn40xx.mod.o.cmd
/home/myusername/tn40xx-0.3.6.15/.tmp_versions/tn40xx.mod
/home/myusername/tn40xx-0.3.6.15/.tn40xx.o.cmd
/home/myusername/tn40xx-0.3.6.15/tn40xx.o
/home/myusername/tn40xx-0.3.6.15/tn40xx.mod.o
/home/myusername/tn40xx-0.3.6.15/tn40xx.mod.c
find: ‘/run/user/1000/gvfs’: Keine Berechtigung
/lib/modules/4.9.0-7-amd64/kernel/drivers/net/tn40xx.ko
/lib/modules/4.9.0-7-amd64/updates/dkms/tn40xx.ko
/var/lib/dkms/tn40xx
/var/lib/dkms/tn40xx/001/4.9.0-7-amd64/x86_64/module/tn40xx.ko
/sys/bus/pci/drivers/tn40xx
/sys/module/tn40xx
/sys/module/tn40xx/drivers/pci:tn40xx
 
Now that's interesting: dmesg shows the network driver...
Code:
[    3.195752] tn40xx: loading out-of-tree module taints kernel.
[    3.196449] Tehuti Network Driver, 0.3.6.16.1
... BUT what I downloaded and installed from the Edimax Homepage was labelled as version 0.3.6.15 and not 0.3.6.16. What is going on there?

And it does not mention the device name anywhere. No TN9710P nor Edimax, nothing. I also checked for Ethernet:
Code:
sudo dmesg | grep eth
[    2.334905] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) 10:78:d2:a9:70:75
[    2.334908] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
[    2.334951] e1000e 0000:00:19.0 eth0: MAC: 9, PHY: 9, PBA No: FFFFFF-0FF
[    2.339545] e1000e 0000:00:19.0 eno1: renamed from eth0

What does that mean? More specifically: If lspci sees the device and it works perfectly fine in Windows, the hardware is functional and accessible. In which step of the linux boot process does the kernel decide, that this piece of hardware is not worthy of being recognized as a "device" and especially not of being assigned a driver?

Thanks for your help!
Kind regards
mimesot
 
Last edited:
Features of Edimax EN9320TX-E


This fulfills the high-performance demands like large file transfers and HD video editing, which uses high-definition shared storage platform to possess enhanced server functionality and network functionality.
Joining the EN-9320TX-E using all the RJ45 cable, your system immediately updated to exceptional performance in quickly and reliable10Gbps high-speed. The EN-9320TX-E is an perfect choice to improve your server or workstation as the high performance, low-power intake and better-quality remedy to match the demands of low latency, higher bandwidth, high-throughput and cheap Gigabit Ethernet Adapter. The installation process is very easy I followed the guidelines mentioned on https://howtotechh.com/firestick-ethernet-adapter/.

10GbE Superior Network Rate
Equipped with a single 10 Gigabit RJ45 port, the EN-9320TX-E is capable of supplying 10 times greater performance than existing Gigabit transmissions. The adapter is a readily competent server NIC of the own networks which supports up to 2000Mbps full-duplex bandwidth capability. Together with the PCI Express rev. 2.0 specification x4 Interface, the EN-9320TX-E supplies an optimum PCI Express upgrade alternative to the primary board.


The EN-9230TX-E was created with high-speed PCI Express bus architecture which includes innovative features and
safety. What's more, it can divide devices within each VLAN from the rest of the
system for better traffic management. This provides flexible functionality while using a secure and easy network
atmosphere. Additionally, the EN-9320TX-E supports additional innovative features like 16K Jumbo Frame to maximize the throughput and IEEE 802.3x ray Control, which prevents dangers of package loss for the best performance in data transfer.

With 10Gbps high-speed, Edimax EN-9320TX-E adapter Provides cost-effective alternative on 10 Gigabit system
connection. The space can reach up to 100 meters structured Cat.6Cat or a.7 RJ-45 cabling without needing to rewire the infrastructure . Designed with the hottest 10Gbps high-speed technologies, the EN-9320TX-E is completed harmonious with 10/5/2.5/1Gbps and 100Mbps media standards and existing copper network.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!