4

I have an Inspiron 15 Gaming 7567 with Lubuntu and the wifi stops working while still connected to a wifi network. I have tried to update the kernel but it did not help.

Details

The connection transports no information despite still being connected to the router. The router supports other devices/OSes without problems (Android, iOS, Windows, etc). I used to have a different hardware with the same Lubuntu and I didn't have this problem.

When I have the problem the ping behavior is:

# Trying to ping google.com to see if there still connection.
From 192.168.1.34 icmp_seq=8413 Destination Host Unreachable
From 192.168.1.34 icmp_seq=8414 Destination Host Unreachable
From 192.168.1.34 icmp_seq=8415 Destination Host Unreachable

This gets temporarily solved with:

nmcli radio wifi off ; sleep 5s ; nmcli radio wifi on

Sometimes the connection gets totally lost and I have to reboot the computer in order for it to work again.

Vendor (lack of) support

  1. Vendor website lists no drivers for this product.

  2. Post on vendor website received poor support. I was blocked from posting there after the few posts I made.

System details

sudo uname -a
echo "----------"
sudo lsb_release -a
echo "----------"
sudo sudo lshw | grep product
echo "----------"
sudo lspci -nnk | grep -i net

Gives:

Linux monteironet 4.15.18-041518-generic #201804190330 SMP Thu Apr 19 07:34:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
----------
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:    16.04
Codename:   xenial
----------
    product: Inspiron 15 7000 Gaming (0798)
       product: 0KD43Y
             product: TMA81GS6AFR8N-UHSC
          product: Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
          product: Intel Corporation
             product: Sky Lake PCIe Controller (x16)
                product: NVIDIA Corporation
             product: Intel Corporation
             product: Intel Corporation
             product: Sunrise Point-H USB 3.0 xHCI Controller
                product: xHCI Host Controller
                   product: Integrated Webcam
                product: xHCI Host Controller
             product: Sunrise Point-H Thermal subsystem
             product: Sunrise Point-H LPSS I2C Controller #0
             product: Sunrise Point-H LPSS I2C Controller #1
             product: Sunrise Point-H CSME HECI #1
             product: Sunrise Point-H SATA Controller [AHCI mode]
             product: Sunrise Point-H PCI Express Root Port #5
                product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
             product: Sunrise Point-H PCI Express Root Port #6
                product: QCA6174 802.11ac Wireless Network Adapter
             product: Sunrise Point-H LPC Controller
             product: Sunrise Point-H PMC
             product: Intel Corporation
             product: Sunrise Point-H SMBus
             product: TOSHIBA MQ02ABD1
       product: DELL 71JF452
----------
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
    Subsystem: Dell RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [1028:0798]
03:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32)
    Subsystem: Dell QCA6174 802.11ac Wireless Network Adapter [1028:0310]

Product details (vendor info):

8GB (1x8GB) 2400MHz DDR4 Memory, Brazil
1TB 5400 rpm Hybrid Hard Drive with 8GB Cache
NVIDIA(R) GeForce(R) GTX 1050 with 4GB GDDR5 graphics memory
802.11ac, dual band, 2.4 5 GHz, 2x2
Internal Keyboard
Ubuntu Linux 16.04
Dell Limited Hardware Warranty Initial Year
7th Generation Intel(R) Core(TM) i5-7300HQ Quad Core (6MB Cache, up to 3.5 GHz)
MOD,LCD,N-TCH,IPS,BLK,7567,BCC
74 WHr, 6-Cell Battery (Integrated)
Ubuntu System Management Software
Fixed Hardware Configuration
Safety/Environment and Regulatory Guide (English/Brazilian Portuguese)
Qualcomm Wireless QCA61x4A 2x2 Label BCC
Brazil Power Cord
802.11ac + Bluetooth 4.1, Dual Band 2.4&5 GHz, 2x2
Mail In Service after Remote Diagnosis, 1 Year
Back Cover
Shipping Material BCC
US Order
Dell.com Order
Dell.com Order
No Option Included
Placemat Documentation
Energy Star Label
Intel Core i5 Processor Kabylake Label
Regulatory Label, BCC
130W AC Adapter
None Required
None Required
None Required
None Required
Information Only

Workarounds and unsuccessful solutions

  1. Installation of two different kernels: 4.8.5 and 4.18.0. That didn't solve the problem.

  2. Workaround:

    Define the function (zsh):

    function monitor_internet_connection_and_reset
    {
        while true
        do
            n=0
            until [ $n -ge 3 ]
            do
                wget -q --spider http://google.com && n=0
                n=$[$n+1]
                sleep 5s
            done
            nmcli radio wifi off && sleep 10s && nmcli radio wifi on
            sleep 40s
        done
    }
    

    and leave it running.

Related post


Many thanks in advance, I can provide further info if needed.

2

2019-04-16 edit: https://askubuntu.com/a/978143/438723 does not solve the problem either

2019-03-29 edit: I'm reopening the issue because neither the following section 1 nor section 2 solves the problem (although there is arguably some mitigation).


Section 1

This answer here on Ask Ubuntu

Solved my problem with a slight modification. Namely:

Backup your existing folder: /lib/firmware/ath10k/QCA9377

tar -cvf ~/lib_firmware_ath10k_QCA9377.tar /lib/firmware/ath10k/QCA9377

Update your system and install git

sudo apt-get update
sudo apt-get install git

Clone the binaries

git clone --depth 1 https://github.com/kvalo/ath10k-firmware.git

Create the folders if they don't exist

sudo mkdir /lib/firmware/ath10k/QCA9377
sudo mkdir /lib/firmware/ath10k/QCA9377/hw1.0
cd ./ath10k-firmware/QCA9377/hw1.0

Slight modification: empty the destination folder

sudo rm -rf /lib/firmware/ath10k/QCA9377/hw1.0/*

Copy the necessary files

sudo cp *  /lib/firmware/ath10k/QCA9377/hw1.0
cd /lib/firmware/ath10k/QCA9377/hw1.0
sudo mv firmware-5.bin_WLAN.TF.1.0-00267-1  firmware-5.bin

Reboot your system.

The modification was that there was a file not overwritten by the cp command and that may have caused problems even after I tried the fix for the first time.

The checksums of my folder as of 2018-08-28 are:

sha1sum /lib/firmware/ath10k/QCA9377/hw1.0/*
916b43f870cfa06b26728092c79e3f6d86fa7b33  /lib/firmware/ath10k/QCA9377/hw1.0/board-2.bin
36e5491fc79e0f4d01bb619c35a678e94235ef35  /lib/firmware/ath10k/QCA9377/hw1.0/board.bin
0b76acbcdeb82ce2d814b83b696e12e0d5d22ecb  /lib/firmware/ath10k/QCA9377/hw1.0/firmware-5.bin
b31b4844577d0c77b955a3934930857b9a04cbbd  /lib/firmware/ath10k/QCA9377/hw1.0/notice_ath10k_firmware-5.txt

Section 2: Workaround 1

This also has helped:

How to prevent wifi sleep after suspend

Section 3: Workaround 2

The following is an improved workaround:

Create the files:

#! /bin/bash

# Halt on error.
# set -e

# Go to execution directory.
cd $(dirname $0)

set -e
test "$USER" != "root"
set +e

total_tries=4
n=0
until [ $n -ge $total_tries ]
do
    timeout "$((n+1))s" ping -c 1 www.google.com && n=0
    n=$[$n+1]
    echo "Current try: ${n} out of ${total_tries}."
    sleep 3s
done
# File name: regular_user.sh
#! /bin/bash

# Halt on error.
set -e
set +e

# Go to execution directory.
cd $(dirname $0)

export regular_user="$USER"
export DRIVER=ath10k_pci

sudo -E bash -xv ./super_user.sh
# File name: run.sh
#! /bin/bash

# Halt on error.
set -e
set +e

# Go to execution directory.
cd $(dirname $0)

set -e
test -n "$regular_user"
test "$regular_user" != "root"
set +e

while true
do
    sudo -E -u "$regular_user" -i -H bash -xv "$PWD/regular_user.sh"
    # sudo -E -u "$regular_user" -i -H bash ./regular_user.sh
    /sbin/modprobe -v -r $DRIVER
    /sbin/modprobe -v $DRIVER
    m=0
    until timeout 2s ping -c 1 www.google.com
    do
        if [ $m -ge $total_tries ]
        then
            m=0
            /sbin/modprobe -v -r $DRIVER
            /sbin/modprobe -v $DRIVER
        fi
        m=$[$m+1]
        sleep 2s
    done
done
# File name: super_user.sh

Then run run.sh.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.