[樹莓派核心學習]核心模組開發
阿新 • • 發佈:2019-01-26
本文章是通過學習:國嵌核心驅動進階班-1-4(Linux核心模組開發).avi視訊寫下的。
環境準備:
交叉編譯作業系統: linux_x86虛擬機器
核心模組交叉編譯環境:已經成功的編譯的kernel核心原始碼。(確定已經成功的載入到樹莓派中)
首先建立兩個檔案:(檔案內容完全參照視訊)
hello.c
Makefile
執行make
最後將生成的hello.ko複製到樹莓派中。
執行載入核心模組:
通過dmesg檢視核心輸出
解除安裝核心模組:
檢視現有核心模組:
載入modprobe:
參考內容:
環境準備:
交叉編譯作業系統: 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
參考內容: