本文解說Ubuntu Linux遇到Wifi無線網路卡插入電腦USB沒反應的時候,可以嘗試的步驟。
Ivon有台Q9550 CPU的電腦,跑Ubuntu 22.04,一直以來都是用手機分享有線網路,想給他裝個外接網路卡,於是買了Wifi與藍芽二合一的網路卡。
正確來講,Ivon應該要買明確寫支援Linux的網路卡才對…但是實體通路選擇真的不多,所以隨便挑了一個。
品名: “Dual Band + Bluetooth USB Adapter”,看它有二個天線,收訊應該很好吧。
插入電腦果然沒反應。儘管製造商宣稱隨插即用,但不意外地只支援Windows和macOS。對Linux來說,只要網路卡驅動程式沒含在核心裡面,就不可能「隨插即用」。
光碟裡面附的驅動程式不知道是幾百年前的版本,Ubuntu也沒提供相關套件驅動。在這種情況下,就得賭賭看是否有熱心開發者提供Linux驅動程式了。只要能找到驅動程式,編譯驅動,再載入核心模組(kernel module),就可以使用該網路卡。
首先用指令查看網路卡具體硬體型號,然後再下載驅動程式編譯安裝。
1. 如何查看網路卡型號#
這個網路卡的外包裝也真夠怪的,沒有品牌和製造商資訊,只有光碟寫"RTL190CT",找不到相關資料。
不過,只要電腦USB連接埠沒壞,插上電腦Linux一定會抓到USB裝置。
- 用以下指令查詢確切型號,執行
lsusb
。接著會列出連接的USB裝置。
Bus 001 Device 002: ID 0bda:b82c Realtek Semiconductor Corp. 802.11ac NIC
從後面輸出訊息知道此網路卡晶片是Realtek生產的,Bus 001後面的硬體ID
0bda:b82c
拿去Google。在 WikiDevi找到了這個網卡的具體型號:Realtek RTL8822BU
2. 編譯安裝網路卡驅動程式#
Ivon在 Github找到了熱心開發者morrownr維護的驅動程式,支援RTL8812BU與RTL8822BU晶片。
- Ubuntu 22.04需安裝編譯工具
sudo apt update
sudo apt install dkms git build-essential
- 建立工作目錄
mkdir -p ~/src
cd src
- 複製指令稿,以DKMS安裝(這樣Wifi驅動會跟著Linux核心自動更新,日後不需要手動編譯)
git clone https://github.com/morrownr/88x2bu-20210702.git
cd ~/src/88x2bu-20210702
sudo ./install-driver.sh
- 剩下問題選項輸入No,重開機。
3. 連上Wifi#
點選Ubunbu的系統設定 → Wifi與網路應該能開啟網路了。
如果要保險一點,可以用終端機nmcli指令確認網路卡是否有真的啟用。
- 用
ifconfig
列出所有網路卡,應該會偵測到Realtek的無線網卡:
wlx1cbfcee3712a: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 1c:bf:ce:e3:71:2a txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 啟用網卡
sudo ifconfig wlx1cbfcee3712a up
- 掃描附近的Wifi
sudo nmcli device wifi list ifname wlx1cbfcee3712a
- 連線
sudo nmcli device wifi connect "WIFI名稱" password "密碼" ifname "wlx1cbfcee3712a"
- 設定開機自動連線
sudo nmcli device set "wlx1cbfcee3712a" autoconnect yes