難題 [已解決] :如何給Ubuntu系統安裝無線網卡驅動?

前言

這篇文章主要指導大家在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列表。如下:
在這裏插入圖片描述

問題描述已完畢,現在開始着手解決問題。

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 # 複製這個文件,並改名。

其中,我在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列表。

如下:
在這裏插入圖片描述
灰常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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章