linux下内核模块的加载与卸载

 1. 第一个模块
=========================
写第一个模块例子
分别在pc和x6818开发板上进行安装并测试;
要注意,linux内核源码的路径中,可以包含中文,但一定不能有空格;

Makefile的例子:
#KERNEL := /usr/src/linux-headers-`uname -r`/
KERNEL := /home/zht/class-e6818/X6818_B/kernel/

obj-m    := mod_test01.o
myko    := $(patsubst %.o, %.ko, $(obj-m))

all:
    make -C $(KERNEL) M=`pwd` modules
    cp $(myko) ../../upload/
clean:
    make -C $(KERNEL) M=`pwd` clean
    rm -f $(myelf)



2. 模块的相关工具
=========================
(1)模块的手工加载
------------------
$>sudo insmod mod_test01.ko
安装模块后,默认调用模块的入口函数;

(2)查看内核信息
-----------------
$>dmesg
显示printk的信息
$>sudo dmesg -c
清除printk的缓冲区

(3)模块的手工卸载
-------------------
$>sudo rmmod mod_test01

(4)显示模块信息
-------------------
$>modinfo mod_test01.ko

(5)列出内核中已经加载的模块
$>lsmod



3. 模块的参数
=========================
用module_param宏来声明模块参数
如果是数组型的参数,则可以使用宏module_param_array()
写支持参数的模块例子

你可能感兴趣的:(linux下内核模块的加载与卸载)