运行内核模块
Posted 5念since
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行内核模块相关的知识,希望对你有一定的参考价值。
编译内核
sudo ./run_debian_arm64.sh build_kernel
编译根文件系统
sudo ./run_debian_arm64.sh build_rootfs
编译内核模块
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export BASEINCLUDE=/home/rlk/rlk/runninglinuxkernel_5.0
加载内核模块
kernel_module.c
#include <linux/module.h>
#include <linux/init.h>
static int __init kernel_module_init(void)
printk(KERN_EMERG "Kernel module init.\\n");
return 0;
static void __exit kernel_module_exit(void)
printk("kernel module exit.\\n");
module_init(kernel_module_init);
module_exit(kernel_module_exit);
MODULE_LICENSE("GPL");
Makefile
BASEINCLUDE ?= /home/rlk/rlk/runninglinuxkernel_5.0
kernel_module-obj := kernel_module.o
obj-m := kernel_module.o
all :
$(MAKE) -C $(BASEINCLUDE) M=$(PWD) modules;
clean:
$(MAKE) -C $(BASEINCLUDE) SUBDIRS=$(PWD) clean;
rm -f *.ko;
查看内核模块信息
file kernel_module.ko
kernel_module.ko: ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), BuildID[sha1]=93b3746157c2f64aa7f2f68f1ccd2ec482fc2f03, with debug_info, not stripped
modinfo kernel_module.ko
filename: /mnt/kernel_module.ko
license: GPL
vermagic: 5.0.0+ SMP mod_unload modversions aarch64
name: kernel_module
depends:
- 把生成的内核模块拷贝到共享文件系统
加载内核模块
insmod kernel_module.ko
查看内核打印
dmesg
/sys/module/ 目录下会生成kernel_module文件夹
/proc/modules”节点可以查看当前系统加载的内核模块
卸载内核模块
rmmod kernel_module
以上是关于运行内核模块的主要内容,如果未能解决你的问题,请参考以下文章