内核开发¶
Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.
Debian系统中集成开发内核模块需要的内核头文件,同时提供编译内核模块需要的工具链,用户可以在设备中直接开发和构建新的模块。
环境准备¶
sudo apt update
sudo apt install -y make
编写源码¶
helloworld.c 文件¶
helloworld.c 文件内容:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("A simple Hello World kernel module");
MODULE_VERSION("0.1");
static int __init helloworld_init(void) {
printk(KERN_INFO "Hello World!\n");
return 0;
}
static void __exit helloworld_exit(void) {
printk(KERN_INFO "Goodbye!\n");
}
module_init(helloworld_init);
module_exit(helloworld_exit);
Makefile 文件¶
Makefile 文件内容:
obj-m := helloworld.o
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
help:
$(MAKE) -C $(KERNELDIR) M=$(PWD) help
.PHONY: all clean install help
编译构建¶
构建方法:
LD_LIBRARY_PATH=/opt/qcom/lib:$LD_LIBRARY_PATH PATH=/opt/quectel/bin:$PATH make LLVM=1
运行测试¶
加载模块:insmod helloworld.ko
检查结果:lsmod | helloworld
卸载模块:rmmod helloworld
检查运行日志:dmesg | grep “Hello World”