【Good news】I successfully use five wireless dongles of 4 chips on VisionFive 2

I have five wireless dongles:

They are:

  • RTL8192CU:“EDUP” in the first picture
  • MT7601U:one is “Mi” in the first picture,second is “du” in the first picture
  • ECR6600U:the green dongle in the first picture, Officially provided.
  • RTL8832AU:“EDUP” in the second picture

In these wireless dongles, both ECR6600U and RTL8832AU support WiFi6.
ECR6600U supports 2.4GHz. RTL8832AU supports 2.4GHz and 5GHz.

I successfully use these five wireless dongles on VisionFive 2.
My system is Debian image69.

Because I am a Chinese user, I wrote a post in Chinese to explain how to use these USB wireless dongles.
The url is https://forum.rvspace.org/t/2-usb-rtl8832au-wifi6/1595.
Maybe you need to use Google Translate to help you to view.
I will arrange time to write an English document.

Today is Chinese New Year, My best wishes to everyone.


(Bad news)
Just tried your write up for the ECR6600U (again).
Still does not work.
Driver compiles, but is very unstable (repeated password prompts + stack traces galore).
Not useable.


When ecr6600u is connected to the board, two network devices will appear.
One is for normal mode, other is for WiFi-Direct.

You can try these steps

# unplug ECR6600U, then plug in ECR6600U
dmesg | grep -Ei 'wlan|p2p'

The device with “…p2p0…” is WiFi-Direct
The device with “…wlan…” is for WiFI-Normal.

If you want to connect to WiFi router, you need to use the device for WiFI-Normal.


Thanks for the information.
I am travelling at the moment. I will give your suggestion a try later in the week.



1 Like

I can add in that the Atheros AR9271 works with the open source firmware-ath9k-htc package, a fitting match to the open nature of this project

After loading the ecr6600u driver, did you managed to connect to a 2.4GHz WiFi with WPA2?
Did you use wpa_supplicant?

I use nmcli command:

# config
sudo nmcli device wifi connect YOUR-SSID password YOUR-PWD ifname wlan0 &

# autostart
sudo nmcli connection modify YOUR-SSID connection.autoconnect yes

@HonestQiao is correct; while many of us are familiar with Pi-Based instructions about directly editing wpa-config, dhcpd.conf etc. It’s not the best way to do it anymore.

For recent systemd based distros the correct way to configure networking on the CLI is with nmicli, this will update the lower level config files correctly and restart services as needed.

You don’t have to like systemd! But if working with a distro based on it you really need to learn to use it properly, otherwise you lose time and sanity fighting it.
This is why non-systemd distros exits, for those who like to hand edit config files without having somebody else’s tooling messing it up. :wink: (I run a from-scratch-bootstrapped FreeBSD for my home server, which is perhaps taking this to extremes)


No folks, I don’t recommend buying any WiFi dongles with the RTL8832AU chip.

chipset - rtl8832au / rtl8852au - AX1800 - USB 3

No driver is posted for this chipset.

The rtl8852/32au chipset was the first AX class chipset that was available for use in USB WiFi adapters. Unfortunately, Realtek decided to support it with an out-of-kernel driver on Linux instead of doing the right thing and providing a mac80211 technology in-kernel driver. I tested the provided driver (v1.15.0.1). The results were terrible. As many of you know, I have a lot of USB WiFi adapters that I use and test. I cannot recall an experience as bad as this and I have been using USB WiFi adapters for many years. I experienced numerous system lockups that required me to pull the plug to get things going again. Additionally many features are simply not working. Power saving does not work. DFS channels do not work in AP mode. WPA3 did not work in any mode. I saw problems in basic client mode that I cannot explain. The driver is VERY BAD. Avoid adapters based on the 8852/32au chipset.

The Good:

  • Nothing.

The Bad:

  • A long list of bad.
  • The adapter I tested is multi-state and it appears that most adapters that use this chipset are multi-state. Not good.

Recommendation: AVOID adapters based on this chipset. You will be disappointed. The driver is an out-of-kernel driver that is not consistent with Linux Wireless standards and it is a terrible driver. Recommend Linux uders seek out usb wifi adapters that use the mt7921au chipset if seeking an adapter that is WiFi 6 capable.

Over the night, ECR6600U disconnects from the WiFi. To reconnect, I have to do ifconfig down and ifconfig up. The router (Tenda AC15, FreshTomato 2022.7) sees the WiFi signal, but packets are not received by ECR6600U (I have a serial cable connected, tcpdump on VisionFive2 does not see ping packets sent from the router).

Now I’m playing with a rtl8822bu (USB D-Link Corp. 802.11ac).
The folder /media/vision/VisionFive2/linux contains a kernel compiled for ECR6600U using @HonestQiao tutorial in chinese. This is a native compilation on the VisionFive 2 board.

root@starfive:~# lsusb 
Bus 001 Device 004: ID 2001:331e D-Link Corp. 802.11ac NIC
root@starfive:/media/wireless/rtl88x2BU# git clone https://github.com/morrownr/88x2bu-20210702.git
root@starfive:/media/wireless/rtl88x2BU# cd 88x2bu-20210702/
root@starfive:/media/wireless/rtl88x2BU/88x2bu-20210702# make V=1 KSRC=/media/vision/VisionFive2/linux ARCH=riscv -j4
root@starfive:/media/wireless/rtl88x2BU/88x2bu-20210702# mkdir -p /lib/modules/5.15.0-starfive/kernel/drivers/net/wireless/
root@starfive:/media/wireless/rtl88x2BU/88x2bu-20210702# make V=1  KSRC=/media/vision/VisionFive2/linux ARCH=riscv install
root@starfive:/media/wireless/rtl88x2BU/88x2bu-20210702# cp /lib/modules/5.15.0-starfive/kernel/drivers/net/wireless/88x2bu.ko /lib/modules/5.15.0-starfive/.
root@starfive:/media/wireless/rtl88x2BU/88x2bu-20210702# cd /lib/modules/5.15.0-starfive/  
root@starfive:/lib/modules/5.15.0-starfive# modprobe 88x2bu  
root@starfive:/lib/modules/5.15.0-starfive# lsmod 
Module                  Size  Used by
88x2bu               4337664  0
root@starfive:~# ifconfig -a
wlxf0b4d2b08598: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether f0:b4:d2:b0:85:98  txqueuelen 1000  (Ethernet)
        RX packets 2257  bytes 443824 (433.4 KiB)
        RX errors 0  dropped 361  overruns 0  frame 0
        TX packets 188  bytes 37085 (36.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
WiFi: hilton
Password: pass2023
root@starfive:~# nmcli device wifi connect hilton password pass2023 ifname wlxf0b4d2b08598
root@starfive:~# nmcli connection modify hilton connection.autoconnect yes

I’m a beginner. Some of the steps above might be wrong. But the WiFi works. :slight_smile:

1 Like

Hi there, i’m new to this board. So, basically i have a project that required to use this board. Currently, i’m finding a wifi dongle for the board. I tried to find ecr660u-wifi module but couldn’t locate it. Now i’m trying your approach which is using the rtl8822bu (USB D-Link Corp. 802.11ac). May i ask, is this the one you are using and can the board successfully connected to the wifi? Is the wifi dongle in this link same as what you mentioned?https://www.dlink.com/en/products/dwa-181–ac1300-mu-mimo-wi-fi-nano-usb-adapter Hope can get a reply :slightly_smiling_face:

Yes, my adapter is DWA-181 (bought in July 2022, Adaptor wireless DWA-181 AC1300 MU-MIMO Nano USB - eMAG.ro).

you pretty much can’t go wrong with the comfast mediatek mt7921au based adapter, at least once kernel 6.6 is the default one

I’ve managed to take cwt’s arch linux, compile my own 6.6 kernel and then set up multiple openwrt containers (with systemd-nspawn), giving an ethernet port to each one and passing the wireless adapter through to one and it runs as an access point. It all just works. Having no VLAN support is a bit of a drawback but perhaps it can be patched.

I think the visionfive 2 has a niche place where if you’re looking to run something obscure so as to be harder to mess with + good network + decent i/o + low power it is pretty good. With the metal case (so no fan), booted off sd card and both ethernet ports and the wireless adapter plugged in it idles at a nice 2 watts.

If you’re buying the metal case though, you need to also buy a thermal pad to go with it. I can’t 100% verify it right now because i’m still waiting for one to arrive but you’re probably looking at buying a 3mm thick pad or something like 2.7mm (bit less ?) worth of copper shim with thermal paste. Though maybe cases are different so be careful make sure not to end up pushing down too hard on the cpu.

1 Like

right now im connecting the board to ethernet and trying to compile the basic kernel from github but keep getting this error:

can you help me :face_exhaling:?

You could try to configure git to use HTTP/1.1 while cloning and return to HTTP/2 after you finished cloning.

git config --global http.version HTTP/1.1
git clone https://github.com/starfive-tech/linux.git
git config --global http.version HTTP/2

You can also directly download the compressed package without cloning

thanks @nugu53 and @HonestQiao for the help…i need some help on other part:

i have trouble with the insertion of modules here…please help

Maybe you should refer to nugu53’s steps.

yup im following him, but am stuck at the modprobe


cd /path/to/source
make clean
sudo make install
sudo modprobe -a 88x2bu