I've been using OpenWRT on various WiFi routers for a while. When I update the router to a new version of OpenWRT, it wipes out all of my packages, so I just ssh to the router and paste in a little script I have to re-install the necessary packages. This works because the packages I need (ddns, 6in4, etc.) aren't required for basic IPv4 connectivity. Hence, my router works well enough to bootstrap itself back to fully operational.
Now, however, I would like to place my WiFi access points in a different location and use OpenWRT for a non-WiFi router. I got a Raspberry PI 4b and an ASUS USB-C2500 Ethernet dongle, and was hoping to use the built-in Ethernet port for the WAN and the faster 2.5GBaseT USB adapter for the LAN. (The Ethernet adapter seems to work under archlinuxarm.)
Unfortunately, the Ethernet dongle does not work out of the box on OpenWRT, because it requires installation of a separate driver package (presumably kmod-usb-net-cdc-ether or similar). I could install the driver now before deploying the Raspberry Pi as my router. The problem is that if I do so, it will no longer be simple to upgrade OpenWRT, as I will lose the ability to ssh into the box when the USB driver has been deleted after an upgrade.
Does anyone have suggestions on how best to handle this situation? I've considered using VLANs to connect the Raspberry Pi twice to the LAN, once on some management VLAN. Or I thought of making the raspberry pi a client on the WiFi network. But these are kind of gross solutions. Is there a cleaner way to update OpenWRT when it needs an Ethernet driver?
since you're using a Pi, you have a built-in console. Simply connect a monitor and a keyboard. You can login directly to OpenWrt on the pi. The built-in ethernet port (eth0) will be LAN by default, but you can change it to WAN pretty easily and then connect it to your upstream device. From there, use the console to install the packages necessary to get your USB ethernet adapter running.
Another option is to use the image builder to create an image that is pre-loaded with your packages (and optionally your configuration files) so that it is ready to go out of the box. You may want to do the console thing first to get a working configuration and to test the drivers for your ethernet adapter.
So just to conclude this thread, in case people later come across it, the image builder was a good solution. The information is readily available, but I'll summarize it here for anyone who comes across this thread.
First, you need to figure out what driver you need. To do this, you can plug the device into a desktop/server linux distribution, or a full-fledged arm distro on your Raspberry Pi (e.g., archlinuxarm). In my case, after doing this, the command ip link revealed that the USB Ethernet interface was called enp99s0u1u1c2. So then I ran:
which showed that the module I needed was cdc_ncm. So then updating the package list (opkg update) and searching for cdc on the luci gui software page, or running opkg list grep cdc, shows the corresponding package iskmod-usb-net-cdc-ncm. The only tricky thing is changing the underscore _ to a hyphen - in the package name, since modules use underscore where packages use hyphens.
Now to get the image builder. When you click the "All firmware images" link on the openwrt.org home page and click through to your platform, there are some extra files to download at the bottom. For example, the Raspberry Pi 4b is the bcm27xx/bcm2711 target, so you can go to to download release 21.02.1. At the bottom of the page is a file openwrt-imagebuilder-21.02.1-bcm27xx-bcm2711.Linux-x86_64.tar.xz, which you can download and unpack.
This adds the extra Ethernet drivers that I need (I actually have two different USB Ethernet dongles, so am adding drivers for both). You need to add luci-ssl as well, because the image builder by default gives you everything except the web interface. You can add other packages here, as well as extra configuration files by including a FILES=files argument and the placing the files you want to overlay onto the image in a files subdirectory you create.
Finally, you will get a file bin/targets/*/*/openwrt-*-squashfs-sysupgrade.img.gz that you can use to upgrade your system. Either upload it in the "flash firmware" page of luci, or copy it to /tmp on your router with the scp command and then run sysupgrade -v openwrt-*-sysupgrade.img.gz on the router.
Just one more note that I mentioned using the ASUS USB-C2500, but actually this adapter does not work under linux, despite claims. I had two adapters, both were recognized, and the non-ASUS one worked. So now I'm using a StarTech US5GA30, with the kmod-usb-net-aqc111 package. It doesn't get anywhere near the 5Gbps link speed it negotiates, but I've been able to transmit at over 2Gbps, so it's better than the built-in 1000BaseT.
Actually, it's worst than that. I had the AQC111U on the Raspberry Pi plugged into a 10G switch, and a server plugged into the same switch. The server was using 10GBaseT, but if I downgraded it it to 2.5GBase-T, then I could get close to 2.5Gbps, but when the server had its native 10G link speed, the throughput was worse. Also iperf3 reported a bunch of retransmissions. Then I tried it with a laptop, and it was a bit better.
However, the ACQ111 really fell over when I actually started routing through my raspberry pi. It cut download throughput almost in half, from 920Mbps with the Gigabit adapter to around 500 Mbps. So basically I decided to use the r8153 adapter instead. Kind of a waste of a port on my 10Gig switch, but the 1Gig adapter just works better than the 5Gig one in practice.
The adapters I have and use are: Realtek Gaming GbE Family Controller and the Killer 2.5GB adapter. I have a USBC to ethernet adapter that I also tried to bypass a possible ethernet jack issue but the computer is brand new also.
Thanks very much guys for your help, I will try to get another internal NIC installed or swap the drivers. I did try the different adapter that goes into USBC gen 3.2 to ethernet and it works exactly the same. Having said that it does still seem to be a driver problem not compatible with windows server 2019 standard.
Hi - Thanks for posting! Android platforms can vary a lot, depending on what major version and what drivers the phone/device maker may have custom built into the kernel. So there is no blanket answer, unfortunately. Can you link to exactly which Android device you have?
You only need to plug in the Plugable USB 2.0 to Fast Ethernet Adapter USB2-E100, connect a live Ethernet cable and wait for a couple of minutes for auto-configuration of the network settings. The Link and Power LEDs on the device will light up and you will have connectivity.
I installed Ubuntu Server without access to the internet, however I now need to find a way to install the driver manually using terminal commands(new to Linux so please explain exactly how do I do it).
I suppose I have to download Realtek drivers and save them to USB (through another computer, of course). Then I have no idea how to install them, because I don't have a GUI on Linux Server and have no idea what commands to use. Found something on forum but didn't work for me.
Click the button below to download the drivers for macOS 12.x Monterey. Then, scroll down to the Installation Instructions section for instructions to uninstall the current driver before installing the latest version.
Click the button below to download the drivers, and then scroll down to the new Update for M1 Systems, and macOS 11.5.1+ or macOS 12 Monterey section for instructions to uninstall the current driver before installing the latest version.
Specifically, for Plugable (and other major brands), the new driver architecture caused compatibility issues with USB Ethernet adapters featuring the ASIX AX88179 chipset used in our USB3-E1000 and USBC-E1000 adapters, among others. While we take their plug and play functionality for granted, Ethernet drivers are complex, and building stable, performant drivers on the new DEXT architecture and the requisite new code signing process, was not a trivial task.
(Please note, these drivers have only been tested by Plugable with the USB3-E1000 and USBC-E1000 adapters that we manufacture. If you have an adapter from another manufacturer and encounter issues with this driver, we recommend reaching out to them if you encounter any issues, though we encourage people to leave comments about their experiences below for the benefit of others.)
ASIX has been alerted to these issues and continues to investigate these behaviors while working towards a resolution as of May 25, 2021. If you encounter any additional issues that you can reproduce, please let us know the steps to reproduce the problem and work with ASIX on investigating the behavior.
Are Ethernet Adapters from other brands affected by this OS update?
Yes, all brands of USB Ethernet Adapters that use ASIX chips and drivers are affected. This includes Amazon, Anker, Dell, Uni, UGREEN, Cable Matters, etc. Regardless of brand, if the adapter uses ASIX USB to Ethernet technology that requires external driver installation for a network connection, it will no longer function as expected after updating to macOS 11 without a DEXT Driver Extension as ASIX has provided.
Is this a temporary or permanent situation?
We expect that with the new DEXT driver solution, there should be minimal impact on the utilization of ASIX AX88179-based Ethernet adapters going forward. In addition, this driver package should remain long-term functional outside of any behaviors potentially introduced via a macOS update.
Are there any other options to add a wired network connection to my macOS 11 system?
Yes! Wired Ethernet solutions utilizing common Realtek ICs are fully functional as they rely on drivers built into the OS and require no further installation from an end-user.