A couple days ago, my “BT + AC600” WiFi USB dongle stopped working entirely. This issue would be pretty easy to solve on a non-immutable distribution by cloning a git repository and running some build commands. That would work on a setup that can use DKMS, but Fedora Silverblue doesn’t support it.
I figured out that the dongle needed a Realtek driver in the rtl88xx range. There were a lot of drivers that could be installed by cloning a git repository and running a make command, and most of them offered a way to do it without DKMS. Actually getting that to work on Silverblue is not so straightforward. Luckily, I found a little note from someone on this forum talking about how to install Realtek network drivers on Silverblue.
The procedure involves building kernel modules in a Toolbox and transferring the .ko files. I installed the Development Tools group as well as kernel_modules, kernel_headers, and kernel_devel through DNF. I decided to try it with a popular rtl8812au driver, but, as with the others, it threw this strange error when I tried to compile it with make && make install:
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/6.10.3-200.fc40.x86_64/build M=/var/home/rocky/Documents/projects/rtl8812au modules
[...]
make[1]: *** /lib/modules/6.10.3-200.fc40.x86_64/build: No such file or directory. Stop.
Of course, sorry. Here’s how I created the Toolbox, installed dependencies, and got stuck on building the image.
toolbox create kernel
toolbox enter kernel
sudo dnf update && sudo dnf upgrade
sudo dnf group install "Development Tools"
sudo dnf install kernel-devel kernel-headers kernel-modules
# These are dependencies of the module.
# Packages installed here may already be on the default system.
# This is just to be sure.
sudo dnf install bc mokutil elfutils
git clone https://github.com/aircrack-ng/rtl8812au
cd rtl8812au
make && make install
You can always update your system first and reboot or install the matching kernel package in your toolbox.
Note that sometimes the repos have a newer package than what’s in the image so you might need to use the archive repo (look in /etc/yum.repos.d) in your toolbox to get an older version.
I resolved the mismatch and was able to build the kernel module and install it with insmod. The issue now is that the WiFi still won’t connect. It might have something to do with modprobe not being able to access the file when I bring it up.
What’s different from the start is that now my network shows up in nmcli device.