这篇文章主要指导大家在ubuntu系统上安装无线网卡驱动,其适用的场景如下:
1)现有中文网站的解决方案都不太行,如下图:
上面这5篇文章我都一一看过,但是仍无法解决自己的问题。
2)你知道自己的电脑是有无线网卡的,但是Ubuntu 下搜不到wifi信号(鉴别方法:#方法1 如果你装了双系统,在windows下能搜索到wifi,但是在ubuntu下搜索不到wifi; #方法2 稍后会在文中提到。)。
备注: 这绝对是一篇良心之作,毕竟这个问题我从研一就开始思考了,当时各种尝试没成功,昨晚研究了一晚上,终于搞出来了。所以今天早上特意再此记录一下,致和曾经之我一样在此问题上困扰的朋友们。
我是ubuntu 14.04 系统,装在dell的台式机上。而且我装的是双系统,即:windows 10和ubuntu 14.04系统并存于台式机上。
但是呢,我打开windows,发现能够搜索到wifi,然而切换到ubuntu系统后,却搜不到任何wifi列表。如下:
问题描述已完毕,现在开始着手解决问题。
我想从两个方面讲原因:
原因就是当前的开源系统Ubuntu对硬件的支持还不太好。所以Ubuntu系统在安装的时候,不会自动给电脑装上无线网卡驱动。
这个还是挺扎心的
原因就是ubuntu是国外主导开发的,其QA问答社区(叫做ask Ubuntu
,网址在:https://askubuntu.com/ )是英文社区。如果仅仅只是想在中文网站上找到答案,真的很难。
此外,依我来看,当前的中文网站(不包括这篇文章)给出的解决方案有几个缺点:
ubuntu 搜索不到wifi
和ubuntu 安装无线网卡驱动
为关键字进行搜索,其中最常见的解决方案如下:sudo apt-get update
sudo apt-get install bcmwl-kernel-source
或者是 通过设置ubuntu下的software & updates来解决问题。参见文献:[1、2、3、4]
在我把中文网站的解决方法都试了一遍之后,我发现这些方案都不适用于我电脑的情况。(感觉是无线网卡型号不太一样)。于是我转向英文网站、社区。
在此将解决方案记录如下。
首先,要查清楚电脑是否有无线网卡,如果有,是什么型号
只有先查到自己的电脑的无线网卡型号,才能“对症下药”。要查明型号,可以参考 [5、6]:
我使用的命令是:
lspci -nnk | grep -iA2 net
这时候会出现类似如下的信息:
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Subsystem: Acer Incorporated [ALI] Device [1025:098a]
Kernel driver in use: r8169
03:00.0 Network controller [0280]: Qualcomm Atheros Device [168c:0042] (rev 30)
Subsystem: Foxconn International, Inc. Device [105b:e09a]
Kernel driver in use: ath10k_pci
其中Ethernet Controller
表明你的电脑有以太网卡,Network controller
表明你的电脑有无线网卡。
我在我的Ubuntu系统上运行lspci -nnk | grep -iA2 net
的输出中找到了如下信息:
Qualcomm Atheros Device [168c:0042] (rev 31)
这个即表明了我电脑的无线网卡型号是高通的 [168c:0042] (rev 31) 型号。
明确网卡型号之后,开始下载驱动。
其次,根据网卡型号下载对应的驱动,并安装
参考的是:[7],里面的答案不够连续、完整,所以整理并注释如下:
sudo apt-get update # 每次用apt-get下载软件的时候都会先更新一下
sudo apt-get upgrade # 更新一下系统软件
sudo apt-get install git # 安装git软件
git clone https://github.com/kvalo/ath10k-firmware.git # 用git去下载ubuntu的网卡驱动程序
sudo mkdir /lib/firmware/ath10k/QCA9377 # 在lib/下建立文件夹
sudo mkdir /lib/firmware/ath10k/QCA9377/hw1.0 # 建立文件夹
cd ath10k-firmware/QCA9377/hw1.0 # 打开下载的网卡驱动程序的指定目录
sudo cp -rf * /lib/firmware/ath10k/QCA9377/hw1.0 # 把这个文件夹下的所有文件及文件夹都拷贝到刚刚创建的文件夹中
cd /lib/firmware/ath10k/QCA9377/hw1.0 # 打开刚刚创建的文件夹
sudo cp CNSS.TF.1.0/firmware-5.bin_WLAN.TF.1.0-00267-1 firmware-5.bin # 复制这个文件,并改名。
根据自己的网卡型号,比如我的是Qualcomm Atheros Device [168c:0042] (rev 31),然后去搜索引擎上搜,比如我找到的是这个网站:https://askubuntu.com/questions/994555/qualcomm-atheros-device-168c0042-rev-31-wi-fi-driver-installation 里面就有对应网卡驱动的下载方法哈。 依照类似方法应该就可以找到并成功配置的
其中,我在sudo apt-get upgrade中出现问题 (如果没有问题,可以直接跳至 3.3):
initctl: Unknown job: apport
File “/usr/bin/pyclean”, line 63
except (IOError, OSError), e:
^
SyntaxError: invalid syntax
dpkg: error while cleaning up:
…
E: Sub-process /usr/bin/dpkg returned an error code (1)
当时我就感觉是ubuntu的python版本问题,用python --version一查,我的版本是3.5。这样的话就会出现如上的syntaxerror。
所以参考[8],将python版本换成2.7版本之后,即可成功sudo apt-get upgrade。更换版本的指令如下:
ls -l /usr/bin/python # 先确认下/usr/bin/python 指向的是不是python3版本
sudo rm /usr/bin/python # 移除原先指向python3版本的链接
whereis python2.7 # 找到python2.7的位置
sudo ln -s /usr/bin/python2.7 /usr/bin/python # 重置链接
sudo reboot 重启之后即可成功搜索到wifi!
在做完3.1和3.2 之后,在terminal(即命令行)中输入sudo reboot进行重启。即可看到wifi列表。
灰常nice。
如果你执行了上述三个步骤还没成功,而且你之前还参考过中文网页安装过:
sudo apt-get install bcmwl-kernel-source
那么需要卸载这个bcmwl程序,执行以下命令:
sudo apt-get purge bcmwl-kernel-source
然后再sudo reboot
参考:[9]。
本文这个方案适用于:Qualcomm Atheros Device [168c:0042] (rev 31)
这个网卡型号;ubuntu 14.04 系统。
不过如果你有类似的问题(ubuntu无法搜索到wifi),可以:
最后,总的来说, 昨天装成功之后还是很激动的,毕竟困扰已久,而且当时我本来早就想休息了,但是突然碰到这个问题,,,最后强迫症犯了,强行用手机查资料,然后一步一步逼近问题的真相,直到解决问题。
故在此记录。
小小感触: 写之前想把这个写成最好、最有吸引力的文章,因为我认为当前中文网页还没有这样ubuntu安装无线网卡驱动详细介绍的文章。花了1个多小时写作,尽管自己试图写的条理清晰,思路简洁到位,但还是感觉不满意。只能慢慢练了。写作的功夫还是要多输入输出。
参考文献
[1] Ubuntu16.04无法连接Wifi解决方案 (绝对有效) https://blog.csdn.net/weixin_41762173/article/details/79480609
这里的评论区值得一看,很多探索者。
只不过名字取得太绝对了,每个人的电脑、型号之类的都不一样,无法做到对每一种情况都绝对有效。
[2] ubuntu16.04无法连接无线网,搜不到wifi https://blog.csdn.net/kh896424665/article/details/54784100
[3] ubuntu搜不到wifi信号 https://www.cnblogs.com/yulongzhou/p/5871474.html
[4] 解决Ubuntu14.04 下不显示wifi的情况 https://blog.csdn.net/weixin_40358083/article/details/80224098
[5] Wireless not working in Ubuntu 14.04. https://ubuntuforums.org/showthread.php?t=2317452&page=2
[6] Qualcomm Atheros Device [168c:0042] (rev 30) Wi-Fi driver installation https://askubuntu.com/questions/708061/qualcomm-atheros-device-168c0042-rev-30-wi-fi-driver-installation
[7] Qualcomm Atheros Device [168c:0042] (rev 31) Wi-Fi driver installation https://askubuntu.com/questions/994555/qualcomm-atheros-device-168c0042-rev-31-wi-fi-driver-installation
[8] Can no longer use apt-get to install due to error with apport [closed] https://askubuntu.com/questions/629966/can-no-longer-use-apt-get-to-install-due-to-error-with-apport
[9] I have a Dell Inspiron running ubuntu budgie 17.10. Recently after some updates the bluetooth device is no longer recognized https://askubuntu.com/questions/998845/i-have-a-dell-inspiron-running-ubuntu-budgie-17-10-recently-after-some-updates
[10] Wifi is not connected automatically in my dell inspiron 15 5570 https://askubuntu.com/questions/990283/wifi-is-not-connected-automatically-in-my-dell-inspiron-15-5570
[11] ath10k installation https://askubuntu.com/questions/607707/ath10k-installation/639196#639196
[12] Qualcomm Atheros Device 0042 (rev 31) driver https://askubuntu.com/questions/883651/qualcomm-atheros-device-0042-rev-31-driver