USB-Ethernet as 4th LAN on ASUS RT-AX53

Friends, could you please help me figure out how to get a USB-Ethernet network card (based on Realtek RTL8152) to work as a fourth LAN interface? I'm at a loss on where to look next.

Here’s what I’ve done so far:

  1. Installed the necessary driver: opkg install kmod-usb-net-rtl8152.
  2. Verified that the device is recognized: dmesg | grep usb.
  3. Confirmed that the network interface (eth1) has appeared: ip link show.
  4. Added it in the Devices section (Network - Interfaces - Devices) as a new device, assigning it eth1 and confirming that it detected the network card's MAC address.
  5. Included it in the network bridge (br-lan) along with my existing devices (switch port: lan1, lan2, lan3). The new device eth1 shows up there as a Network Device.

However, nothing seems to be working—the interface remains in the DOWN state. The command ip link set eth1 up does not have any effect, and tcpdump doesn’t capture any traffic on this interface.

The adapter lights up red when devices are connected. Devices on the other side do not receive an IP address and see it as an unidentified interface. Manually setting network parameters does not seem to help. The interface state always shows:

eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel master br-lan state DOWN qlen 1000
    link/ether MAC-ADDRESS brd ff:ff:ff:ff:ff:ff

OpenWRT 23.05.3, ASUS RT-AX53U.

You can purchase extra switch, like ubiquiti, mikrotik, or zyxel for larger scale, the USB2.0 will be 480Mbps which is less than required 2000Mbps for gigabit ethernet.

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall
lsusb
ethtool -i eth1
ethtool eth1
mii-tool -v eth1

USB 2.0 Ethernet card will enough for my purposes)

ubus call system board:
{
        "kernel": "5.15.150",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7621 ver:1 eco:3",
        "model": "ASUS RT-AX53U",
        "board_name": "asus,rt-ax53u",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.3",
                "revision": "r23809-234f1a2efa",
                "target": "ramips/mt7621",
                "description": "OpenWrt 23.05.3 r23809-234f1a2efa"
        }
}

cat /etc/config/network:

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'changed'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth1'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'

cat /etc/config/wireless:

config wifi-device 'radio0'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
        option channel 'auto'
        option band '2g'
        option htmode 'HE20'
        option cell_density '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'Kazim_Master'
        option encryption 'sae'
config wifi-device 'radio1'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0+1'
        option channel '36'
        option band '5g'
        option htmode 'HE80'
        option cell_density '0'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'LngrZ_UHD'
        option encryption 'sae'

cat /etc/config/dhcp:

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option localservice '1'
        option ednspacket_max '1232'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        option ra_slaac '1'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'
        option start '100'
        option limit '150'
        option leasetime '12h'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

cat /etc/config/firewall:

config defaults
        option syn_flood '1'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'
        list network 'Planernaya_VPN'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'
        list network 'wan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

lsusb:

Bus 001 Device 007: ID 0bda:8152 Realtek USB 10/100 LAN
Bus 002 Device 001: ID 1d6b:0003 Linux 5.15.150 xhci-hcd xHCI Host Controller
Bus 001 Device 001: ID 1d6b:0002 Linux 5.15.150 xhci-hcd xHCI Host Controller

ethtool -i eth1:

driver: r8152
version: v1.12.13
firmware-version:
expansion-rom-version:
bus-info: usb-1e1c0000.xhci-2
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

ethtool eth1:

Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 32
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00007fff (32767)
                               drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
        Link detected: no

mii-tool -v eth1:

eth1: negotiated 100baseTx-FD, link ok
  product info: vendor 00:07:32, model 8 rev 2
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

Seems correctly connected & configured? Can you check full-duples is also perceived in other cable end?

Ok, thanks for replies.

ethtool enp2s0:

Settings for enp2s0:
 Supported ports: [ TP  MII ]
 Supported link modes:   10baseT/Half 10baseT/Full
                         100baseT/Half 100baseT/Full
                         1000baseT/Full
 Supported pause frame use: Symmetric Receive-only
 Supports auto-negotiation: Yes
 Supported FEC modes: Not reported
 Advertised link modes:  10baseT/Half 10baseT/Full
                         100baseT/Half 100baseT/Full
                         1000baseT/Full
 Advertised pause frame use: Symmetric Receive-only
 Advertised auto-negotiation: Yes
 Advertised FEC modes: Not reported
 Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                      100baseT/Half 100baseT/Full
 Link partner advertised pause frame use: No
 Link partner advertised auto-negotiation: Yes
 Link partner advertised FEC modes: Not reported
 Speed: 100Mb/s
 Duplex: Full
 Auto-negotiation: on
 master-slave cfg: preferred slave
 master-slave status: slave
 Port: Twisted Pair
 PHYAD: 0
 Transceiver: external
 MDI-X: Unknown
netlink error: Operation not permitted
 Link detected: yes

ethtool -i enp2s0:


driver: r8169
version: 6.8.0-38-generic
firmware-version: rtl8168h-2_0.0.2 02/26/15
expansion-rom-version: 
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

It has generic USB ID. What is on the box like shop link to the device?
From 2 things provided - remove -52 kmod and instal -69 one, at least on desktop linux either supports particular USB ID.

I'm sorry, but I not understand: Should I remove the current kmod-usb-net-rtl8152 (and all dependencies) from OpenWRT and after install rtl8169, right?

From your openwrt and ?ubuntu? reports it seems so. Cant get worse.

Nope 52 is usb 69 is pcie, so driver detects your adapter as 100Mbps with 100Mbps link. USB of router may not provide max nominal usb2 watts, check on a PC with linux.

Adapter works on desktop Linux, Windows and even Android phone. USB2 port on this router work with USB-PCIe nvme drives, therefore power there should be enough power (watts).

WDYM by " it does not work"
It works differently than pci adapter in ubuntu laptop?

Should I check this USB-Ethernet adapter on desktop Linux with same driver, right?

Precisely, and note kernel version.
EDIT: just auto-detected driver, very unlikely it is dfferent from OpenWRT but there is 1% chance they did some better engineering than just providing upstream kernel driver.

Just check it: this adapter works with default rtl8152 driver on Ubuntu with 6.8.0 kernel.

Lets try snapshot (kernel 6.6)

  • Back up your configuration
  • go to firmware-selector.openwrt.org
  • paste output of opkg list-installed | cut -d " " -f 1 for package list
  • download sysupgrade rev 23.05.4 image (you will need it later)
  • change release to SNAPSHOT
  • paste same package list
  • download sysupgrade snapshot
  • sysupgrade to snapshot (your config is quite generic) and check if port magically works on kernel 6.6
  • sysupgrade back to 23.05.4 resetting config
  • restore config from first step.

Next steps:
if worked - chase enabling patch (read kernel history of driver file(s)
if not - chase USB port property differences failing the device (lsusb -v)