Sunteți pe pagina 1din 3

<p>So you decided to get the TP-Link TL-WN725N USB wifi adapter!

And when you


just plugged it in your USB port on your Fedora 26 machine, you realized that
there was no internet connectivity. This came as a surprise to me since Fedora
always comes with the latest Linux kernel (4.12.x) and that the drivers should
have been included.</p>
<h2>The Problem</h2>
<p>TP-Link TL-WN725N uses the <b>RTL8188EU</b> driver. You can find this out by
firing out a terminal and giving
<b>lsusb.</b>
</p><pre class="prettyprint">
[root@localhost /]# lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n
Wireless Network Adapter
Bus 003 Device 003: ID 045e:0782 Microsoft Corp.
Bus 003 Device 002: ID 413c:2106 Dell Computer Corp. Dell QuietKey Keyboard
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
</pre>

<p>The official driver listed on TP-LINK's <a href="http://www.tp-


link.com/us/download/TL-WN725N.html#Driver">site</a> for TL-WN725N supports only
Linux kernel versions
between <b>2.6.18</b> and <b>3.19.3</b> while Fedora 26 uses <b>4.12.x</b>.
However, the driver is part of the
<a
href="https://github.com/torvalds/linux/tree/master/drivers/staging/rtl8188eu">stag
ing</a> folder of the Linux kernel and Fedora has a
<a href="https://fedoraproject.org/wiki/KernelStagingPolicy">policy</a> of not
building and shipping them since it could be either be buggy, cause kernel panics,
put undue burden on the kernel team, etc.
</p>
<h2>The Solution</h2>
Don't fret! Not all is lost. You can still compile it by yourself. First, download
the source of the driver on a computer that has internet connection from
<a href="https://github.com/lwfinger/rtl8188eu/">here</a>.
Next, download some of the necessary rpms that the driver requires like
<pre class="prettyprint">
elfutils-libelf-devel-0.169-1.fc26.x86_64.rpm
kernel-devel-4.11.8-300.fc26.x86_64.rpm
kernel-headers-4.11.8-300.fc26.x86_64.rpm</pre>
<p> Go to your target computer and install the above rpms by double clicking it or
by giving</p>
<pre class="prettyprint">[root@localhost /]# dnf install *.rpm</pre>
<p> <b>Warning:</b> Using dnf might try to connect to the online repos and error
out even though you have all these rpms locally. So, installing by double clicking
could be the easiest.
</p>
<p> Once you have installed the above rpms, extract the source code of the driver
that you downloaded from GitHub and do the following preferably as root</p>
<pre class="prettyprint">
[root@localhost /]# cd rtl8188eu-master
[root@localhost rtl8188eu-master]# make all
</pre>
<p> If the above command finishes without any error, then install the driver by
giving </p>
<pre class="prettyprint">
[root@localhost rtl8188eu-master]# make install</pre>
<p> This should copy the driver <b>rtl8188eufw.bin</b> to the folder <b>
/lib/firmware/rtlwifi </b>. You would see something like the following on your
shell</p>
<pre class="prettyprint">
mkdir -p /lib/firmware/rtlwifi
cp rtl8188eufw.bin /lib/firmware/rtlwifi/</pre>
<p>
Finally, insert your USB dongle now in the USB port. If you had been doing this
while your dongle was in the port, then just remove the dongle from the port and
reconnect it.</p>
<p><b>You will now see the LED blinking :)</b>.</p>
<p> You are now connected to the internet.</p>

<h2> Some Caveats </h2>


<p>
</p><ul><li> Since you have compiled the driver yourself and this is not part of
the kernel yet, <b>everytime you update the kernel</b>, you will have to
<b>recompile the driver</b> by repeating
the above steps. If you would like to avoid this and want the driver to be part
of the kernel, you can build a <b>custom kernel</b>. You can check about this
approach
<a href="https://linuxmender.wordpress.com/2017/07/05/fedora-26-rtl8188eu-the-
hard-way/">here</a>.
</li>
<li>A lot of times, you will see connection drops or you will see that
<b>NetworkManager</b> will show the Wifi signal as being connected, but when you
hit the browser you
will see that you are actually <b>not connected to the internet.</b> Firing up a
terminal and hitting <b>dmesg</b>, you will see something like this
<pre class="prettyprint">
[22177.944547] R8188EU: INFO indicate disassoc
[22178.459739] R8188EU: INFO indicate disassoc
[22179.309493] R8188EU: INFO indicate disassoc
[22181.212994] IPv6: ADDRCONF(NETDEV_UP): wlp0s20u5: link is not ready
[22181.605695] IPv6:ADDRCONF(NETDEV_UP): wlp0s20u5: link is not ready
[22182.933052] R8188EU:INFO indicate disassoc
[22184.375390] R8188EU: INFO assoc success
[22184.375458] IPv6: ADDRCONF(NETDEV_CHANGE): wlp0s20u5: link becomes ready
[22633.346511] R8188EU: INFO indicate disassoc
[22635.043480] R8188EU: INFO assoc success
</pre>
<p>The line <b>R8188EU: INFO indicate disassoc</b> is because that
<b>NetworkManager</b> uses the modern <b>nl80211</b> driver while the Realtek
chipset uses the deprecated <b>wext</b>
driver. A hack solution would be to <b>turn off Wi-Fi</b> in NetworkManager and
<b>turn it back on</b>. This seems to solve the connectivity problem. The only
issue is you might have to
<b>do this quite frequently</b>.</p></li>
<li> If you're looking for a foolproof solution, then you can <b>disable
NetworkManager</b> and install <b>wicd</b>.</li>
<li>If you want to hack even further, i.e not use any network managers at all,
then you can use <b>wpa_supplicant</b>. For more details on this, check this blog
<a href="http://www.thelinuxrain.com/articles/getting-realtek-8188eu-wireless-
adapters-to-work-in-linux-and-possibly-other-wireless-realtek-
chipsets">here</a>.</p>
</li>
</ul>
<p><b> Happy Hacking :) </b></p>
<h2> Further reading and reference</h2>
<ul>
<li>http://www.thelinuxrain.com/articles/getting-realtek-8188eu-wireless-
adapters-to-work-in-linux-and-possibly-other-wireless-realtek-chipsets</li>
<li>https://linuxmender.wordpress.com/2017/07/05/fedora-26-rtl8188eu-the-hard-
way/</li>
<li>http://www.tp-link.com/us/download/TL-WN725N.html#Driver</li>
<li>https://fedoraproject.org/wiki/KernelStagingPolicy</li>
<li>https://github.com/lwfinger/rtl8188eu/</li>
</ul>
</p>

S-ar putea să vă placă și