linux 模組的編譯和載入

2021-07-26 05:40:01 字數 1075 閱讀 9329

乙個最簡單的linux模組

//標頭檔案

#include

#include

module_license("gpl");

module_author("can");

int test_module_init()

void test_module_exit()

module_init(test_module_init);

module_exit(test_module_exit);

當系統呼叫insmod的時候將執行module_init函式,rmmod 模組解除安裝時呼叫module_exit函式,所有模組都需包含上述標頭檔案,裝置驅動模型的**須指定為gpl協議,否則無法載入到核心中。

makefile:

obj-m := test_module.o  

kdir :=/home/can/tiny4412/linux-3.8

# arm

all:

make -c $(kdir) m=$(pwd) modules arch=arm cross_compile=arm-linux-

clean:

rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul* *oper

編譯的三種情況:

obj-不編入核心

obj -y編入核心

obj-m編譯成模組

執行make編譯後將生成的.ko檔案拷貝到開發板 進入目錄執行 insmod與rmmod 載入與解除安裝該模組

insmod 模組.ko 引數1=值1 引數2=值2 引數3=值3

modprobe 命令是比較高階的載入和刪除模組命令,其可以解決模組之間的依賴性問題

lsmod 命令列出已經載入的模組和資訊。在insmod hello.ko 之前和之後執行該命令可知道hello.ko是否被載入

modinfo 命令用於查詢模組的相關資訊,比如作者 、版權等

在載入hello.ko後檔案系統發生的變化

Andorid linux模組編譯和載入 一)

在達到能直接修改linux核心的程度之前,我們寫的 都需要以模組的方式新增到核心中去執行。本節就介紹最 簡單的模組編寫和載入方法。1 首先建立乙個目錄modules,以存放以後編寫的模組。再在其下建立乙個子目錄hello,最為本節建立模組的位置。2 編寫原始檔hello.c,如下。cpp view ...

nodejs中如何建立和載入模組

在nodejs中,建立乙個模組非常簡單,因為乙個檔案就是乙個模組,我們要關注的就是如何在其他檔案中獲取到這個模組。在node.js中提供了exports和require兩個物件,其中exports是模組公開的介面,require用於從外部獲取乙個模組的介面。下面就是乙個具體的使用例子 首先定義了乙個...

nginx php動態編譯載入模組

nginx動態編譯載入模組步驟 檢視目前nginx版本及編譯模組 nginx version nginx 1.12.0 built by gcc 4.8.5 20150623 red hat 4.8.5 11 gcc built with openssl 1.0.2k 26 jan 2017 tls...