1. 程式人生 > >[樹莓派核心學習]核心模組開發

[樹莓派核心學習]核心模組開發

本文章是通過學習:國嵌核心驅動進階班-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.o

else

KDIR := /home/debian/raspberrypi/kernel/linux-rpi-3.12.y

all:
	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

參考內容: