您的位置:首页 > 运维架构 > Linux

1.最简单的linux驱动

2013-10-29 10:36 387 查看
学linux也有段时间了,一直没什么条理。也不知道学了些什么做了些什么。现在一步步梳理一下linux驱动的学习过程。就从最简单的去看开始。

首先我们写一个最简单的模块。编辑hello_module.c

#include<linux/module.h>

#include<linux/sched.h>

#include<linux/kernel.h>

MODULE_LICENSE("GPL");

int text_init(void)

{

printk("<0>""hello world");

return 0;

}

void text_cleanup(void)

{

printk("<0>goodbye world");

}

module_init(text_init);

module_exit(text_cleanup);

编写Makefile

ifneq ($(KERNELRELEASE),)

obj-m := hello_module.o

else

#KERNELDIR := /home/sinew/桌面/linux-2.6.30.4-ces2440

KERNELDIR := /usr/src/linux-headers-3.8.0-19-generic/

PWD:=$(shell pwd)

all:

make -C $(KERNELDIR) M=$(PWD) modules

clean:

rm -rf *.ko *.o *.mod.c *.mod.o *.symvers

endif
其中KERNELDIR需要设置成你的内核源码路径。

然后使用insmod 命令存入模块:insmod hello_nodule.ko

使用lsmod 就能看到你新插入的模块

使用rmmod移除模块:rmmod hello_module

最简单的驱动就完成了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: