Linux 內核是 Linux 操作系統的核心組件。 Linux 內核採用模塊化設計,允許在功能方面進行擴展。 模塊是可以由內核加載和卸載而無需重新啟動計算機的小段代碼。 內核模塊可以手動或自動加載/刪除。
當連接/移除新設備(例如 USB 或 PCI)時,內核會發送 uevents。 uevents 包含有關設備的信息,例如供應商和型號詳細信息。 Udev(設備管理器)正在監聽這個 uevents 並將它們傳遞給 modprobe。 探頭 通過在模塊目錄/lib/modules/下搜索智能識別請求的驅動程序uname -r
並將模塊文件加載到內核中。 成功加載模塊後,它會出現在 lsmod 命令的列表中。 此外,modprobe 用於從內核手動添加或刪除可加載模塊。
Modprobe 作為 kmod 包的一部分分發。 在本教程中,我們將學習如何使用 modprobe 命令 在 Linux 內核中添加和刪除模塊。
modprobe 命令語法
讓我們檢查 modprobe 命令的語法:
$ sudo modprobe [options] [Module Name]
modprobe 命令添加內核模塊
內核模塊位於以下子目錄中 /lib/modules/$(uname -r)
. 命令 uname -r
可用於確定當前內核版本。
添加模塊時 modprobe 智能地檢查模塊依賴項,而 insmod 不這樣做。 文件 /lib/modules/$(uname -r)/modules.dep 中列出的依賴項和模塊名稱的引用在 /etc/modules
文件。
要列出內核模塊所在的目錄,請鍵入:
$ ls /lib/modules/$(uname -r)
您可以在目錄中找到所有設備驅動程序 /lib/modules/$(uname -r)/kernel/drivers/
.
通常,內核模塊文件有 .ko
擴展名。 你可以列出所有 .ko
文件由:
$ find /lib/modules/$(uname -r) -type f -name *.ko*
您可以使用 modprobe 命令以及模塊名稱將模塊添加到 Linux 內核。
$ sudo modprobe img_i2s_in
添加後,您可以通過列出當前加載的內核模塊的 lsmod 命令進行確認。
$ sudo lsmod | grep img_i2s_in
輸出:
img_i2s_in 16384 0
modprobe 命令刪除內核模塊
要刪除模塊,請使用帶有 -r 選項和模塊名稱的 modprobe 命令。
為了 example, 刪除名為的模塊 img_i2s_in
, 類型:
$ sudo modprobe -r img_i2s_in
modprobe 選項
modprobe 命令有幾個選項,根據它們的用例分為三類。
管理選項
使用 modprobe 命令添加或刪除模塊時,管理參數啟用多個模塊處理方案。
選項 | 描述 |
-一個 -全部 | 一次刪除或添加多個模塊 |
– 消除 -r | 移除模塊,同樣適用於–remove-dependencies |
–刪除依賴項 | 移除依賴模塊 |
–解析別名 -R | 識別並打印與別名匹配的名稱 |
– 第一次 | 添加或刪除模塊的打印錯誤 |
–忽略安裝 –忽略-刪除 -一世 | 插入或移除模塊時忽略模塊中寫入的安裝或移除命令 |
–使用黑名單 -b | 黑名單解析別名 |
– 力量 -F | 當顯示版本錯誤時,強制添加或移除模塊。 這適用於 –force-modversion 和 –force-vermagic。 |
–force-modversion | 添加或刪除模塊時忽略模塊版本。 |
–force-vermagic | 在添加或刪除模塊時忽略模塊版本魔法。 |
modprobe 命令的管理選項
查詢選項
modprobe 命令的查詢選項提供有關配置和依賴項的信息。
選項 | 描述 |
–show-depends -D | 如果有任何具有依賴文件的模塊,它會顯示該模塊 |
–showconfig –show-config -C | 顯示當前配置並退出 |
–show-modversions –dump-modversions | 顯示模塊版本依賴 |
modprobe 命令的查詢選項
常規選項
modprobe 命令中的常規選項配置輸出選項、模塊位置和版本。
選項 | 描述 |
–試運行 – 展示 -n | 打印輸出但不要添加或刪除任何內容。 |
–配置=[Filename] -C | 使用以下內容覆蓋默認配置依賴項,即 /etc/modprobe.d [Filename] |
–目錄名=[Directory] -d | 對於 /lib/modules 使用 [Directory] 作為文件系統根 |
–set-version=[version] -S | 而不是指定的內核 uname , 使用 [version] 核心 |
–系統日誌 -s | 通過 Syslog 顯示錯誤消息 |
– 安靜的 -q | 不顯示錯誤信息 |
–詳細 -v | 允許顯示更多消息 |
– 版本 -V | 顯示版本 modprobe |
– 幫助 -H | 顯示幫助消息和命令 |
modprobe 命令的一般選項
結論
在本教程中,我們學習了 modprobe 命令來在 Linux 內核中添加或刪除模塊。
感謝您的閱讀,請提供您的反饋和建議。