修復:為什麼 Linux 沒有檢測到我的 Wi-Fi 適配器?

已發表: 2022-07-02
筆記本電腦屏幕上的 Linux 終端。
fatmawati achmad zaenuri/Shutterstock.com

曾經在筆記本電腦上安裝 Linux,重啟後發現它看不到你的 Wi-Fi 卡? 它很洩氣。 試試這些提示。 他們中的一個或多個可能只是讓它工作。

Linux 和 Wi-Fi:愛恨交織

從歷史上看,Linux 與 Wi-Fi 卡的關係有些緊張。 近年來,情況發生了很大的變化——而且變得更好了——但是當你意識到你沒有 Wi-Fi 時,仍然可以引導到你的新 Linux 安裝並獲得那種下沉的感覺。

安裝例程非常擅長識別目標計算機的各種組件並將其自身配置為與該硬件一起使用。 但問題仍然可能發生。

對硬件問題進行故障排除很困難,尤其是當您手頭僅有的計算機是損壞的設備時。 顯然,並非此處介紹的所有內容都適用於所有情況。 但希望下面的內容可以解決您的問題或為您指明正確的方向。

安裝之前

做一些研究。 大多數發行版都有支持的硬件列表。 在他們的論壇上詢問其他人是否使用與您打算使用的筆記本電腦相同品牌和型號的筆記本電腦。 他們有什麼問題嗎?如果有,他們是如何解決的?

為了更好地了解您將面臨的情況,請從您打算分發的最新版本的 Live USB 或 Live CD 啟動您的筆記本電腦。 然後,您可以確保它按您期望的那樣工作,而無需相信安裝。

檢查屏幕分辨率和圖形、鼠標墊和手勢以及 Wi-Fi 連接等內容。 如果它們在實時環境中工作,它們應該在您安裝發行版時工作。 如果其中任何一個都不起作用,請嘗試使用其他發行版的 Live CD。 你可能會得到不同的結果。 如果是這樣,你能找出原因嗎? 也許他們使用更新的內核,或者他們將驅動程序與他們的安裝捆綁在一起。

使用我們在本文中向您展示的命令,您可以識別筆記本電腦內的 Wi-Fi 硬件。 有了這些知識,您就可以進行一些網絡搜索。 如果你幸運的話,你的 Wi-Fi 卡將是一張可以正常工作的卡。 如果沒有,您可能需要使用我們在本文中描述的一些技術。

PC 的 BIOS 有什麼作用,我應該什麼時候使用它?
相關PC 的 BIOS 有什麼作用,我應該什麼時候使用它?

查找您需要中斷啟動順序並進入筆記本電腦的 BIOS 的組合鍵。 你可能不需要它,但如果你這樣做了,你會很高興你提前發現了它。 它通常是以下之一:Esc、F2、F5 或 F10。 在許多筆記本電腦上,您需要同時按住“Fn”按鈕。 確保您知道進入筆記本電腦 BIOS 的密鑰是什麼。

計劃好如果 Wi-Fi 沒有立即出現,你會怎麼做。 您可以使用有線連接將筆記本電腦接入互聯網嗎? 如果沒有,您是否可以訪問另一台計算機? 你可以連接到你的手機並用它來訪問互聯網嗎?

尋找簡單的陷阱

直接跳入深淵並開始調查復雜的根本原因很容易,但不要忽視簡單的事情。

一些筆記本電腦具有禁用 Wi-Fi 的物理外部開關(通常是滑塊)。 這些通常經過精心偽裝,旨在融入筆記本電腦的機身。 無論您在操作系統中做什麼,意外地將其中一個滑到“關閉”位置都會阻止 Wi-Fi 工作。

也可以從 BIOS 禁用 Wi-Fi。 重新啟動筆記本電腦並進入 BIOS。 找到網絡或 Wi-Fi 部分,並確保已啟用 Wi-Fi。

讓引導順序繼續。 通過單擊 GNOME 狀態欄的右端(或您桌面環境中網絡設置所在的任何位置)登錄並打開系統菜單。 如果有標題為“Wi-Fi Off”的菜單項,請單擊它。

帶 Wi-Fi 的系統菜單不工作

從展開的菜單選項中,選擇“打開”。

擴展了 Wi-Fi 選項的系統菜單

菜單將關閉。 重新打開它,然後選擇“設置”。

突出顯示“設置”選項的系統菜單

在設置應用程序中,從側邊欄中選擇 Wi-Fi,並確保頂部欄中的滑塊處於“打開”狀態,而飛行模式滑塊處於“關閉”狀態。 然後選擇要連接的 Wi-Fi 網絡。

設置應用程序 Wi-Fi 窗格

如果您沒有看到任何這些選項,則操作系統無法識別您的網卡。

解決問題

現在我們確定我們沒有錯過任何基本修復,讓我們深入了解 Wi-Fi 卡故障排除的細節。

任何類型的網絡都可以運行嗎?

如果您在筆記本電腦上有以太網連接,並且您可以使用有線連接進行連接,那麼您的筆記本電腦上的網絡就可以運行了。 只是 Wi-Fi 無法正常工作。 如果您沒有以太網端口,您可能仍然對以太網適配器抱有希望。

如果您無法通過有線連接獲得連接,則說明計算機的網絡功能有問題。 嘗試讓您的筆記本電腦自行 ping。

 ping 本地主機
平 127.0.0.1 

使筆記本電腦自行ping通

如果這些都不起作用,則您的網絡管理器可能丟失或損壞。 嘗試重新安裝它。 如果它已經安裝,這將安裝它或替換它。

在 Ubuntu 上鍵入:

 sudo apt install 網絡管理器

在 Fedora 上使用:

 sudo dnf 安裝網絡管理器

在 Manjaro 上,命令是:

 sudo pacman -Sy 網絡管理器

重新啟動,看看是否可以改善這種情況。

識別 Wi-Fi 卡硬件

如果您仍然沒有 Wi-Fi,我們需要識別 Wi-Fi 卡硬件。 lspci命令將列出所有 PCI 設備。

 lspci 

列出筆記本電腦中的 PCI 設備

查找描述中帶有“無線”或“wi-fi”的條目。

lspci 命令結果中的 Wi-Fi 卡條目

在這台筆記本電腦上,它是 Realtek RTL8723BE。 我們還可以使用nmcli命令查看此信息,包括網絡接口標識符。

 nmcli 

網絡管理器 CLI 命令

我們的無線接口wlan0顯示為不可用,但它仍然為我們識別硬件。

nmcli 結果中的 Wi-Fi 卡和網絡接口標識符

此條目顯示為“軟件已禁用”,因為我們已關閉 Wi-Fi 卡以模擬故障。 在現實世界的場景中,此處的消息可能會為您提供有關問題是什麼或可能與什麼相關的線索。

嘗試將卡上線

iw命令有時會很有用。 將wlan0替換為您計算機上的相應接口。

 iw dev wlan0 鏈接

顯示 wlan0 接口的 iw 命令未連接

我們被告知接口未連接。 讓我們試著提出來。

 sudo ip link set wlan0 up 

RF-kill 識別為阻止 Wi-Fi 卡運行

我們被告知由於rfkill無法建立網絡連接。 這是一個強制阻止射頻網絡接口運行的實用程序。 我們可以讓它向我們展示它正在阻止什麼。

 rfkill 列表

顯示 Wi-Fi 卡的 rfkill 命令被軟件阻止

我們可以告訴它解鎖任何被阻止的東西。 請注意,如果該卡被列為硬阻塞,則表示筆記本電腦上有一個物理開關需要設置為“開”位置。 讓我們刪除軟件塊。

 rfkill 解鎖 wifi
 rfkill 列表

使用 rkill 解鎖 Wi-Fi 卡

在我們的例子中,這似乎已經解決了這個問題。 如果您的問題仍然存在,則很可能是驅動程序模塊問題。

檢查驅動程序

我們可以使用lspci命令和-k (內核驅動程序)選項來檢查正在使用的驅動程序。

 lspci -k 

列出內核驅動程序和模塊

我們的無線網卡使用“rtl8723be”驅動和內核模塊。

Wi-Fi 卡內核驅動程序和模塊

我們可以通過使用dmesggrep搜索系統日誌來檢查它是否正在加載。 用您計算機的模塊名稱替換“rtl8723be”。

 須藤dmesg | grep rtl8723be 

系統日誌中的 Wi-Fi 卡驅動程序條目

如果您沒有看到驅動程序已加載的積極跡象,請查看您的發行版的網站和在線幫助,並蒐索有關如何從您的發行版下載驅動程序的說明。 發行版通常捆綁了您可能可以使用的常見驅動程序包,並且它們很可能具有特定於發行版的應用程序以使加載新驅動程序變得簡單。

如果您無法從發行版的軟件包管理器或網站上獲取驅動程序,您可以查看支持的無線網卡列表,並在列表中找到您的網卡硬件。

在已知 Linux Wi-Fi 驅動程序列表中與我們的 Realtek Wi-Fi 卡最接近的匹配項

單擊 Wi-Fi 卡的型號(或最接近的匹配)會將您帶到特定於卡的頁面。 此頁面將列出該硬件版本系列中的所有卡。 查看您的卡是否在此處列出。

在我們的例子中,我們點擊了“rtl8723ae”鏈接,它給了我們一個頁面,上面也列出了 rtl8723be。

與我們的卡硬件完全匹配

頁面底部是“固件”標題下的鏈接。

下載頁面的鏈接

這會將您帶到固件的 git 存儲庫頁面。 使用git clone命令和頁面底部列出的位置之一下載存儲庫。 我們用了:

 git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git 

克隆 git 存儲庫

在(大)下載的目錄樹中,您應該找到適合您硬件的驅動程序文件。

下載的存儲庫目錄樹中的驅動程序文件

有關如何最好地加載它,請參閱您的發行版的說明。

使用您的社區

與 Linux 發行版相關的社區是 Linux 的最大優勢之一。 在您選擇的發行版的社區中尋求幫助。 其他人經歷過與您戰鬥的同一件事的可能性很高。