LINUX下可載入模組的幾個工具

2021-06-17 18:26:11 字數 1837 閱讀 3949

當我們在make menuconfig把一些原始碼檔案以作為編譯控制項時,表示不編譯核心,而是以模組(.ko)存在.此時,要生成.ko模組檔案,需要借助下面的命令:

bash> cd /usr/src/linux-x.y.z

bash> make modules

上述命令幫助我們生成目標核心的.ko模組檔案.如果需要安裝.ko檔案,則需要借助下面的命令:

bash>make modules_install
當然,上述一般在pc上才如此智慧型,如果是在嵌入式平台,一般需要手動載入.

通常與模組(.ko)相關的工具有:insmod、rmmod、lsmod、modprobe、modinfo和depmod.

1.insmod:

常用的模組載入工具.

2.rmmod:

常用的模組解除安裝工具.

3.lsmod:

羅列當前系統所裝載的模組.

4.modprobe:

modprobe是乙個比insmod更智慧型的版本,它先分析/lib/modules/x.y.z/modules.dep檔案再載入它所依賴的模組.例如要掛載乙個usb筆式驅動器上的vfat(virtual file allocation table,虛擬檔案根本表)分割槽,可以使用modprobe載入vfat檔案系統驅動程式:

bash>modprobe vfat

bash>lsmod

modle size used by

vfat 14208 0

fat 49052 1 vfat

nls_base 9728 2 vfat, fat

lsmod一下,發現modprobe載入的是三個而不是乙個模組.modprobe首先發現它不得不載入/lib/modules/x.y.z/kernel/fs/vfat/vfat.ko,當檢視/lib/modules/x.y.z/modules.dep模組依賴檔案的時候,它發現了如下**並由此意識到自己必須首先載入另外2個模組:

/lib/modules/x.y.z/kernel/fs/vfat.ko

/lib/modules/x.y.z/kernel/fs/fat/fat.ko

/lib/modules/x.y.z/kernel/fs/nls/nls_base.ko

於是它先載入了fat.ko和nls_base.ko這2個模組,之後載入vfat.ko,這樣,所有掛載vfat分割槽時所需要的模組都被自動載入了.

5.modinfo:

提取剛載入的模組的資訊:

bash>modinfo vfat

filename: /lib/modules/x.y.z/kernel/fs/vfat/vfat.ko

license:gpl

description:vfat filesystem support

...depends: fat,nls_base

6.depmod

建立模組依賴關係的列表.常用選項如下:

# depmod -a 注:為所有列在/etc/modprobe.conf 或/etc/modules.conf 中的所有模組建立依賴關係,並且寫入到modules.dep檔案;

# depmod -e 注:列出已掛載但不可用的模組;

# depmod -n 注:列出所有模組的依賴關係,但僅僅是輸出出來 (write the dependency file on stdout only)

linux核心可載入模組的makefile

在開發linux核心驅動時,免不了要接觸到makefile的編寫和修改,儘管網上的makefile模板一大堆,做一些簡單的修改就能用到自己的專案上,但是,對於這些基礎的東西,更應該做到知其然並知其所以然。本篇文章中只討論linux核心模組編譯的makefile,linux核心makefile總覽可以...

Linux下Breakpad的幾個主要工具

對傳進來的函式引數最好在開始進行檢查,尤其是指標等。幾個工具 產生minidump檔案 在程式入口處例項化exceptionhandler 產生symbol檔案 程式執行除錯時須帶除錯資訊 g 呼叫工具 dump syms,產生symbol檔案 minidump檔案和symbol檔案的上傳到伺服器 ...

linux 下開機自動載入驅動模組

呼呼,好久不見 前一段時間開發了乙個linux下的pci資料採集板卡的驅動,在驅動除錯時,一直使用insmod 動態的載入驅動模組 ko檔案 現在驅動基本開發結束,要提交給客戶,使用insmod載入時,對客戶來說不太好,比較麻煩,所以不能採用這種方法。由於 剛開始做驅動,還不知道如何在linux啟動...