學習 linux 裝置驅動如何工作,並知道如何使用它們。
而這在 linux 作業系統上並非這麼簡單。第乙個原因是, linux 是乙個開源的作業系統,所以有 數百種 linux 發行版的變體。也就是說不可能做乙個指南來適應所有的 linux 發行版。因為每種 linux 安裝驅動程式的過程都有差異。
第二,大多數預設的 linux 驅動程式也都是開源的,並被整合到了系統中,這使得安裝一些並未包含的驅動程式變得非常複雜,即使已經可以檢測大多數的硬體裝置。第三,不同發行版的許可也有差異。例如,fedora 禁止事項 禁止包含專有的、受法律保護,或者是違反美國法律的驅動程式。而 ubuntu 則讓使用者避免使用受法律保護或閉源的硬體裝置。
為了更好的學習 linux 驅動程式是如何工作的,我建議閱讀 《linux 裝置驅動程式》一書中的 裝置驅動程式簡介。
1、 使用者介面
如果是乙個剛從 windows 或 macos 轉過來的 linux 新手,那你會很高興知道 linux 也提供了乙個通過嚮導式的程式來檢視驅動程式是否可用的方法。 ubuntu 提供了乙個 附加驅動程式 選項。其它的 linux 發行版也提供了幫助程式,像 gnome 的包管理器,你可以使用它來檢查驅動程式是否可用。
2、 命令列
如果你通過漂亮的使用者介面沒有找到驅動程式,那又該怎麼辦呢?或許你只能通過沒有任何圖形介面的 shell?甚至你可以使用控制台來展現你的技能。你有兩個選擇:
通過乙個倉庫
這和 macos 中的 homebrew 命令列很像。通過使用yum
、dnf
、apt-get
等等。你基本可以通過新增倉庫,並更新包快取。
在進一步學習安裝 linux 驅動程式之前,讓我們來學習幾條命令,用來檢測驅動程式是否已經在你的系統上可用。
lspci 命令顯示了系統上所有 pci 匯流排和裝置驅動程式的詳細資訊。
$ lscpci
或者使用grep
:
$ lscpci
|grep
some_driver_keyword
例如,你可以使用lspci | grep samsung
命令,如果你想知道是否安裝過三星的驅動。
dmesg 命令顯示了所有核心識別的驅動程式。
$
dmesg
或配合grep
使用:
$
dmesg
|grep
some_driver_keyword
任何識別到的驅動程式都會顯示在結果中。
如果通過dmesg
或者lscpi
命令沒有識別到任何驅動程式,嘗試下這兩個命令,看看驅動程式至少是否載入到硬碟。
$
/sbin
/lsmod
和
$
find
/lib
/modules
技巧:和lspci
或dmesg
一樣,通過在上面的命令後面加上| grep
來過濾結果。
如果乙個驅動程式已經被識別到了,但是通過lscpi
或dmesg
並沒有找到,這意味著驅動程式已經存在於硬碟上,但是並沒有載入到核心中,這種情況,你可以通過modprobe
命令來載入這個模組。
$
sudo
modprobe
module_name
使用sudo
來執行這個命令,因為這個模組要使用 root 許可權來安裝。
可以通過yum
、dnf
和apt-get
幾種不同的方式來新增乙個倉庫;乙個個介紹完它們並不在本文的範圍。簡單一點來說,這個示例將會使用apt-get
,但是這個命令和其它的幾個都是很類似的。
1、刪除存在的倉庫,如果它存在
$
sudo
apt-get
purge name_of_driver
*
其中name_of_driver
是你的驅動程式的可能的名稱。你還可以將模式匹配加到正規表示式中來進一步過濾。
2、將倉庫加入到倉庫表中,這應該在驅動程式指南中有指定
$
sudo
add-
apt-
repository repolist_of_driver
其中repolist_of_driver
應該從驅動文件中有指定(例如:epel-list
)。
3、更新倉庫列表
$
sudo
apt-get
update
4、安裝驅動程式$
sudo
apt-get
install name_of_driver
5、檢查安裝狀態
像上面說的一樣,通過lscpi
命令來檢查驅動程式是否已經安裝成功。
如何在Linux上安裝裝置驅動程式
數百種linux發行版本 這意味著不可能建立乙個適用於所有linux發行版的操作指南。每個linux作業系統以不同的方式處理驅動程式的安裝過程。其次,大多數預設的linux驅動程式都是開源的,並且已整合到系統中,即使可以自動檢測到大多數硬體裝置,安裝所有未包括在內的驅動程式也相當複雜。第三,許可證策...
如何查詢 安裝裝置驅動
工作中的時候總結的一些經驗吧 1 確定需要安裝驅動的硬體型號,可以在 etc sysconfig hwconf中找到,裡面列出了所有硬體的型號和生產商等資訊,其中vendorid指的是硬體的生產商編號,deviceid是指該裝置的編號,一般生產商和裝置編號都是四位的 2 lspci命令可以檢視當前系...
如何在linux上安裝git
工作需要,要裝git,結果找不到源,後來搞定,記錄如下 1.linux el5 x86 64 1.1 我的這個版本上有yum,所以用yum來裝git,但是第一次裝找不到源,最後顯示 nothing to do 1.2 然後上網搜,說是要先裝epel 1.3 如何安裝epel?網上給出很多鏈結,但是可...