难题 [已解决] :中文社区是怎么了?Ubuntu无线网卡驱动安装也解决不了

0. 前言

这篇文章主要指导大家在ubuntu系统上安装无线网卡驱动,其适用的场景如下:
1)现有中文网站的解决方案都不太行,如下图:

难题 [已解决] :中文社区是怎么了?Ubuntu无线网卡驱动安装也解决不了_第1张图片

上面这5篇文章我都一一看过,但是仍无法解决自己的问题。

2)你知道自己的电脑是有无线网卡的,但是Ubuntu 下搜不到wifi信号(鉴别方法:#方法1 如果你装了双系统,在windows下能搜索到wifi,但是在ubuntu下搜索不到wifi; #方法2 稍后会在文中提到。)。

备注: 这绝对是一篇良心之作,毕竟这个问题我从研一就开始思考了,当时各种尝试没成功,昨晚研究了一晚上,终于搞出来了。所以今天早上特意再此记录一下,致和曾经之我一样在此问题上困扰的朋友们。

1. 问题描述

我是ubuntu 14.04 系统,装在dell的台式机上。而且我装的是双系统,即:windows 10和ubuntu 14.04系统并存于台式机上。

但是呢,我打开windows,发现能够搜索到wifi,然而切换到ubuntu系统后,却搜不到任何wifi列表。如下:

难题 [已解决] :中文社区是怎么了?Ubuntu无线网卡驱动安装也解决不了_第2张图片

难题 [已解决] :中文社区是怎么了?Ubuntu无线网卡驱动安装也解决不了_第3张图片

问题描述已完毕,现在开始着手解决问题。

2. 问题出现的原因

我想从两个方面讲原因:

  • 1)明明自己的台式机(或者笔记本)有无线网卡硬件,但是ubuntu却搜不到无线网络(wifi) 的原因:

原因就是当前的开源系统Ubuntu对硬件的支持还不太好。所以Ubuntu系统在安装的时候,不会自动给电脑装上无线网卡驱动。

这个还是挺扎心的

  • 2)明明自己已经在网上找了各种解决方案,但是还是无法成功解决无线网卡驱动安装的问题,也没办法让自己的ubuntu 系统搜索到无线网络

原因就是ubuntu是国外主导开发的,其QA问答社区(叫做ask Ubuntu,网址在:https://askubuntu.com/ )是英文社区。如果仅仅只是想在中文网站上找到答案,真的很难。

此外,依我来看,当前的中文网站(不包括这篇文章)给出的解决方案有几个缺点:

  • 1)含糊不清。往往还没说清楚自己的无线网卡是什么型号的(网卡型号很重要,不同的无线网卡硬件型号对应不同的无线网卡驱动),就直接给出解决方案,这样的话普适性是不强的,而且容易误导他人;
  • 2)方法单一。如下:
    我以ubuntu 搜索不到wifiubuntu 安装无线网卡驱动为关键字进行搜索,其中最常见的解决方案如下:
sudo apt-get update  
sudo apt-get install bcmwl-kernel-source  

或者是 通过设置ubuntu下的software & updates来解决问题。参见文献:[1、2、3、4]

在我把中文网站的解决方法都试了一遍之后,我发现这些方案都不适用于我电脑的情况。(感觉是无线网卡型号不太一样)。于是我转向英文网站、社区。

在此将解决方案记录如下。

3. 解决方案

3.1 查清楚电脑是否有无线网卡

首先,要查清楚电脑是否有无线网卡,如果有,是什么型号
只有先查到自己的电脑的无线网卡型号,才能“对症下药”。要查明型号,可以参考 [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) 型号。

明确网卡型号之后,开始下载驱动。

3.2 下载并安装对应网卡型号的驱动

其次,根据网卡型号下载对应的驱动,并安装
参考的是:[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 				# 重置链接

3.3 重启电脑

sudo reboot 重启之后即可成功搜索到wifi!

在做完3.1和3.2 之后,在terminal(即命令行)中输入sudo reboot进行重启。即可看到wifi列表。

如下:
难题 [已解决] :中文社区是怎么了?Ubuntu无线网卡驱动安装也解决不了_第4张图片

灰常nice。

3.4 其他问题

如果你执行了上述三个步骤还没成功,而且你之前还参考过中文网页安装过:
sudo apt-get install bcmwl-kernel-source

那么需要卸载这个bcmwl程序,执行以下命令:
sudo apt-get purge bcmwl-kernel-source

然后再sudo reboot

参考:[9]。

4. 总结

本文这个方案适用于:Qualcomm Atheros Device [168c:0042] (rev 31)这个网卡型号;ubuntu 14.04 系统。

不过如果你有类似的问题(ubuntu无法搜索到wifi),可以:

  • 1) 去ubuntu社区:https://askubuntu.com/ 去查找问题(关键字要定好);
  • 2) 参考我给出的一些参考文献:[5、6、7、8、9、10、11、12] 看完这些之后,你将会对自己的无线网卡、无线网卡驱动问题有一个全新的了解,进而解决自己的问题。

最后,总的来说, 昨天装成功之后还是很激动的,毕竟困扰已久,而且当时我本来早就想休息了,但是突然碰到这个问题,,,最后强迫症犯了,强行用手机查资料,然后一步一步逼近问题的真相,直到解决问题。

故在此记录。

小小感触: 写之前想把这个写成最好、最有吸引力的文章,因为我认为当前中文网页还没有这样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

你可能感兴趣的:(python,ubuntu,网卡,驱动,linux)