第 1 部分

第 1 部分

我有一台装有 Lubuntu 的 Inspiron 15 Gaming 7567,在仍连接到 wifi 网络时,wifi 停止工作。我尝试更新内核,但没有帮助。

细节

尽管仍连接到路由器,但连接未传输任何信息。路由器支持其他设备/操作系统,没有任何问题(Android、iOS、Windows 等)。我以前使用过不同的硬件,但使用的是相同的 Lubuntu,没有遇到过这个问题。

当我遇到问题时,ping行为是:

# 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

这个问题可以暂时用以下方法解决:

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

有时连接会完全丢失,我必须重新启动计算机才能使其再次工作。

供应商(缺乏)支持

  1. 供应商网站没有列出该产品的驱动程序。

  2. 在供应商网站上发布获得的支持很差。我发了几条帖子后就被禁止在那里发帖了。

系统详细信息

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

给出:

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]

产品详细信息(供应商信息):

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

解决方法和不成功的解决方案

  1. 安装两个不同的内核:4.8.54.18.0。但这并没有解决问题。

  2. 解决方法:

    定义函数(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
    }
    

    并让其继续运行。

相关文章


提前致谢,如果需要,我可以提供更多信息。

答案1

2019-04-16 编辑:https://askubuntu.com/a/978143/438723也不能解决问题

2019-03-29 编辑:我重新提出该问题,因为以下第 1 节和第 2 节都无法解决问题(尽管可以说有一些缓解措施)。


第 1 部分

Ask Ubuntu 上有这个答案

稍加修改就解决了我的问题。即:

备份您现有的文件夹:/lib/firmware/ath10k/QCA9377

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

更新系统并安装 git

sudo apt-get update
sudo apt-get install git

克隆二进制文件

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

如果文件夹不存在则创建它们

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

稍作修改:清空目标文件夹

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

复制必要的文件

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

重新启动系统。

修改是有一个文件没有被命令覆盖cp,这可能导致问题,即使在我第一次尝试修复之后也会出现问题。

截至 2018-08-28,我的文件夹的校验和为:

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

第 2 部分:解决方法 1

这也有帮助:

如何防止 Wi-Fi 挂起后进入睡眠状态

第 3 部分:解决方法 2

以下是改进的解决方法:

创建文件:

#! /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

然后运行run.sh

相关内容