Skip to content

Instantly share code, notes, and snippets.

@MBing
Last active April 3, 2024 05:20
Show Gist options
  • Star 85 You must be signed in to star a gist
  • Fork 18 You must be signed in to fork a gist
  • Save MBing/de297a8ae5e8a191c55a67a568d20d31 to your computer and use it in GitHub Desktop.
Save MBing/de297a8ae5e8a191c55a67a568d20d31 to your computer and use it in GitHub Desktop.
install TP-Link-WN725N Nano USB Wifi on Raspberry Pi with Kernel 5.10+
# DO NOT PUT THE WIFI DONGLE IN THE DEVICE BEFORE MENTIONED EXPLICITLY BELOW
# Brief note, after this the UI will not show the usb dongle,
# the wifi does work and I get an IP address, so all works,
# but I don't go into detail of making it show on the Raspbian UI.
# (for this purpose I don't care about the UI)
# For the use of this I connected my device to an ethernet connection and through the Router could see the IP which I can SSH into.
## STEP 1: Prepare machine and install packages needed
# Make sure the system is up to date and all that needs to be installed is installed
`sudo apt-get update && sudo apt-get install -f`
# I also upgrade my distro, but this step can be skipped
`sudo apt-get dist-upgrade`
# Install some necessary packages as we will build the source firmware ourselves
`sudo apt-get install -y build-essential git`
# There is a package for raspberry pi to add the kernel headers, so you can pick one here (if one doesn't work, use the other)
`sudo apt-get install -y linux-headers`
`sudo apt-get install -y raspberrypi-kernel-headers`
# reboot for changes to take effect
`sudo reboot`
## STEP 2: Get and install the firmware for TP-Link-WN725N Nano
# Download the Github package (for best support use git clone instead of zip)
# I just put this on my home folder as I am not using this RPI for any other purpose than a livecam
`git clone https://github.com/lwfinger/rtl8188eu.git`
# Go into the new folder
`cd rtl8188eu`
# Make the source for your machine
`make`
# Install the firmware that was just build for your machine
`sudo make install`
# Reboot for changes to take effect
`sudo reboot`
# Shutdown now as we need to have the usb dongle in the RPI on startup
`sudo shutdown -h now`
## STEP 3: (INSERT USB DONGLE BEFORE CONTINUING) Check if dongle is recognized by the system
# After starting your rpi check if it now recognizes your wifi dongle
`lsusb`
# This should show something like `BUS 00X .... REALTEK... RTL8188EUS... Wireless Network Adapter`
# Great your wifi dongle is now recognised. If not, you probably don't have this dongle or you need to repeat the above steps.
# Check if modules are being loaded
`lsmod`
# Search for something like `8188eu ... 0`
# Check if wlan0 is present
`ifconfig -a`
# There should be quite some output next to and under `wlan0`, if there's an IP address already visible, skip all next steps it's working.
## STEP 4: Setup wifi settings
# Add wifi settings
`sudo vi /etc/network/interfaces`
# Search for `auto wlan0` at the start, if it's not there, add it and keep the file open
# Make sure it knows where to find the wpa config
# Add these lines to the bottom of the same file:
```
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
```
## STEP 5: Connect to wifi
# The file `wpa_supplicant.conf` might already exist and might have some lines, add these below:
```
network={
ssid="YOUR_NETWORK_NAME"
psk="YOUR_NETWORK_PASSWORD"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}
```
# Replace `YOUR_NETWORK_NAME` & `YOUR_NETWORK_PASSWORD` with your own credentials.
# Reboot and connect
`sudo reboot`
# To test after reboot if your wifi is working, you can open the browser or go to the terminal
`ifconfig -a`
# This will now have an ip-address next to `wlan0` which you can use for ssh or whatever.
# Congrats!
## Resources used:
# The dongle on Amazon: https://www.amazon.de/TP-Link-TL-WN725N-Adapter-Suitable-10-9-10-13/dp/B008IFXQFU/
# The Firmware: https://github.com/lwfinger/rtl8188eu
# Troubleshooting on RPI: https://www.raspberrypi.org/forums/viewtopic.php?t=44044
# Wifi auto connect on RPI: https://weworkweplay.com/play/automatically-connect-a-raspberry-pi-to-a-wifi-network/
# Extra resource for rpi-source: https://blog.samat.org/2014/12/15/realtek-8188eu-based-wi-fi-adapters-on-the-raspberry-pi/
@gianluca7cristaudo
Copy link

Hi @septicwolf818 , thank for your support!
I installed the linux header (raspberry-kernel-headers) and I have the ultimate version now (1:1.20230106-1).
But when I try a install the concrete package with this command: sudo apt-get install raspberrypi-kernel-headers-5.15.92-v7+-rpi
But terminal shows this message:
E: Could not find package raspberrypi-kernel-headers-5.15.92-v7+-rpi
E: Could not find any packages via glob "raspberrypi-kernel-headers-5.15.92-v7+-rpi"
E: Could not find any packages via regular expression "raspberrypi-kernel-headers-5.15.92-v7+-rpi"

I tried change raspberrypi-kernel-headers with linux-headers but the result is the same.
Ps: I did the update the kernel version by the sudo rpi-update command, I have 5.15.92-v7+ version now.

@septicwolf818
Copy link

@gianluca7cristaudo
Use sudo apt list -a raspberrypi-kernel raspberrypi-kernel-headers to list available packages.

Follow match Kernel version and kernel header version - forums.raspberrypi.com thread for more instructions.

@gianluca7cristaudo
Copy link

I solved the problem by downgrading the kernel and installing the drivers.
After doing this, through the ifconfig -a command, I saw the wlan0 field.
Then I followed point 5 of this guide.
Thank you!

@knarfv62
Copy link

knarfv62 commented Feb 9, 2023

I got my Pi Zero (5.15.84+ #1613 kernel) working with a TP-Link Wi-Fi adapter (8188eu), following the above instruction from step 4. As Mdvorak mentioned I also needed to add to /etc/network/interfaces.d/wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Thanks MBing and Mdvorak

@shapsix
Copy link

shapsix commented Feb 25, 2023

Hi!
I have a Raspberry Pi 1 B+ with latest updates and first it seems that I established a connection following the instruction beginning with STEP 4 as Mdvorak mentioned.
But after some seconds or sometimes minutes the ping gets unstable. Then it is also changing IP address. Normally it is a 192.168.0.xxx and after i lost connection i reconnected via ethernet and checked out ifconfig. Suddenly it is a total different one 169.254.251.247

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.254.251.247 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::7b44:dee5:6968:328d prefixlen 64 scopeid 0x20
ether 34:60:f9:55:a6:9d txqueuelen 1000 (Ethernet)
RX packets 12438 bytes 1287911 (1.2 MiB)
RX errors 0 dropped 81 overruns 0 frame 0
TX packets 1098 bytes 141969 (138.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

then i unplugged the wifi usb stick and plugged it in again. The connection reastablished

wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.0.53 netmask 255.255.255.0 broadcast 192.168.0.255
ether 34:60:f9:55:a6:9d txqueuelen 1000 (Ethernet)
RX packets 210 bytes 22462 (21.9 KiB)
RX errors 0 dropped 154 overruns 0 frame 0
TX packets 42 bytes 7013 (6.8 KiB)
TX errors 0 dropped 4 overruns 0 carrier 0 collisions 0

but then changed again to

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.54 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::7b44:dee5:6968:328d prefixlen 64 scopeid 0x20
ether 34:60:f9:55:a6:9d txqueuelen 1000 (Ethernet)
RX packets 2598 bytes 318570 (311.1 KiB)
RX errors 0 dropped 221 overruns 0 frame 0
TX packets 570 bytes 91967 (89.8 KiB)
TX errors 0 dropped 4 overruns 0 carrier 0 collisions 0

Does anyone of you have a clue whats wrong here?

sudo apt list -a raspberrypi-kernel raspberrypi-kernel-headers
raspberrypi-kernel-headers/stable 1:1.20230106-1 armhf
raspberrypi-kernel/stable,now 1:1.20230106-1 armhf [installed]

Thank you!

@jamesresend
Copy link

It worked on a Pi 1 B, thanks!

@val3ri
Copy link

val3ri commented May 10, 2023

It worked also on Kernel 6+ Version. Thank you!

@mdvorak
Copy link

mdvorak commented May 22, 2023

@shapsix I've tried it on latest MainsailOS 1.1.1, and I have same issue. It connects fine, but the longer it runs, the higher packet loss. And when the signal quality drops even slightest, packet loss goes to 100%.
The behavior of the IP addresses and routes points to faulty driver (module). I've set all to static IP addresses and disabled dhcp altogether - it fixed routes, but it did not solve packet loss issue.
It is absolutely unusable. Works fine with the old system :-(

@9minuet
Copy link

9minuet commented Jun 6, 2023

It worked perfectly on a Rpi 3b +, thank you!

@dgpmaluco
Copy link

Works to this day! Thanks!
For someone maybe having the same problem I've had, yes the SSID and Password should be between "" NOT without

@nissaba
Copy link

nissaba commented Jun 19, 2023

hi, on my installation attempt it fails at the LS mode step and does not show up in the ifconfig. I am installing on a rpi 2b under lated moode os (raspberrian lite 32 bit)

@Roland74
Copy link

Roland74 commented Jul 30, 2023

It worked also on Kernel 6+ Version. Thank you!

@val3ri Did you have to build the kernel module to get this wifi dongle on kenel 6.* running? Are steps 1 to step 5 needed or are step 4 and 5 enough to get it working on kernel 6? I found out that in kernel 6 there is a kernel module r8188eu that should be an the new default for the rtl8188EU chips. Does this work on kernel 6.1.21-v8+ for the Raspberrys?

@MarSilvaGPS
Copy link

Hello, thank you for your contribution, I performed all the steps, everything checked, the interface exists and configured, but it does not change to UP, I appreciate any help.
Marco - PU2MUS

@damithsj
Copy link

damithsj commented Jan 2, 2024

Thanks a lot for the valuable steps. I was checking here since the http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/ which I downloaded the driver previously was down now. Your steps worked like a charm 😎

@mitgobla
Copy link

mitgobla commented Feb 1, 2024

This worked perfectly for me. I used this guide on a Raspberry Pi Zero 1.3.

I used the Ethernet Gadget mode to perform steps 1 and 2 since my Pi doesn't have built-in WiFi. I preconfigured my network interface and wpa_supplicant before restarting since I had to unplug from my computer and put the TP-Link dongle into the only USB port (with an adapter) .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment