SparkLAN WPET-236ACN mPCIe 2.4/5Ghz WiFi Card Setup
This section covers the configuration needed to use the SparkLAN WPET-236ACN mPCIe card (featuring Realtek RTL8822BU chipset) which has both dual band 2.4 and 5Ghz WiFi compatibility as well as integrated BlueTooth adapter
Pre-compiled kernel modules are available to save time, see bottom of page for details
Installation From Source
Here's the procedure we used to configure the WiFi card, this process was fairly straight-forward thanks to a open source git-hub page maintaining support for the chipset.
root@raspberrypi:~/wifi# apt-get update root@raspberrypi:~/wifi# apt-get install bc git build-essential python flex bison libssl-dev libncurses5-dev root@raspberrypi:~/wifi# wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source root@raspberrypi:~/wifi# sudo chmod +x /usr/local/bin/rpi-source root@raspberrypi:~/wifi# /usr/local/bin/rpi-source -q --tag-update root@raspberrypi:~/wifi# rpi-source
That last step may argue a few times you haven't installed something, if so run the prompted command to install the missing component and re-run rpi-source.
There are two sources we have found for the driver, the second one below appears to be the latest version however causes a kernel panic on reboot (unit still reboots though)
https://github.com/fastoe/RTL8812BU_for_Raspbian
https://github.com/morrownr/88x2bu-20210702
We will use the first version since this does not cause any errors
root@raspberrypi:~/wifi/compile# git clone -b v5.6.1 https://github.com/fastoe/RTL8812BU_for_Raspbian root@raspberrypi:~/wifi/compile# cd RTL8812BU_for_Raspbian/ root@raspberrypi:~/wifi/compile/RTL8812BU_for_Raspbian# make root@raspberrypi:~/wifi/compile/RTL8812BU_for_Raspbian# make install root@raspberrypi:~/wifi# echo "options 88x2bu rtw_power_mgnt=0 rtw_ips_mode=0 rtw_enusbss=0" >/etc/modprobe.d/88x2bu.conf root@raspberrypi:~/wifi/compile/RTL8812BU_for_Raspbian# reboot
A sample log of the compile procedure can be seen HERE
After compilation, instalation and rebooting check the output of dmesg to verify the card has been detected:
root@raspberrypi:~/rtl8822bu# dmesg [ 5.486128] usb 1-1.3: New USB device found, idVendor=0bda, idProduct=b82c, bcdDevice= 2.10 [ 5.494791] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 5.502251] usb 1-1.3: Product: 802.11ac NIC [ 5.506740] usb 1-1.3: Manufacturer: Realtek [ 5.511108] usb 1-1.3: SerialNumber: 123456 [ 11.313670] Bluetooth: hci0: RTL: examining hci_ver=07 hci_rev=000b lmp_ver=07 lmp_subver=8822 [ 11.329241] Bluetooth: hci0: RTL: rom_version status=0 version=2 [ 11.329271] Bluetooth: hci0: RTL: loading rtl_bt/rtl8822b_fw.bin [ 11.342814] Bluetooth: hci0: RTL: loading rtl_bt/rtl8822b_config.bin [ 11.343749] Bluetooth: hci0: RTL: cfg_sz 14, total sz 20270 [ 11.345524] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 11.361211] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid [ 11.560798] 88x2bu: loading out-of-tree module taints kernel. [ 11.714744] random: crng init done [ 11.714768] random: 7 urandom warning(s) missed due to ratelimiting [ 12.172787] tpm_tis_spi spi1.0: 2.0 TPM (device-id 0x1B, rev-id 22) [ 12.178655] Bluetooth: hci0: RTL: fw version 0xab6b705c
Next let's find the local 5Ghz network :
root@raspberrypi:~# iwlist wlan0 scanning wlan0 Scan completed : Cell 01 - Address: E0:28:6D:B8:79:1E ESSID:"EMT5" Protocol:IEEE 802.11AC Mode:Master Frequency:5.26 GHz (Channel 52) Encryption key:on Bit Rates:1.3 Gb/s Extra:rsn_ie=30140100000fac040100000fac040100000fac020000 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: DD1D0050F204104A0001101044000102103C0001031049000600372A000120 Quality=79/100 Signal level=50/100 Extra:fm=0001 Cell 02 - Address: E0:28:6D:B8:79:1D ESSID:"EMT2" Protocol:IEEE 802.11bgn Mode:Master Frequency:2.412 GHz (Channel 1) Encryption key:on Bit Rates:144 Mb/s Extra:rsn_ie=30140100000fac040100000fac040100000fac020000 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: DD6F0050F204104A0001101044000102103B000103104700109280DAACF0B7FE867067E0286DB8791D1021000341564D1023000446426F78102400043030303010420004303030301054000800060050F20400011011000446426F78100800022388103C0001031049000600372A000120 Quality=48/100 Signal level=61/100 Extra:fm=0003
There are two criticial settings needed in in wpa_supplicant.conf file before we can sucessfully bring up the network interface, these must be correctly set or the system will fail to respond when asking for the interfaces to be enabled.
1. WiFi Config
Enter the target network ESSID (and password when prompted) to generate the wpa authentication details for connecting :
root@raspberrypi:~# wpa_passphrase EMT5 network={ ssid="EMT5" #psk="xxxxxxxx" psk=4265dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx }
Add these generated details to the bottom of the file below
/etc/wpa_supplicant/wpa_supplicant.conf
2. Reglatory domain setting (Country code)
Add the line below to wpa_supplicant.conf
country=??
Where ?? is your country code (dictating your WiFi power/range)
Note : This setting MUST be present when system is booted or WiFi will be disabled and you will be unable to bring up the interface.
A sample config file is shown here
root@raspberrypi:~# cat /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=GB network={ ssid="dd-wrtAC" #psk="xxxxxxxx" psk=4265dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx }
After this is done you'll need to reboot the system
Note that the network interface commands from Raspbian Stretch onwards have changed
ifdown wlan0 => ifconfig wlan0 down ifup wlan0 => ifconfig wlan0 up
Once rebooted you can check connectivity as below :
root@raspberrypi:~# iwconfig wlan0 IEEE 802.11AC ESSID:"EMT5" Nickname:"" Mode:Managed Frequency:5.26 GHz Access Point: E0:28:6D:B8:79:1E Bit Rate:867 Mb/s Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:****-****-****-****-****-****-****-**** Security mode:open Power Management:off Link Quality=78/100 Signal level=52/100 Noise level=0/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 lo no wireless extensions. eth0 no wireless extensions. root@raspberrypi:~# ifconfig wlan0 wlan0: flags=4163 mtu 1500 inet 192.168.1.133 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::f47f:4f32:2a75:91a7 prefixlen 64 scopeid 0x20 ether 00:0e:8e:8c:ed:85 txqueuelen 1000 (Ethernet) RX packets 3858 bytes 601742 (587.6 KiB) RX errors 0 dropped 21 overruns 0 frame 0 TX packets 70 bytes 11489 (11.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
We can test the bluetooth interface has been detected using the standard hci tools
root@raspberrypi:~# hciconfig hci0: Type: Primary Bus: USB BD Address: 00:05:44:33:22:11 ACL MTU: 1021:8 SCO MTU: 255:16 UP RUNNING RX bytes:688 acl:0 sco:0 events:46 errors:0 TX bytes:2675 acl:0 sco:0 commands:46 errors:
Pre-Compiled Driver Modules
Third party suppport providing pre-compiled kernel modules files for different WiFi cards can be found on the link below :
Pre-compiled Realtek WiFi driver kernel modules for all kernel versions
For kernel version 5.10.92-v7+ we have packaged up the pre-compiled kernel module for easy usage, to check which version you are using use the below
root@raspberrypi:~# uname -a Linux raspberrypi 5.10.92-v7+ #1514 SMP Mon Jan 17 17:36:39 GMT 2022 armv7l GNU/Linux
Precompiled kernel module for 5.10.92-v7+ kernel download link :
GDrive Download link for 8822BU v5.6 driver file for Kernel 5.10.92
GDrive Download link for 8822BU v5.13.1 driver file for Kernel 5.10.92
We haven't gone as far as to test out full DKMS configuration, but expect that would also work.
WiFi Configuration Instructions for Raspbian Buster/Stretch/Jessie