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()
写支持参数的模块例子
=========================
写第一个模块例子
分别在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()
写支持参数的模块例子