Linux 中的硬體偵測如何運作?

Linux 中的硬體偵測如何運作?

每當我必須解決 Linux 中的「wifi 無法運作」、「視訊不工作」等問題時,我真的不明白如何正確地做到這一點。我的方法很混亂:嘗試lspci,研究dmesg,研究一些日誌,谷歌,希望你能找到解決方案。我真正想要的是了解正在發生的事情,並能夠追蹤整個路徑並找出到底什麼時候出了問題。

假設wifi壞了。

我跑去lspci看看我的電腦裡有什麼樣的網路卡。通常我可以在lspci的輸出中看到與 wifi 相關的內容。這個“東西”包括我的卡的名稱和型號。但它是如何運作的呢?此命令是否僅列出先前被其他東西成功發現的設備(可能是 udev?)它在哪裡獲取設備的名稱/描述?它是否儲存在硬體內部的某個位置?如果前面的步驟出現問題,是否有lspci可能不會回報我的硬體?

現在我需要了解我的硬體是否存在適當的核心模組。我所做的就是進入內核原始碼,運行make menuconfig並蒐索我的硬體名稱。這是否意味著核心必須知道地球上所有的網卡型號?這看起來很奇怪,因為這樣的模型太多了。我想所有的網卡都應該有類似的接口,它們之間有什麼不同,使得不同類型的網卡需要有不同的模組?

有沒有更好的方法來找到適合我的卡片的核心模型?如果我找到的模組編譯並安裝後卡仍然無法工作,我該怎麼辦?我如何確保模組正確(這意味著問題發生在稍後的階段)?

現在我跑ifconfigiwconfig。這些命令顯示網路介面。如果我在結果中看到 wifi 接口,是否意味著內核成功檢測到硬體並創建了介面這樣其他程式現在就可以使用它了?這是否意味著現在的問題更高級(例如密碼錯誤或類似的問題)?

目錄的內容可以/dev/幫助我以某種方式了解出了什麼問題(或確保某些事情肯定是正確的)嗎?

抱歉,如果這個問題看起來很混亂,它反映了我腦中的混亂。請幫我擺脫這個爛攤子。

相關內容