这个问题一直困扰很多XPS用户,特别是在linux kernel升级后,会有一定概率发现自己的WiFi在系统重启后消失了!
其中一个解决方法就是更换兼容性更好的Intel 无线模块,但需要一些基础的动手能力。我对换硬件解决问题一直不太感冒,所以在经过研究之后,在这个thread里找到了答案。
目前还没写对应的bash,回头会写一个bash,下回再出现这个问题的时候,运行一下bash就行了。
以下是手动修复的整个过程:
- 确认WiiFi的型号及信息
sudo lshw -C network
# 可以在output里发现这么一段关于WiFi设备的信息,其中QCA6174是需要记录下来的信息
*-network
description: Wireless interface
product: QCA6174 802.11ac Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:3b:00.0
logical name: wlp59s0
- 获取设备启动报错信息
dmesg | grep ath10k
这样你就能知道为什么你的WiFi无法正确加载了
在我这遇到的问题是说在hw3.0里无法找到firmware-N.bin的文件。其他错误我没遇到过,解决思路大致都一样的。
- 解决步骤
1. 到驱动所在的目录,之前第一步有知道设备的型号是QCA6174,所以先到 /lib/firmware/ath10k/QCA6174 这个目录,目录里有hw2.1和hw.3.0两个文件夹。
2. 使用sudo rm命令删除hw3.0文件夹
sudo rm -rf hw3.0
3. 再开一个terminal,使用将这个repository clone到本地
git clone git@github.com:kvalo/ath10k-firmware.git
4. 使用sudo cp命令将对应的hw3.0文件夹拷贝进驱动文件夹
sudo cp -r ./ath10k-firmware/QCA6174/hw3.0 /lib/firmware/ath10k/QCA6174/
5. 回到/lib/firmware/ath10k/QCA6174/hw3.0目录中,你会发现以及有很多文件夹以及一个board2.bin的文件。现在需要知道哪个文件是最新的,你可以直接到对应的网站上看那个文件夹更新的时间最近
https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0
这里我看到有两个文件夹显示最后更新都是2 months ago,一个是4.4.1,还有一个4.4.1.c3,后者有可能不是稳定版,所以我选择进入4.4.1这个文件夹,在一堆fireware-6.bin_WLAN.RM.4.4.1-*的文件里,找到最新的那个文件名。
在这个例子里,我找到的文件名是:firmware-6.bin_WLAN.RM.4.4.1-00282-QCARMSWPZ-1
6. 创建fireware-N.bin文件。由于上一步中,我们看到的那个文件是firmware-6.bin开头的文件,此时你只需要用sudo cp命令,将这个文件更名复制到上级目录就可以了
sudo cp ./4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00282-QCARMSWPZ-1 firmware-6.bin
7. 重启