文章目錄
前言
這篇文章主要指導大家在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 搜索不到wifi
和ubuntu 安裝無線網卡驅動
爲關鍵字進行搜索,其中最常見的解決方案如下:
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