赞
踩
一般的linux驱动开发都是基于交叉编译来进行的,本文尝试着从另一个角度:基于ubuntu的本地驱动开发来学习一下驱动的开发
#include <linux/init.h>
#include <linux/module.h>
static int hello_init(void)
{
printk("Hello,world\r\n");
return 0;
}
static void hello_exit(void)
{
printk("hello,world over\r\n");
}
MODULE_LICENSE("GPL");
module_init(hello_init);
module_exit(hello_exit);
KERNELDIR :=/usr/src/linux-headers-4.15.0-29-generic
CURRENT_PATH := $(shell pwd)
obj-m := hello.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
其中KERNELDIR 就是前面查找的内核目录
make
sudo insmod hello.ko
sudo rmmod hello.ko
dmesg
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。