The list of drivers available is limited but should cover 4.4.35 - 4.4.50 and 4.9.xx

I have changed the filename format which now makes it unnecessary to list the files as the filename uses data from command uname -a to create the filename. Use command uname -a to find the kernel version and build for the kernel you are using and the wifi driver filename is now formed using those values like 8188eu-kernel-build.tar.gz. Drivers for kernel versions 3.18, 4.1, 4.4 and 4.8/9 are available using this new filename format.

For example, for older versions of the Pi A/A+,B,B+, or the Pi Zero, if uname -a shows Linux raspberrypi 4.4.8+ #881 SMP Sat Apr 30 12:10:24 BST 2016 armv6l GNU/Linux with the kernel version without "-v7" the file to download is 8188eu-4.4.8-881.tar.gz.

Use command sudo install-wifi -h for details on how you can use it to download or update the wifi driver. This script will automatically determine the wifi you are using and search for the correct driver to download for the kernel version you are using. The script can also install wifi drivers for wifi modules using 8192eu, 8812au, mt7610 or mt7612 drivers.

End of update

IMPORTANT: First check the version of Linux you have. Use the command uname -a to find the version of Linux.

With the wifi dongle connected to your Pi use command lsusb to show a list of USB devices connected to your Pi. You should see your wifi module in the list and the USB ID of the device which you can check is in the list above. If it is read on to find the device driver you need and how to install it.

For newer kernel versions see MAJOR UPDATE:- at the start of this post.

NOTE: the driver files for 3.18.xx+ and 3.18.xx-v7+ and newer versions contain two additional files, install.sh and 8188eu.conf. Download the driver file selecting the right driver for your kernel version from the list above then to install the 3.18 drivers first untar the tar.gz driver file and then run the install.sh command.eg. For the Pi 1 (A, A+, B, B+) use

change yyzz in the wget and tar commands to select the right driver file. install.sh will install the driver file and copy the file 8188eu.conf to directory /etc/modprobe.d. The 8188eu.conf file will disable power management for the 8188eu driver and disable the inbuilt driver version r8188eu.

The link to driver files for kernel versions 3.6, 3.10 and 3.12 is as follows - use the date code from the list above to download the required driver

Replace xyyzz with the last 5 digits of the date code of the filename for the driver for your kernel version.

NOTE: If updating firmware revisions, say from 3.10.23+ to 3.10.24+, and they use the same driver, in this case 8188eu-20131209.tar.gz, you will still need to reinstall the driver on the newer version of Linux, even though the driver has not changed as it will be loaded from a different directory by the new Linux revision and you need to install it in the new directory.

The driver installation instructions expect you to be using Raspbian, either installed from a basic raspbian image or installed using NOOBS. The instructions are based on running from a Command Line Terminal, not a GUI (Graphical User Interface). If you are running using the GUI you will need to open a terminal window and run the commands from the terminal window but I can't guarantee they will work.

If you have a wired internet connection install the driver with the following commands

If you do not have an internet connection the driver file will need to be downloaded on another computer and copied to the SD card. I use a Windows laptop and will use that as an example of how to copy and install the wifi driver.

Open a web browser on your Windows computer and download the driver. Check the name of the driver file before saving it and correct it if necessary. I have sometimes found Windows tries to save the driver file as 8188eu-201xyyzz.tar.tar when it should be 8188eu-201xyyzz.tar.gz. Substitute the correct file name for "xyyzz".

Take the SD card and load it into an SD card reader on your Windows computer. Copy the driver file, 8188eu-201xyyzz.tar.gz, from your Windows computer to the SD card. Safely remove the SD card from the card reader by clicking the safe removal icon in the task bar and install the SD card in your Raspberry Pi and power on and login.

After logging in you will need to copy the driver file to your home directory. How you do this is dependent on whether you installed rasbian using NOOBS or directly from a Rasbian image. If you are running raspbian installed using NOOBS you need to run the following commands to copy the driver file to your home directory

You will need the period, full stop (.), after the filename in the sudo mv command. The mount/umount commands are required as the driver file is in the NOOBS boot directory, not the rasbian boot directory, so the NOOBS boot directory needs mounting and accessing to get to the driver file.

If you installed raspbian directly from a rasbian image use the following command to copy the driver file to your home directory

Once the driver is loaded you will need to configure the network set up so the Pi will connect to your wifi network if it is not already done. There are some basic details on how to do that available here.

To help in installing or updating the driver @LaFambe has produced a very simple script available here which will automatically select and install the correct version of the driver for the version of Raspbian being used. I was quite impressed by it and it really does make life much simpler. You will need an internet connection for the script to work.

Thank you very much, LaFambe.

MrEngman

Last edited by MrEngman on Thu Mar 16, 2017 12:42 am, edited 178 times in total.

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.

Have you tried running the Pi as an access point with this chip? I cannot get it to work with hostapd (have tried all kinds of versions including compiling the version from realtek). I'm getting the following error when running hostapd:

poogle wrote:Thank you so much for posting this. The driver seems to work fine.

Have you tried running the Pi as an access point with this chip? I cannot get it to work with hostapd (have tried all kinds of versions including compiling the version from realtek). I'm getting the following error when running hostapd:

I tried with the latest version 3.10.21 and can't get it working as AP. Also tried with EW-7811Un wifi and can't get that working either. With the WN725 I cannot see any AP, but with the EW7811Un I can see an AP but cannot connect. Had previously tried with 3.6.11+ some time ago and the EW-7811Un worked and I'm pretty certain the TL-WN725 also worked as well.

MrEngman

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.

Howdy MrEngman,
EDIT: Added more info, I think may be useful.
I enjoyed great speeds with the 3.6.11 release and these wireless drivers, however I rpi-update 'd my Pi, and then installed these updated drivers (and copied firmware file you specified) and now I've noticed quite a bit of lag with the 3.10.22+ release, specifically with SSH.

I typically get pings (to the 725v2 RPi) from various machines on the local network ranging from 6000ms-200ms, nothing consistent.

I used wireshark to sniff network traffic because I had suspected the RPi was sending out excessive broadcast packets, searching for dns, or something that may hindernetwork performance.. but there isn't any traffic other then my pings, and SSH connections.

On LAN only connection I have no issues, the pings are 1ms, and SSH / VNC work flawlessly (almost... too fast). I would like to note however, If I boot up with LAN and Wifi, the wifi seems to have no issues whatsoever, it seems to be that I have issues when I boot solely on Wifi, I didn't have these issues before updating to 3.10.22 and update the wifi drivers

Would you happen to have any suggestions?
Thanks in advanced, and thanks for your work!

Results are very similar. Personally I've never seen any problems with transfer rates to/from the Pi. Could be down to whatever code is running on the Pi and whether you are using a GUI (using startx) or not. Data transfers for upload/download to/from the internet are usually around 700-800KB/s. Transfer rates are similar if I use a wired connection.

I do not use a GUI and communicate with my Pi using SSH from my W7 laptop.

One setting I always use and that is to make the memory split as small as possible (16MB) as I don't use a GUI. Haven't checked if that makes any difference though.

MrEngman

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.

bob1122 wrote:Howdy MrEngman,
EDIT: Added more info, I think may be useful.

On LAN only connection I have no issues, the pings are 1ms, and SSH / VNC work flawlessly (almost... too fast). I would like to note however, If I boot up with LAN and Wifi, the wifi seems to have no issues whatsoever, it seems to be that I have issues when I boot solely on Wifi, I didn't have these issues before updating to 3.10.22 and update the wifi drivers

Would you happen to have any suggestions?
Thanks in advanced, and thanks for your work!

If you boot with both LAN and wifi connected then I think the data for either interface will generally be transferred via the wired interface whether you SSH to eth0 or wlan0.

If I boot the Pi with both eth and wlan connected I can SSH into either but if I then unplug eth0, then I loose both connections, eth permanently of course, and wlan for maybe upto a minute or so. wlan will then come alive again and I can then continue to SSH via wifi but have NO connection to the internet, only to the local network. To get a connection to the wider internet I then need to unplug and plug back in the wifi adaptor. I can then continue the SSH connection and can access the internet via wifi.

Just done a test. Booted with just wifi connected and SSHd in, then plugged in Ethernet cable and connected with SSH to the eth interface. Then tried a download from the internet from the eth SSH terminal. The wifi is flashing as though the data is being transfer via the wifi connection even though I was using the SSH terminal to the eth port. Tried a second download and during the download unplugged the wifi and the download failed.

MrEngman

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.

There are a couple things I'd like to attempt before ruling out anything in particular, such as;

A couple things I'd like to mention, it's a clean install, I wanted to have network connectivity working consistently before running any code, the only thing I've done is updated, rpi-update, and finally of course 725v2 10.22 driver install.

Secondly, all of my testing is done immediately after boot, on the pi it is at the login screen. Essentially I want to ensure I have a headless setup (should be no need to login on the pi to SSH it). I achieved this with 3.6.11 however I'm running into various issues trying to get this to work on 10.22.

This is rather important for my future application of the pi, because I cannot get the USB -TTL to function properly on my RPi, so as a result I'm going to do everything I need to do via SSH. (Plus SSH is obviously better if you have network connectivity). At the end of the day, in my application, running Ethernet cable is not possible.

I apologize as I cannot test many of these things at the moment as I am studying for certification exams, but later on this evening (I'm in the EST zone) I will try a completely clean install of Raspbian->upgrade/update->rpi-update then of course install 725v2 10.22 drivers and see if I still have issues.

I too notice that my wifi adapter even though I can't pick up any network traffic, is doing something because the lights certainly are flashing on and off intermittently.
Oh I'd also like to note, the amount of bandwidth the Pi has isn't even measurable, SSH isn't just slow, but it takes about 10-40seconds between each character being pressed for it to be displayed, on ethernet there is no delay of any form.

Hopefully I can resolve this... anything that has changed since 3.6.11 that may result in this sort of issue?

OK that makes things much clearer. Unfortunately I can think of nothing specific to cause your problem but it's certainly really odd.

I run my Pi in exactly the same way, headless, and SSH in from my W7 laptop. I also specifically look for updates for rpi-update so I can update the wifi driver as and when necessary. I then store the compiled drivers on DropBox for anyone else to use.

On the current SD card I'm using I've probably made an update using rpi-update about 50 times although it could be many more as I'm just not sure of the original image I installed. I've seen issues with rpi-update only a very few times due to problems with the software loaded with the updates. Last time I think was back in July then at the beginning of May and another with a couple of updates in March.

I always also normally only use the raw Raspbian image. My wifi adaptor is connected directly to the Pi using a USB extension cable - A-plug to A-socket. This allows me to hot plug the adaptor without resetting the Pi without needing a hub.

What does the output of command ifconfig wlan0 show? I presume your wifi adaptor is plugged directly into your Pi. Have you tried changing USB sockets just in case there's a possible hardware issue?

MrEngman

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.

bob1122 wrote:I will test out a clean install before I decide to revert to 3.6.11, however I must ask out of inherent obligation... what advantages, changes, or benefits exist from using 3.10.22?

As for specifics I can't say, but there are various fixes usually applied. However, if you find a particular revision supports what you need then there is probably little point in updating. As I said I run updates to make sure I have working versions of the driver for the updated code.

Would be interesting to see the output of ifconfig wlan0 to see what errors are reported if any. Also have you checked the output of dmesg for errors. May provide a clue to what is happening.

MrEngman

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.

I joyously hate to say it; but it's working fine now, flawlessly in fact. Sorry to bombard your clean and tidy post with my issues of evident insignificance. Not certain why I was having issues initially.

Perhaps the Pi needed a break, or perhaps the Pi realized in it's infinite wisdom that I did indeed need a break so it naturally impeded me from dedicating more time to it, as if it knew I had more important things to focus upon, either way, she's working fine now.

Thanks Mr.Engman.
P.S. Could you reference me to where found instructions to compiling the drivers? [lwfinger ?] I'd like to investigate further when I have the chance, and will report back with any suggestions to prevent future issues.
You can PM if you prefer, thanks!

# Compile driver for 3.10.y version of kernel. To compile for an older version you will need
# to set up the correct commits of linux and firmware to comply with the version of linux you
# need the driver for.
# Compiles 8188eu driver for 3.10.y without needing to compile the whole linux kernel. Requires
# driver firmware, rtl8188eufw.bin, which can be found in the driver source tree.
# Initialise kernel and driver source code for the first time for compiling drivers
-----------------------------------------------------------------------------------
# jump to home directory - /home/pi
cd
# make directory to hold source data
mkdir src
# enter source directory - /home/pi/src
cd src
# clone rtl8188eu source code repository - this will automatically generate a
# directory "rtl8188eu" at /home/pi/src/rtl8188eu.
git clone git://github.com/lwfinger/rtl8188eu.git
# clone Raspberry Pi firmware repository - this will automatically generate a
# directory "firmware" at /home/pi/src/firmware - setting depth avoids downloading
# the whole repository but allows reverting to some previous revisions if necessary.
# Do not use git clone if it has already been used - use git pull to update the code.
git clone --depth 10 git://github.com/raspberrypi/firmware.git
# clone Raspberry Pi linux source code - this will automatically generate a
# directory "linux" at /home/pi/src/linux - setting depth avoids downloading
# the whole repository but allows reverting to some previous revisions if
# necessary. Do not use git clone if it has already been used - use git pull
# to update the code.
git clone --depth 235 git:github.com/raspberrypi/linux.git
# Updating source code for compiling drivers if code is already installed and
# newer code is available
-----------------------------------------------------------------------------
# if rtl8188eu directory has already been generated it can be update with the
# latest code using git pull. enter rtl8188eu directory, run command then revert
# back to src directory
cd rtl8188eu
git pull
cd ../
# if firmware directory has already been generated it can be update with the
# latest code using git pull enter firmware directory, run command then revert
# back to src directory. Use depth option or git pull may load the whole of
# the repository from way back 2011 or whenever
cd firmware
git pull --depth 2
cd ../
# if linux directory has already been generated it can be update with the latest
# code using git pull. enter linux directory, run command then revert back to
# src directory. Use depth option or git pull may load the whole of the repository
# from way back 2011 or whenever ~ 3 Million+ files
cd linux
git pull --depth 2
cd ../
# Select a specific version of linux/firmware to compile driver for if required
-------------------------------------------------------------------------------
# adjust firmware version required for kernel version driver is to be used with
# view commit ID's at https://github.com/raspberrypi/firmware/commits/master
# not required if driver is being compiled for most recent version kernel
# unless it has previously been set to use an older version of code
cd firmware
git checkout "branch"
git checkout "commit ID"
cd ../
# enter linux source directory and adjust linux code version to use
# adjust to version required for kernel version driver is to be used with
# view commit ID's at https://github.com/raspberrypi/linux/commits/
# not required if driver being compiled for most recent version kernel
cd linux
git checkout "branch"
git checkout "commit ID"
cd ../
# To compile for latest code I use the following commands
---------------------------------------------------------
# enter linux source directory
cd linux
# clean linux source directory tree
make mrproper
# generate .config using bcmrpi_defconfig which can be used to make .config for any
# version of linux without requiring to copying .config from a working version of code
# as suggested in many tutorials making life a little easier.
make bcmrpi_defconfig
# prepare source for module compile
make modules_prepare
# copy Module.symvers file from firmware tree to linux directory
cp ../firmware/extra/Module.symvers .
# enter 8188eu driver source directory
cd ../rtl8188eu
# clean rtl8188eu source directory tree
make clean
# compile driver file 8188eu.ko
CONFIG_RTL8188EU=m make -C /home/pi/src/linux M=`pwd`
# Install the driver
--------------------
# install driver firmware if not already installed, install driver and reboot
sudo cp rtl8188eufw.bin /lib/firmware/rtlwifi
sudo install -p -m 644 8188eu.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
# insmod command should run without any error response if driver module is compiled OK
sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/wireless/8188eu.ko
sudo depmod -a
sudo reboot
Hope this makes sense

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.

I hate to say it, but I'm having a weird problem with last few versions (3.10.23, 3.10.22, 3.10.20). For some reason it keeps connectiong and disconnection every cca 20s and I'm sure with clean Raspberian Wheezy it worked fine. I'm using wicd network manager. This is what it looks like when I ping my RPi.

Very odd. I've not seen anything like that myself. Is there some software running that could interfere with the wifi/usb somehow? The command top will show the running programs. Use Cntl-C to exit. Have you checked the log files or dmesg for any errors. May give a clue.

I have never tried wicd. I prefer using /etc/network/interfaces to configure my wifi. Much less complicated

martinahoj wrote:I hate to say it, but I'm having a weird problem with last few versions (3.10.23, 3.10.22, 3.10.20). For some reason it keeps connectiong and disconnection every cca 20s and I'm sure with clean Raspberian Wheezy it worked fine. I'm using wicd network manager. This is what it looks like when I ping my RPi.

I also have problem with this driver. It works when I want to connect to wireless network. But it fails when I turn my Raspberry into AccessPoint mode. The hostapd cannot start. There is the log below.

speedy901990 wrote:I also have problem with this driver. It works when I want to connect to wireless network. But it fails when I turn my Raspberry into AccessPoint mode. The hostapd cannot start. There is the log below.

I apologize if I'm incorrectly assessing things, but it may be difficult to get help for a rtl871 based device in a thread for TL725v2 Drivers (which uses 8188eu based drivers). Either you've got the wrong drivers installed, or your asking in a completely wrong place (Mind you, they're both TPLink adapters)

So the wifi is the TL-WN725N V2. I tried setting up an AP just over a week ago and wasn't successful. The Realtek wifi adaptors have been used for APs but need the hostapd included in the Linux image replacing with one from the driver source code.

I based my set up on this tutorial although it is for the EW7811Un (rtl8188cus driver) but is similar for the 8188eu driver. The source for hostapd is included in the 8188eu driver source code.

I will have to try again and see what happens. I will let you know if I can get it working.

MrEngman

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.

I've been trying to compile another device driver, but I still can not add in the driver's version number "+", resulting in not properly inserted in the drive. How to add compile the driver when in the driver's version number symbol "+"?

I've been trying to compile another device driver, but I still can not add in the driver's version number "+", resulting in not properly inserted in the drive. How to add compile the driver when in the driver's version number symbol "+"?

Not sure what the problem is here. Can you post the output of command uname -a to show which version of Linux you are using. You will need the Module.symvers file for the version of Linux you want to use the driver with. Using the wrong one will cause problems and it may not load like you have found. Where can I find the driver source code?

MrEngman

Simplicity is a prerequisite for reliability. Edsger W. Dijkstra

Please post ALL technical questions on the forum. Please Do Not send private messages.