[driver]简单地hello驱动加载
2024-10-04 04:52:01 213人阅读
转自:http://blog.chinaunix.net/uid-24264134-id-98061.html
Linux设备驱动会以内核模块的方式出现,因此,内核模块也成了我们编写驱动的入门知识,这是一个最简单的linux内核模块"Hello World",首先来看一下hello.c中的代码:
#include <linux/init.h> #include <linux/module.h> MODULE_LICENSE ("Dual BSD/GPL"); static int hello_init (void) { printk (KERN_ALERT "Hello, This is my module!\n"); return 0; } static void hello_exit (void) { printk (KERN_ALERT "Bye, This is my module!\n"); } module_init(hello_init); module_exit(hello_exit);
这个模块只包含内核模块加载函数,卸载函数和对Dual BSD/GPL许可权限的声明及一些描述信息。 Makefile文件如下:
ifneq ($(KERNELRELEASE),) obj-m := hello.o else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules endif clean: $(MAKE) -C $(KERNELDIR) M=$(PWD) clean -rm -I *.o
编译模块:在模块目录下输入make命令即可,编译后会生成hello.ko文件 插入模块:sudo insmod hello.ko 可以输入:dmesg查看日志信息,发现末尾多了一行Hello, This is my module! 这是我们在模块中写入的信息 删除模块:sudo rmmod hello 再看日志发现有多了一行:
Bye, This is my module! OK,第一个模块完成,向驱动迈出了第一步。
[driver]简单地hello驱动加载
写入 efi build 删除 int
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
×
https://www.u72.net/daima/nbxmr.html