[树莓派内核学习]内核模块开发

来源:互联网 发布:侠客行 知乎 编辑:程序博客网 时间:2024/06/05 22:07
本文章是通过学习:国嵌内核驱动进阶班-1-4(Linux内核模块开发).avi视频写下的。

环境准备:
交叉编译操作系统: linux_x86虚拟机
内核模块交叉编译环境:已经成功的编译的kernel内核源代码。(确定已经成功的加载到树莓派中)
首先创建两个文件:(文件内容完全参照视频)

hello.c
#include <linux/init.h>#include <linux/module.h>#include <linux/moduleparam.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){    printk(KERN_ALERT"Hello, world\n");    return 0;}static void hello_exit(void){    printk(KERN_ALERT"Goodbye, cruel world\n");}module_init(hello_init);module_exit(hello_exit);


Makefile
ifneq ($(KERNELRELEASE),)obj-m := hello.oelseKDIR := /home/debian/raspberrypi/kernel/linux-rpi-3.12.yall:make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=/home/debian/raspberrypi/git/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-clean:rm -f *.ko *.o *.mod.o *.mod.c *.symvers  modul*endif

执行make
最后将生成的hello.ko复制到树莓派中。
执行加载内核模块:
$ sudo insmod hello.ko

通过dmesg查看内核输出
卸载内核模块:
$ sudo rmsmod hello

查看现有内核模块:
$ sudo ismod

加载modprobe:
$ sudo modprobe hello

参考内容:



0 0