[BPI-R3] What image to choose?


I have tried different images with mixed success on my R3 board.

  1. the delivered WRT firmware is working with the attached 256gb NVME + USB Wifi not loading driver
  2. The “official” Debian did load the USB Wifi adapter but no NVME
  3. Franks Debian seems to be like 1. WRT… NVME working but tot the USB wifi…

I have tried several ways to include/compile the driver - but it seems my skills is not good enough for this…

I do not have to use the board as router, but generic PC usage for some data capture device, with 4 lans devices. and save data to NVME… (code written in python) (I also have to use I2C and UART on the GPIO connector)

What is your opinion for best match of image?


My image only contain necessary drivers for r3 basic support. If you use additional devices like the usb wifi you have to add its driver to kernel,recompile and install.

Which exact device you use here (output of lsusb)?


I am aware of why you do like you do :slight_smile: - it is just hard for a newbie like me to compile kernel :wink:

I have this one which may be most generic: Bus 001 Device 003: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

Also i have: Bus 001 Device 004: ID 0cf3:7015 Qualcomm Atheros Communications TP-Link TL-WN821N v3 / TL-WN822N v2 802.11n [Atheros AR7010+AR9287]

I tried to compile it on the device and is it modprobe it in… after i got kernel headers in place it gave me error during the compilation, and also had some warnings compiler was not identical and so on…

unless i missed something, why do you need a usb wifi ? there is already a wifi 6 included in the board…

compile kernel on device is very slow…i compile it on ubuntu host. so this is the most tested way to do :wink:

last stable tree is this:

make sure changing build.conf so that board=bpi-r3 is active

then steps from readme

I will keep the onboard Wifi in access point mode and the other in Station/device… The station device is to connect to my normal wifi… The Access points is for the application of the device… Hope it makes sense

It was only the driver i compiled on the board…

Then i need to learn how to add the driver to the kernel source as well…

./build.sh importconfig
./build.sh config # select driver here (e.g. search with / for it)

hmmm not at all…why not just create multiple ssid, isolated or in vlans, i’m sure there are many possibilities to do what you want without adding that usb wifi…

Sure - i may consider some of them… this was just an easy way of keeping development setup sepperated from running setup - just take out the wifi adapter… but sure there is many ways.

the realtek should be this driver:

  ┌─────────────────────────────────────── Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter ───────────────────────────────────────┐
  │ CONFIG_RTL8192CU:                                                                                                                      │  
  │                                                                                                                                        │  
  │ This is the driver for Realtek RTL8192CU/RTL8188CU 802.11n USB                                                                         │  
  │ wireless network adapters.                                                                                                             │  
  │                                                                                                                                        │  
  │ If you choose to build it as a module, it will be called rtl8192cu                                                                     │  
  │                                                                                                                                        │  
  │ Symbol: RTL8192CU [=n]                                                                                                                 │  
  │ Type  : tristate                                                                                                                       │  
  │ Defined at drivers/net/wireless/realtek/rtlwifi/Kconfig:109                                                                            │  
  │   Prompt: Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter                                                                     │  
  │   Depends on: NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_REALTEK [=y] && RTL_CARDS [=m] && USB [=y]                                   │  
  │   Location:                                                                                                                            │  
  │     -> Device Drivers                                                                                                                  │  
  │       -> Network device support (NETDEVICES [=y])                                                                                      │  
  │         -> Wireless LAN (WLAN [=y])                                                                                                    │  
  │           -> Realtek devices (WLAN_VENDOR_REALTEK [=y])                                                                                │  
  │             -> Realtek rtlwifi family of devices (RTL_CARDS [=m])                                                                      │  
  │               -> Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter (RTL8192CU [=n])                                             │  
  │ Selects: RTLWIFI [=n] && RTLWIFI_USB [=n] && RTL8192C_COMMON [=n]

the atheros card should be need these options:


I think there was one calles RTL8xxx it may cover many…

I will keep this point in my backlog, then continue to test my other features I2C / UART to see if i run in to other issues i need to change.

added options above to my 6.1-tree

Commits · frank-w/BPI-Router-Linux · GitHub

you can wait till pipeline finishes and download kernel-package from github releases and install this in your image


Thank you.

Will it pick the firmware to the adapters ant put it into the image? (Loaded to the usb device on driver initlization…)

firmware is separate and normally can be installed via userspace with distribution commands (apt install … in debian/ubuntu)

the file created by the pipeline in kernel-repo is kernel only

you have to unpack itb-file to BPI-BOOT partition and modules (BPI-ROOT/lib/modules) into the right directory on BPI-ROOT partition, do not unpack the lib-folder directly to card as this will replace the symlink with a directory causing no more boot

basicly what image-creation script does here:

Thank you - you are a friend of the people :slight_smile: I think i will be easier to start from the scratch with a new image made with your script.

I have verified that I2C + UART on the pin header is working also.

I do think i then have checked all my needs for hardware… I will have maybe to use the USB also for HID in the future, but believe that is included in the kernel allready.

Thanks again

I have not added hid drivers as there is no video output on r3

Hmm, that makes sence, just took it as normal to add a keyboard… - but do see that when there is no screen…

You are not planning to do both at minimal and an “maximal” version of the images? Some more like rasbian… i do know it is a router board, but it can be used to soo much more… Is there some kind of konfiguration template from other image to make a more function wise image?

No, it is always a minimal version…for maximal version you can install all you need…in case of kernel options you need to add and compile by yourself