Kubuntu 16.04下联想Y520笔记本QCA9377无线网卡故障求助
嘿,我来帮你搞定这个WiFi问题!既然基于Xenial的PuppyLinux能正常识别你的WiFi设备(叫wlan0),说明硬件本身完全没问题,问题肯定出在Kubuntu的驱动配置或者接口命名上,跟着下面的步骤一步步来:
1. 先搞清楚你的WiFi硬件具体型号
先查一下设备的PCI ID,这能帮我们精准定位适配的驱动:
lspci -nn | grep -i network
执行后会得到类似03:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e]的输出,把那串[168c:003e]这样的ID记下来,后面有用。
2. 检查ath10k_pci驱动有没有正常加载
虽然你看到了wlp3s0接口,但系统不认它,先确认驱动是不是真的在干活:
lsmod | grep ath10k_pci
如果没输出,说明驱动没加载,手动给它装上:
sudo modprobe ath10k_pci
加载完再跑一遍ip link show,看看wlp3s0的状态有没有变化。
3. 替换成Puppy里能用的ath10k固件
Puppy里能正常用,说明它的ath10k固件版本更适配你的设备。Kubuntu 16.04自带的固件可能有点兼容性问题,我们直接抄Puppy的过来用:
- 先在PuppyLinux里找到固件目录,一般是
/lib/firmware/ath10k/,里面有个和你刚才记的PCI ID对应的子文件夹(比如QCA6174之类的)。 - 把这个文件夹里的
board.bin、firmware-5.bin这些文件复制到Kubuntu的/lib/firmware/ath10k/对应目录下,替换掉原来的文件。 - 替换完要么重启系统,要么重新加载驱动:
sudo modprobe -r ath10k_pci && sudo modprobe ath10k_pci
4. 修复接口命名的问题
你遇到的Unknown interface wlp3s0错误,大概率是udev的接口命名规则抽风了,或者接口状态异常。试试这几招:
- 先把接口禁用再启用:
sudo ip link set wlp3s0 down sudo ip link set wlp3s0 up
- 如果还是不行,就用Puppy里的设备名
wlan0来配置:
编辑/etc/network/interfaces文件,加上这两行:
然后执行auto wlan0 iface wlan0 inet dhcpsudo ifup wlan0试试能不能连上。 - 要是还不行,直接重置udev的命名规则:
打开/etc/default/grub文件,找到GRUB_CMDLINE_LINUX那一行,改成这样:
然后更新grub:GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
重启之后,你的WiFi设备应该会被命名为wlan0,再尝试启用就没问题了。sudo update-grub
5. 对比驱动版本,必要时升级
你说两个系统的modinfo ath10k_pci输出只有版本描述的差异,那我们看看具体版本号:
在两个系统里分别执行:
modinfo ath10k_pci | grep version
如果Puppy的驱动版本更高,那就在Kubuntu里升级一下固件:
sudo apt-get update sudo apt-get install linux-firmware
要是官方源的版本还是不够,那可能得手动下载适配的驱动源码编译安装(不过这一步需要点编译基础,谨慎操作哦)。
内容的提问来源于stack exchange,提问作者sancho21

