Ubuntu系統(tǒng)下USB無(wú)線網(wǎng)卡無(wú)法識(shí)別的解決方案
一、問題描述
當(dāng)無(wú)線網(wǎng)卡插入U(xiǎn)buntu系統(tǒng)后,lsusb
顯示設(shè)備已識(shí)別,但網(wǎng)絡(luò)管理工具無(wú)反應(yīng),iwconfig
找不到無(wú)線接口。核心問題是系統(tǒng)識(shí)別了USB設(shè)備,卻未正確加載無(wú)線網(wǎng)卡驅(qū)動(dòng)。
二、問題本質(zhì)與根本原因
問題本質(zhì)
Realtek等品牌的無(wú)線網(wǎng)卡可能被系統(tǒng)簡(jiǎn)單識(shí)別為"USB設(shè)備",但未匹配到對(duì)應(yīng)的無(wú)線驅(qū)動(dòng),導(dǎo)致設(shè)備無(wú)法發(fā)揮網(wǎng)絡(luò)功能。
根本原因
- 設(shè)備識(shí)別不完整:系統(tǒng)僅知道是Realtek的USB設(shè)備,不知具體型號(hào)。
- 驅(qū)動(dòng)缺失:內(nèi)核沒有內(nèi)置該型號(hào)的無(wú)線網(wǎng)卡驅(qū)動(dòng)。
- 固件未加載:即使驅(qū)動(dòng)存在,也可能缺少必要的固件文件。
三、排查與解決步驟
(一)確認(rèn)虛擬機(jī)USB設(shè)備連接狀態(tài)(虛擬機(jī)場(chǎng)景)
- VirtualBox操作:
- 頂部菜單欄 → 「設(shè)備」→「USB」→ 確保無(wú)線網(wǎng)卡左側(cè)有勾選。
- 若未顯示設(shè)備:
- 檢查「設(shè)備」→「USB」→「USB設(shè)備過(guò)濾器」,添加網(wǎng)卡過(guò)濾規(guī)則(通過(guò)主機(jī)
lsusb
或設(shè)備管理器獲取廠商ID和產(chǎn)品ID)。 - 安裝VirtualBox擴(kuò)展包(支持USB 3.0及設(shè)備直通,下載地址)。
- 檢查「設(shè)備」→「USB」→「USB設(shè)備過(guò)濾器」,添加網(wǎng)卡過(guò)濾規(guī)則(通過(guò)主機(jī)
- VMware操作:
- 頂部菜單欄 → 「虛擬機(jī)」→「可移動(dòng)設(shè)備」→ 找到無(wú)線網(wǎng)卡點(diǎn)擊「連接」。
- 若連接失敗:
- 關(guān)閉虛擬機(jī),編輯
.vmx
文件,添加usb.restrictions.defaultAllow = "TRUE"
后重啟。
- 關(guān)閉虛擬機(jī),編輯
(二)確認(rèn)系統(tǒng)是否檢測(cè)到USB設(shè)備
執(zhí)行命令查看所有USB設(shè)備:
lsusb
- 若未找到無(wú)線網(wǎng)卡:虛擬機(jī)未成功獲取設(shè)備,回到步驟(一)檢查USB分配(可能被主機(jī)占用,需在主機(jī)中“安全刪除”該設(shè)備后重新插入)。
- 若找到無(wú)線網(wǎng)卡(如顯示
Realtek Semiconductor Corp. RTL8188GU
等):設(shè)備已被系統(tǒng)檢測(cè)到,但未被識(shí)別為無(wú)線設(shè)備(驅(qū)動(dòng)或固件問題),繼續(xù)排查驅(qū)動(dòng)。
(三)排查驅(qū)動(dòng)或固件缺失問題
若 lsusb
能看到無(wú)線網(wǎng)卡,但 iwconfig
無(wú)無(wú)線接口,大概率是驅(qū)動(dòng)未加載或固件缺失。
1. 查看驅(qū)動(dòng)加載日志
通過(guò)內(nèi)核日志定位具體問題:
dmesg | grep -i "usb\|wifi\|firmware\|你的網(wǎng)卡型號(hào)" # 替換為lsusb中看到的型號(hào),如rtl8188
- 常見錯(cuò)誤及解決:
錯(cuò)誤1:firmware file ... missing
(固件缺失)
# 以Realtek RTL8188GU為例 sudo mkdir -p /lib/firmware/rtlwifi sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/rtlwifi/rtl8188gu-fw.bin -O /lib/firmware/rtlwifi/rtl8188gu-fw.bin sudo modprobe 8188gu # 加載驅(qū)動(dòng)
- 例如:
rtl8188gu-fw.bin not found
,需下載對(duì)應(yīng)固件:
錯(cuò)誤2:module not found
(驅(qū)動(dòng)模塊不存在)
# 安裝依賴 sudo apt install build-essential dkms git # 克隆驅(qū)動(dòng)源碼 git clone https://github.com/morrownr/8821cu-20210916.git cd 8821cu-20210916 # 編譯安裝 sudo ./install-driver.sh
- 說(shuō)明內(nèi)核未自帶該網(wǎng)卡驅(qū)動(dòng),需手動(dòng)安裝第三方驅(qū)動(dòng)(以常見的Realtek RTL8821CU為例):
錯(cuò)誤3:invalid driver
或無(wú)明顯錯(cuò)誤
sudo modprobe -r 你的驅(qū)動(dòng)模塊 # 卸載(如rtl8188gu) sudo modprobe 你的驅(qū)動(dòng)模塊 # 重新加載
- 嘗試重啟驅(qū)動(dòng)服務(wù):
(四)其他可能原因及解決
- 無(wú)線網(wǎng)卡硬件開關(guān)未開啟:部分USB網(wǎng)卡有物理開關(guān)或需通過(guò)軟件啟用,嘗試重新插拔或短按開關(guān)。
- 內(nèi)核版本不兼容:老舊內(nèi)核可能不支持新型網(wǎng)卡,升級(jí)內(nèi)核:
sudo apt update && sudo apt upgrade -y sudo reboot
- 虛擬機(jī)網(wǎng)絡(luò)模式?jīng)_突:若虛擬機(jī)使用“NAT模式”或“僅主機(jī)模式”,可能屏蔽無(wú)線接口,切換為“橋接模式”并選擇主機(jī)無(wú)線網(wǎng)卡作為橋接對(duì)象。
四、關(guān)鍵問題:缺少“型號(hào)匹配”的驅(qū)動(dòng)
Realtek的USB設(shè)備可能是無(wú)線網(wǎng)卡、有線網(wǎng)卡、讀卡器等,系統(tǒng)僅知道“這是Realtek的USB設(shè)備”,但不知道“如何將其作為無(wú)線網(wǎng)卡驅(qū)動(dòng)”。要解決問題,必須先確定該無(wú)線網(wǎng)卡的具體型號(hào)(通過(guò)設(shè)備ID反查)。
解決步驟:
1. 獲取無(wú)線網(wǎng)卡的詳細(xì)設(shè)備ID
執(zhí)行 lsusb
命令,找到Realtek設(shè)備的完整信息(重點(diǎn)是 ID xxxx:xxxx
部分):
lsusb | grep -i realtek
示例輸出:
Bus 001 Device 005: ID 0bda:b711 Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter
這里的 0bda:b711
是設(shè)備ID(前4位是廠商ID,后4位是產(chǎn)品ID),RTL8188GU
是具體型號(hào)。
2. 根據(jù)設(shè)備ID/型號(hào)查找對(duì)應(yīng)驅(qū)動(dòng)
通過(guò)設(shè)備ID可以精準(zhǔn)定位驅(qū)動(dòng)(常見Realtek無(wú)線網(wǎng)卡的設(shè)備ID與驅(qū)動(dòng)對(duì)應(yīng)表):
設(shè)備ID | 對(duì)應(yīng)型號(hào) | 推薦驅(qū)動(dòng) |
---|---|---|
0bda:b711 | RTL8188GU | rtl8188gu-dkms(源碼編譯) |
0bda:8812 | RTL8812AU | rtl812au-dkms(PPA源) |
0bda:1a2b | RTL8821CU | rtl8821cu-dkms(GitHub源碼) |
0bda:b812 | RTL88x2bu | rtl88x2bu-dkms(PPA源) |
若設(shè)備ID不在表中,可通過(guò)以下方式查詢:
- 訪問 Linux USB ID數(shù)據(jù)庫(kù),輸入設(shè)備ID(如
0bda:b711
),獲取型號(hào)。 - 搜索 “Linux 設(shè)備ID 驅(qū)動(dòng)”(如“Linux 0bda:b711 驅(qū)動(dòng)”)。
3. 安裝對(duì)應(yīng)驅(qū)動(dòng)(以常見型號(hào)為例)
假設(shè)通過(guò)設(shè)備ID查到型號(hào)為 RTL8188GU,安裝步驟如下:
# 1. 安裝依賴工具 sudo apt update && sudo apt install -y build-essential dkms git linux-headers-$(uname -r) # 2. 克隆適配RTL8188GU的驅(qū)動(dòng)源碼 git clone https://github.com/aircrack-ng/rtl8188gu.git cd rtl8188gu # 3. 編譯并安裝驅(qū)動(dòng)(通過(guò)dkms自動(dòng)適配內(nèi)核) sudo ./dkms-install.sh # 4. 手動(dòng)加載驅(qū)動(dòng) sudo modprobe 8188gu
4. 驗(yàn)證驅(qū)動(dòng)是否生效
# 檢查驅(qū)動(dòng)是否加載 lsmod | grep 8188gu # 若有輸出,說(shuō)明驅(qū)動(dòng)已加載 # 檢查無(wú)線接口是否出現(xiàn) iwconfig # 若顯示wlan0等無(wú)線接口,說(shuō)明成功
若仍未解決:
- 若
lsmod
無(wú)輸出,可能是驅(qū)動(dòng)與內(nèi)核版本不兼容,嘗試更新內(nèi)核:
sudo apt upgrade -y && sudo reboot
- 若驅(qū)動(dòng)加載但無(wú)無(wú)線接口,檢查固件是否缺失(通過(guò)
dmesg | grep -i firmware
查看),缺失則手動(dòng)下載對(duì)應(yīng)固件到/lib/firmware/rtlwifi/
目錄。
五、特定設(shè)備(Edimax Technology Co., Ltd,USB ID 為 7392:a812)解決方案
該設(shè)備實(shí)際使用的是 Realtek RTL8812AU 芯片組,以下是針對(duì) Ubuntu 的安裝步驟:
步驟 1:安裝依賴工具
sudo apt update && sudo apt install -y \ build-essential \ dkms \ git \ linux-headers-$(uname -r) # 安裝當(dāng)前內(nèi)核的頭文件(編譯驅(qū)動(dòng)必需)
步驟 2:安裝 RTL8812AU 驅(qū)動(dòng)(推薦 PPA 源,簡(jiǎn)單穩(wěn)定)
# 添加支持 RTL8812AU 的 PPA 源(適用于 Ubuntu 20.04 及以上) sudo add-apt-repository ppa:kelebek333/kablosuz sudo apt update # 安裝驅(qū)動(dòng)(dkms 模式會(huì)自動(dòng)適配內(nèi)核更新) sudo apt install -y rtl8812au-dkms
步驟 3:手動(dòng)加載驅(qū)動(dòng)(或重啟系統(tǒng))
# 卸載可能存在的舊驅(qū)動(dòng)(若有) sudo modprobe -r 8812au 2>/dev/null # 加載新驅(qū)動(dòng) sudo modprobe 8812au
步驟 4:驗(yàn)證驅(qū)動(dòng)是否生效
檢查驅(qū)動(dòng)是否加載:
lsmod | grep 8812au # 若輸出類似 "8812au 1327104 0",說(shuō)明驅(qū)動(dòng)已加載
檢查無(wú)線接口是否出現(xiàn):
iwconfig # 應(yīng)顯示類似 "wlan0" 的無(wú)線接口(而非僅 "ens33" 和 "lo")
嘗試掃描附近 WiFi:
sudo iw dev wlan0 scan | grep SSID # 若能列出 WiFi 名稱,說(shuō)明驅(qū)動(dòng)工作正常
若 PPA 源安裝失?。ㄈ绨姹静患嫒荩?,可嘗試源碼編譯
# 克隆 RTL8812AU 驅(qū)動(dòng)源碼(適配性較好的分支) git clone https://github.com/aircrack-ng/rtl8812au.git cd rtl8812au # 編譯并通過(guò) dkms 安裝 sudo make dkms_install # 加載驅(qū)動(dòng) sudo modprobe 8812au
六、注意事項(xiàng)
- 虛擬機(jī) USB 連接:確保在虛擬機(jī)軟件(如 VirtualBox/VMware)中,該 Edimax 網(wǎng)卡已被正確“連接”到虛擬機(jī)。
- 內(nèi)核更新后:若后續(xù)更新了 Ubuntu 內(nèi)核,dkms 會(huì)自動(dòng)重新編譯驅(qū)動(dòng),無(wú)需重復(fù)安裝。
- 權(quán)限問題:若提示“無(wú)權(quán)限操作無(wú)線接口”,將用戶加入
netdev
組:
sudo usermod -aG netdev $USER newgrp netdev # 立即生效
通過(guò)以上步驟,RTL8812AU 芯片的 Edimax 無(wú)線網(wǎng)卡應(yīng)能被 Ubuntu 識(shí)別并正常工作。若仍有問題,可通過(guò) dmesg | grep -i 8812
查看驅(qū)動(dòng)加載日志,定位具體錯(cuò)誤。
以上就是Ubuntu系統(tǒng)下USB無(wú)線網(wǎng)卡無(wú)法識(shí)別的解決方案的詳細(xì)內(nèi)容,更多關(guān)于Ubuntu USB網(wǎng)卡無(wú)法識(shí)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Apache虛擬目錄配置及vue-cli反向代理的設(shè)置方法
本篇文章主要介紹了Apache虛擬目錄配置及vue-cli反向代理的設(shè)置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09centos6.5升級(jí)安裝配置supervisor的教程
Supervisor 是用Python開發(fā)的一個(gè)client/server服務(wù),是Linux/Unix系統(tǒng)下的一個(gè)進(jìn)程管理工具,不支持Windows系統(tǒng)。這篇文章主要介紹了centos6.5升級(jí)安裝配置supervisor的方法,需要的朋友可以參考下2019-11-11Linux CentOS6.6系統(tǒng)中安裝mysql源碼包的方法
Linux系統(tǒng)中如何安裝mysql的源碼包呢?這里以CentOS6.6系統(tǒng)中安裝MySQL的源碼包,進(jìn)行講解。本文分步驟給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2016-10-10