Closed MDAR closed 2 years ago
Wow! Thanks for the hard work. I will be busy the rest of the afternoon, I will check in this evening.
sudo make dkms_remove
sudo apt -y install linux-dtb-edge-meson64 linux-headers-edge-meson64 linux-image-edge-meson64 linux-u-boot-odroidn2-edge
. /usr/lib/u-boot/platform_install.sh
sudo write_uboot_platform "$DIR" "$(lsblk -no PKNAME "$(findmnt -no SOURCE /)")"
sudo reboot
# after reboot
sudo apt -y purge linux-dtb-current-meson64 linux-headers-current-meson64 linux-image-current-meson64
You could check now whether the driver shipped by the new kernel works, else again:
cd rtl8812au*
sudo make dkms_install
modprobe 88XXau
Now it works. So it looks like the recent version of this driver is not compatible with Linux v5.10 anymore. Additional hassle causes, that even if the internal version string suffix has been raised to 20220715, the driver still reports v5.6.4.2_35491.20191025
, matching the one shipped with the kernel, so that DKMS is not installing the new one without passing the --force
option.
Unfortunately when I was able to try it this morning, I came up with this error when trying to install the packages:
root@DietPi:~/rtl8812au# sudo apt -y install linux-dtb-next-meson64 linux-headers-next-meson64 linux-image-next-meson64 linux-u-boot-odroidn2-edge. /usr/lib/u-boot/platform_install.sh
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package linux-dtb-next-meson64
E: Unable to locate package linux-headers-next-meson64
E: Unable to locate package linux-image-next-meson64
Ah sorry, it's "edge", not "next" in the package names. I edited it above.
I have somehow managed to mangle the build so I need to wipe the install and start over fresh. Do I need to start from your comment from yesterday with the "fresh Odroid N2" steps or from the steps from today?
Latest update. After getting stuck I went ahead and rebooted, and the RTL8812au card was working! The desktop, ssh, and xrdp were broken and didn't work, but the card was working. So, in an effort to start over fresh, I wiped the card and reinstalled. Went through the normal start-up and initial config stuff, and the card didn't work. So, I started over with the install part of the packages that were renamed to edge. That worked fine. Then, this happened:
root@DietPi:~# sudo write_uboot_platform "$DIR" "$(lsblk -no PKNAME "$(findmnt -no SOURCE /)")"
sudo: write_uboot_platform: command not found
I went ahead and rebooted the board as that was the next step. I had the rtl8812au card plugged in and upon reboot, it got a blue light on it which tells me it is working. Almost too well. I had to unplug it to gain access to the device through the Ethernet. Once back in I was able to run the last command to purge the packages, and now I can see this:
root@DietPi:~# iw wlan0 info
Interface wlan0
ifindex 3
wdev 0x1
addr 00:c0:ca:ac:42:c3
type managed
wiphy 0
channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
txpower 20.00 dBm
I still need to do some more work to make sure the adapter is working as intended, but this is a very promising step in the right direction! I'll update here after I do more testing.
write_uboot_platform
is part of the sourced script the line before on the instructions. However/obviously, likely it is not needed. Older U-Boot usually works with newer kernel as well.
So the WiFi adapter is working now without compiling it via dkms? Or did you do that as well? Probably it got updated on edge kernel, fixing the issue.
The dkms compile didn't work, but I also didn't need to do it. After I purged the packages I started to investigate the operation. When I went to dietpi-config
and looked at the network adapters, it showed an active interface so I never went back to do those final three commands.
I have also been able to confirm that the adapter works as intended and can scan both bands. I can also put it into monitor mode (my primary intention) and it works well in scanning all the spectrum the chip can support. I haven't tried packet or frame injection but I will try that eventually. For most people, I think this is all they would need to make the rtl8812au chip work, at least for the time being.
sudo apt -y install linux-dtb-edge-meson64 linux-headers-edge-meson64 linux-image-edge-meson64 linux-u-boot-odroidn2-edge . /usr/lib/u-boot/platform_install.sh
sudo reboot
# after reboot
sudo apt -y purge linux-dtb-current-meson64 linux-headers-current-meson64 linux-image-current-meson64
Just to put a final bow on this instance, this is what I am running currently:
DietPi v8.7.1
Odroid C4/HC4 (aarch64)
$ uname -a
Linux DietPi 5.17.5-meson64 #22.05.1 SMP PREEMPT Sat May 28 08:20:29 UTC 2022 aarch64 GNU/Linux
Okay great, so it has been resolved with edge kernel already 🙂. It may still take a while until this gets merged into "current" kernel branch, so I leave this open. On Linux 5.10 an older version of the driver sources should build successfully, but we can find this out when someone else is landing here and moving to "edge" is not an option.
I'm going to close this. There was quite some back and forth with the 88XXau
/88XXcu
kernel driver in Armbian edge kernels, but now they reliable work with my RTL8811CU adapters.
I only hope it does not break again with Linux 6.0: https://github.com/aircrack-ng/rtl8812au/issues/1006, https://github.com/aircrack-ng/rtl8812au/pull/1008
Better maintained and on newer branch seems to be: https://github.com/morrownr/8821au-20210708 Probably we can suggest to Armbian to switch.
A pain that these drivers are not maintained upstream as part of Linux kernel itself, so that it does not rely on reports and fixes from the community when running into compiling issues with newer Linux versions...
Creating a bug report/issue
Required Information
DietPi version | cat /boot/dietpi/.version G_DIETPI_VERSION_CORE=7 G_DIETPI_VERSION_SUB=1 G_DIETPI_VERSION_RC=2 G_GITBRANCH='master' G_GITOWNER='MichaIng'
Distro version |
echo $G_DISTRO_NAME
orcat /etc/debian_version
10.9
Kernel version |
uname -a
Linux openHAB2-C4 4.9.241-arm64 #1 SMP PREEMPT Thu Feb 25 17:57:15 CET 2021 aarch64 GNU/Linux
SBC model |
echo $G_HW_MODEL_NAME
or (EG: RPi3) Odroid C4/HC4 (aarch64)Power supply used | (EG: 5V 1A RAVpower) 5V 2Amp
SDcard used | (EG: SanDisk ultra) Emmc 16GB
Additional Information (if applicable)
Purchased a WiFi USB dongle from Odroid to go with this C4.
From these options, Odroid Connectivity options
I chose this one, which is detected as a Realtek RTL8811AU https://www.odroid.co.uk/odroid-accessories/odroid-connectivity?product_id=870
Steps to reproduce
LSUSB shows the USB device connected
But
dietpi-config > 7 > WiFi
reports that "No supported WiFi hardware was found"Expected behaviour
I'm not entirely sure, as I've never setup a WiFi device on an SBC, I've only ever added second Ethernet dongles
Extra details