Orange Pi has not released the WiFi module for the Orange Pi 5 yet which has left some people in a difficult position. While working on this problem I discovered an adapter that claimed to be able to let me use normal E-keyed WiFi adapters (commonly found in laptops and tablets) with the Orange Pi 5 using an adapter.
I received and tested the adapter and I am pleased to report it works perfectly! There are some caveats though such as you need a driver for your WiFi card within your OS (and often firmware as well).
In this guide I’ll show you how to get this working with the Orange Pi 5 using Linux. Let’s get started!
Convert a M.2 Key-E or Key A+E module (such as WiFi, Bluetooth, or Dual Band Wireless Module, etc.) to be used with M Key M.2 Socket. Supports Bluetooth and Dual Band Wireless Modules.
Custom WiFi Module (Added 1/15/2023)
The Orange Pi 5 official wireless module is designed to fit into a M-keyed M.2 slot (the only one the Orange Pi 5 has). This WiFi adapter will work with both Linux and Android.
The Orange Pi 5 only has a single M.2 slot and is it M-keyed. This is meant for storage devices typically. Because of this Orange Pi is releasing a “custom PCB” wireless adapter for the Orange Pi 5 to allow you to choose between using the M.2 slot for storage or WiFi.
Normal WiFi adapters will not fit into the Orange Pi 5’s M.2 slot basically without using an adapter. It looks like this:
When I first got the adapter I noticed that I could see all of the adapters but it was failing to load the firmware. That is because the Orange Pi 5 does not come with the linux-firmware package installed.
Install the package with:
sudo apt install linux-firmware -y
Tested WiFi Adapters
After installing the linux-firmware package the following adapters worked for me:
Before installing the Linux firmware package I would get errors in dmesg saying that the firmware was missing. After installing the linux-firmware package all of my Intel WiFi adapters became plug and play.
Best Adapter Options
Until I hear more from some of you in the comments that try this I highly recommend using Intel adapters for this. They’re easy to find and almost every one I had in old laptops was an Intel adapter.
There’s an awesome list of Linux supported adapters here from Intel. This list is specifically for the Linux iwlwifi driver and tells you which version of Linux support was added for the WiFi adapter.
The kernel at time of writing was:
orangepi@orangepi5:~$ uname -a
Linux orangepi5 5.10.110-rockchip-rk3588 #1.0.6 SMP Fri Dec 16 15:41:15 CST 2022 aarch64 aarch64 aarch64 GNU/Linux
This means that anything on the above list that is supported in kernel version 5.10 or earlier should be supported!
Diagnosing WiFi Adapter
First see what PCI devices you can see with:
Once you put the WiFi card into the adapter and start up the Orange Pi you should view the WiFi related debug output with:
sudo dmesg | grep -i wifi
This will show you all the hardware related messages related to WiFi. It often will tell you critical information such as a firmware file wasn’t loaded, etc.
You will need this information to diagnose the device if it is not working properly.
Here’s an example for my non-working Broadcom adapter:
orangepi@orangepi5:~$ sudo lspci [sudo] password for orangepi: 0004:40:00.0 PCI bridge: Rockchip Electronics Co., Ltd Device 3588 (rev 01) 0004:41:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter (rev 03) orangepi@orangepi5:~$ sudo dmesg | grep -i wifi drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd compiled on Dec 7 2022 at 10:23:12 [ 10.455031] [WLAN_RFKILL]: rockchip_wifi_get_oob_irq: Enter [ 10.455035] [WLAN_RFKILL]: rockchip_wifi_get_oob_irq: rfkill-wlan driver has not Successful initialized [ 10.455047] [dhd] dhd_wifi_platform_load: Enter [ 10.455529] [dhd] dhd_wifi_platform_load_pcie: pcie_register_driver failed [ 10.455533] [dhd] unregister wifi platform drivers [ 10.455537] [dhd] wifi_platform_bus_enumerate device present 0
Here we can see that for this Broadcom adapter it still couldn’t register the driver. It probably needs a driver that isn’t as easily available as getting it from the linux-firmware package. Sometimes the messages are a lot more helpful than this but it’s definitely the place to start if your adapter isn’t working.
Alternative USB Option
Another option is to use a USB WiFi adapter. This is a great option if you want to use your M.2 slot for something else (such as NVMe storage). I’ve tested the ODROID 5BK USB wireless adapter on the Orange Pi 5:
The ODROID 5BK USB WiFi module works plug-and-play with the Orange Pi 5 on Linux
If you know of more adapters that are working plug-and-play let me know in the comments and I can add them to the list
I highly recommend the Intel adapters since I can guarantee they will work. Even the adapters that failed to load a driver or proper firmware were all recognized in lspci.
It’s not pretty but you can snap off the edge of the board if you don’t want it to hang over the edge as much. There are perforations in the board meant to snap for shorter modules. It will still hang over a little though and won’t be a perfect fit.
This is a great adapter and great working solution to use E-key WiFi adapters in the Orange Pi’s M-key slot. I highly recommend it! Hopefully it won’t be too much longer before the official solution is released from Orange Pi.
Check out my Orange Pi 5 review here for more important information about the Orange Pi 5
Don’t miss my Orange Pi SSD boot guide to learn how to set up the NVMe drive as the root partition