Linux驱动开发word_cout案例的一些问题
代码
word_count.c
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/miscdevice.h>
#include <asm/uaccess.h>
static int word_count_init(void)
{
printk("word count init success\n");
return 0;
}
static void word_count_exit(void)
{
printk("word count exit success\n");
}
//注册
module_init(word_count_init);
//取消注册
module_exit(word_count_exit);
MODULE_LICENSE("G#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/miscdevice.h>
#include <asm/uaccess.h>
static int word_count_init(void)
{
printk("word count init success\n");
return 0;
}
static void word_count_exit(void)
{
printk("word count exit success\n");
}
//注册
module_init(word_count_init);
//取消注册
module_exit(word_count_exit);
MODULE_LICENSE("GPL");
//指定作者信息
MODULE_AUTHOR("TrillGates");
//模块描述
MODULE_DESCRIPTION("word counter.");
L");
//指定作者信息
MODULE_AUTHOR("TrillGates");
//模块描述
MODULE_DESCRIPTION("word counter.");
Makefile文件
obj-m := word_count.o
编译
sudo make -C /usr/src/linux-headers-5.11.0-37-generic M=/home/hdc/Desktop/drivers
安装:
insmod word_count.ko
报错:
Error: could not insert module hello_world.ko: Invalid module format
解决方式:
uname -r
显示内核版本
我的是linux-headers-5.11.0-38-generic
修改Makefile文件
obj-m := word_count.o
KERNELDIR := /usr/src/linux-headers-5.11.0-38-generic
PWD := $(shell pwd)
all:
make -C $(KERNELDIR) M=$(PWD) modules
clean:
make -C $(KERNELDIR) M=$(PWD) clean
编译:
make all
就可以编译出来了。
再次安装即可安装上。