26

I have a HP 14-AN001NA laptop. It came with Windows 10 installed on which the Wi-Fi worked fine anywhere in the house.

However I removed Windows 10 and installed Ubuntu 16.04 instead and since I have had terrible Wi-Fi anywhere aside from about three foot away from the router. I don't know if it's relevant but my Wi-Fi is not called wlan0 but wlo1 for some reason (I didn't change it).

When running lspci -knn | grep Net -A3 I get the following output:

05:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter [10ec:b723]
DeviceName:  
Subsystem: Hewlett-Packard Company RTL8723BE PCIe Wireless Network Adapter [103c:81c1]
Kernel driver in use: rtl8723be
Kernel modules: wl, rtl8723be
pomsky
  • 68,507

4 Answers4

38

Run in a terminal

sudo tee /etc/modprobe.d/rtl8723be.conf <<< "options rtl8723be ant_sel=1"

and reboot.

The ant_sel parameter enables one of the two antenna connectors of your RTL8723be adapter. Your laptop has only one antenna because the vendor is too greedy to install two. The Linux drivers can't detect which antenna connector is in use. So we have to guess it.

In Windows either the vendor sets it up somewhere on a pre-installed system, or the Windows proprietary drivers can detect it.

If ant_sel=1 does not help, use ant_sel=2. This setting tells which antenna is in use 1 or 2.

Pilot6
  • 90,100
  • 91
  • 213
  • 324
  • You may also want to remove a wrong driver by sudo apt purge bcmwl-kernel-source – Pilot6 Feb 15 '17 at 17:42
  • Sorry but the problem has persisted after a fresh install for unrelated reasons. The advice you gave worked earlier but doesn't anymore – Blue Dabba Dee Feb 25 '17 at 18:52
  • 2
    Try ant_sel=1 – Pilot6 Feb 25 '17 at 18:57
  • And what is the kernel version? – Pilot6 Feb 25 '17 at 19:01
  • Brilliant, ant_sel=1 worked. What is this doing if you don't mind my asking? – Blue Dabba Dee Feb 25 '17 at 21:08
  • I updated the answer with explanation. – Pilot6 Feb 25 '17 at 21:15
  • "has only one antenna because the vendor is too greedy to install two" Seriously? This internal antennas cost nothing, it is basically a wire with a little connector... I personally like to dissemble PC (when it is not too complicated) and i suggest to check where it is in order to add antenna that you can take form an older laptop or buy. As an example, in first page of e-bay with a search such as "internal WiFi antenna" "you can see that they sell a pair of them for less than one dollar... Usually the wifi card is very easy to reach on laptop, but for sure, sometime it is not the case. – kcdtv Feb 25 '17 at 22:43
  • The problem is not that only one antenna is there. The problem is the driver is not able to guess which antenna is there. " The HP computers with a problem definitely have only one antenna and their EEPROM incorrectly specifies which connector is used." said lwfinger maintainer of https://github.com/lwfinger/rtlwifi_new I recommend you to use that repo and the driver there instead of the driver of the kernel – solsTiCe Mar 06 '17 at 18:55
  • @solsTiCe Larry made a lot of commits to the kernel. Now it works well. I am not sure Windows drivers can detect it either. Th vendor just sets it somewhere on a preinstalled OS. – Pilot6 Mar 06 '17 at 18:57
  • worked right after reboot with ant_sel=1 on HP Notebook 15-ac14ne – Tooniis Jul 21 '17 at 16:23
  • 3
    Works great! But it disconnects randomly. Would you be able to help on how to fix this? I am using Ubuntu 16.04 LTS – Suhail Gupta Oct 21 '17 at 11:11
  • 1
    Thanks a lot. ant_sel=2 worked on one of my friends HP laptop. – Mukesh Chapagain Mar 07 '18 at 16:10
  • ant_sel=1 for me on lenovo B50-70 80EU, thx :-) – St3an Mar 15 '18 at 21:58
2

Note: I haven't tested it on Ubuntu 16.04, but it works fine on Ubuntu 18.04.

It's a problem with the drivers of Realtek RTL8723BE controller. Do this:

  1. Get the new wifi drivers from github:

     git clone https://github.com/lwfinger/rtlwifi_new.git -b rtw88
    
  2. Go into the directory:

     cd rtlwifi_new
    
  3. Build it:

     make
    
  4. Install:

     sudo make install
    

    Now the new drivers are installed. To see what is the correct antenna configuration for your laptop, do this:

  5. Unload the existing module:

     sudo modprobe -r rtl8723be
    
  6. Load the new module with antenna configuration:

     sudo modprobe rtl8723be ant_sel=1
    
  7. Check the wifi signals using:

     iwlist scan | egrep -i 'ssid|quality'
    

    Next repeat steps 5-7 with ant_sel=2 in step 6.

  8. Whichever configuration gives the better signal quality, make it the default by using:

     echo "options rtl8723be ant_sel=N" | sudo tee /etc/modprobe.d/rtl8723be.conf
    

    ---> Replace N with 1 or 2.

Note: After each kernel update, you need to rebuild the modules.

2

What fixed my laptop HP Pavilion with Ubuntu 16.04 is https://github.com/navilg/rtl8723be.

I had this issue with 14.04. I had a script that fixed it but when I upgraded OS this script didn't work any more.

I've not been able to use my laptop with Ubuntu 16.04 for about 4 months. This script fixed the issue completely.

-1

Follow below steps available on hp site:

https://h30434.www3.hp.com/t5/Notebook-Wireless-and-Networking/Realtek-8723DE-wifi-module-amp-Bluetooth-Linux-driver/td-p/6477307

$ git clone -b extended --single-branch https://github.com/lwfinger/rtlwifi_new.git
unofficial
$ cd rtlwifi_new

$ make 
$ sudo make install
$ sudo modprobe -v rtl8723de ant_sel=2
slava
  • 3,887