linux靜態新增模組

2021-07-09 09:32:33 字數 1866 閱讀 4992

靜態模組編譯:

本文為實現在核心的./kernel/drivers/char新增 hello模組

wiwa@tech:~/sourcecodes/kernel/drivers/char$ mkdir hello
在hello資料夾下,建立以下檔案:hello.c、kconfig、makefile

hello.c檔案:「摘自linux kernel development」

/*

* hello.c - the hello, world! kernel module

*/

#include #include #include /*

* hello-init - the init function, called when the module is loaded.

* return zero if successfully loaded, nonzero otherwise.

*/

static int hello_init(void)

/** hello_exit - the exit function, called when the module is removed.

*/

static void hello_exit (void)

module_init(hello_init);

module_exit(hello_exit);

module_license("gpl");

module_author("shakespeare");

module_description("a hello, world module");

kconfig檔案:

#

# hello configuration

#config hello

tristate 'create a hello module'

help

we want to create the files only for testing

makefile 檔案

#makefile for hello device drivers.

obj-$(config_hello) += hello.o

修改./kernel/drivers/char/kconfig檔案,新增以下**:

source "drivers/char/hello/kconfig"
修改./kernel/drivers/char/makefile檔案,新增以下**:

obj-$(config_hello)         += hello/
檢視配置效果

在device drivers下找到character device的」create a hello module「,選勾,儲存檔案。

檢視配置輸出,找到了剛才配置的config_hello引數了

wiwa@tech:~/sourcecodes/kernel$ cat .config | grep hello

config_hello=y

編譯核心映象,放在相應啟動位置/boot資料夾下,從dmesg找到「hello」被編譯進核心啟動時的printk資訊。

新增Linux模組

有了系統呼叫的經驗,新增模組還是很順利的。實驗環境 fedora,核心2.6.21.6 實驗步驟 1.cd root homework module 2.vi process.c 3.加入如下 4.vi makefile 5.加入如下 obj m process.o all make c lib m...

linux 新增靜態路由

分類 linux學習 2010 03 19 18 51 70087人閱讀 收藏 舉報 linux 路由器網路 linux下靜態路由修改命令 方法一 新增路由 route add net 192.168.0.0 24 gw 192.168.0.1 route add host 192.168.1.1 ...

linux 新增靜態路由

linux下靜態路由修改命令 方法一 新增路由 route add net 192.168.0.0 24 gw 192.168.0.1 route add host 192.168.1.1 dev 192.168.0.1 刪除路由 route del net 192.168.0.0 24 gw 19...