As a user of OpenWRT, I wanted a more powerful router (memory/speed) than the Linksys router. I decided to purchase the Seeed Studio Mini Router with Raspberry Pi Compute Module 4. After less than 5 months of use, one of the ports on the router stopped functioning. After a lot of troubleshooting, it appears that the one of the Ethernet ports is dead.
Rather than purchasing another router, I decided to use another Raspberry PI 4 with a USB Ethernet (RTL-8153) which works just as well. After all the Seeed Studio Router had one USB Ethernet as well. I have slow Internet, so I am not really concerned with speed issues of the USB network adapter.
In my case, I’m more concerned with keeping my internet usage optimized with QoS, ad blocking and DNS caching to maximize what little speed I have.
OpenWrt has images for the Raspberry Pi 4 (and variations) but does not include RTL-8153 network drivers. For those of you seeking the same information, you can build a custom distribution that will include your network device.
Using
Using the OpenWrt firmware selector you can create a RPi build that will include the RTL-8153 driver that you require.
Simply click on the “> Customize installed packages” and the list of packages to be installed will appear.
Then you need to include the list of packages you would like installed. The list is quite large but should include the standard OpenWrt distribution as well as requirements for the RTL-8152/RTL-8153 USB 3.0 Ethernet adapter.
Base files for OpenWrt are within the list contain below:
base-files bcm27xx-gpu-fw bcm27xx-userland busybox ca-bundle cgi-io dnsmasq dropbear e2fsprogs firewall4 fstools fwtool getrandom jansson4 jshn jsonfilter kernel kmod-crypto-crc32c kmod-crypto-hash kmod-fs-vfat kmod-hid kmod-hid-generic kmod-input-core kmod-input-evdev kmod-lib-crc-ccitt kmod-lib-crc32c kmod-nf-conntrack kmod-nf-conntrack6 kmod-nf-flow kmod-nf-log kmod-nf-log6 kmod-nf-nat kmod-nf-nat6 kmod-nf-reject kmod-nf-reject6 kmod-nfnetlink kmod-nft-core kmod-nft-fib kmod-nft-nat kmod-nft-nat6 kmod-nft-offload kmod-nls-base kmod-nls-cp437 kmod-nls-iso8859-1 kmod-nls-utf8 kmod-ppp kmod-pppoe kmod-pppox kmod-slhc kmod-sound-arm-bcm2835 kmod-sound-core kmod-usb-core kmod-usb-hid libblkid1 libblobmsg-json20220515 libc libcomerr0 libext2fs2 libf2fs6 libgcc1 libiwinfo-data libiwinfo-lua libiwinfo20210430 libjson-c5 libjson-script20220515 liblua5.1.5 liblucihttp-lua liblucihttp0 libmnl0 libnftnl11 libnl-tiny1 libpthread librt libsmartcols1 libss2 libubox20220515 libubus-lua libubus20220601 libuci20130104 libuclient20201210 libucode20220322 libustream-wolfssl20201210 libuuid1 libwolfssl5.3.0.ee39414e logd lua luci luci-app-firewall luci-app-opkg luci-base luci-lib-base luci-lib-ip luci-lib-jsonc luci-lib-nixio luci-mod-admin-full luci-mod-network luci-mod-status luci-mod-system luci-proto-ipv6 luci-proto-ppp luci-ssl luci-theme-bootstrap mkf2fs mtd netifd nftables-json odhcp6c odhcpd-ipv6only openwrt-keyring opkg partx-utils ppp ppp-mod-pppoe procd procd-seccomp procd-ujail px5g-wolfssl rpcd rpcd-mod-file rpcd-mod-iwinfo rpcd-mod-luci rpcd-mod-rrdns ubox ubus ubusd uci uclient-fetch ucode ucode-mod-fs ucode-mod-ubus ucode-mod-uci uhttpd uhttpd-mod-ubus urandom-seed usign
Below are the additional packages required for RTL-8152 or RTL-8153 are:
kmod-mii kmod-usb-net kmod-usb-net-rtl8152
After adding all of the packages to the “customized installed packages”, select “Request Build”
After clicking request build, under Customize installed packages you should see the following:
After build is complete, simply click on the download buttons for squashfs.
Install on your SD card and insert into your Pi. You should be good to go!
Some adapters that have the RTL-8152/RTL-8153 chip:
Cable Matters Plug & Play USB to Ethernet Adapter
TP-Link USB to Ethernet Adapter (UE306)
If your ethernet adapter is not on this list but is RTL-8152 or RTL-5131, send a message and I will add it to the list for others.
Thanks for your blog. Helped a lot.