# 内核开发 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- Debian系统中集成开发内核模块需要的内核头文件,同时提供编译内核模块需要的工具链,用户可以在设备中直接开发和构建新的模块。 # 环境准备 ```plaintext sudo apt update sudo apt install -y make ``` # 编写源码 ## helloworld.c 文件 helloworld.c 文件内容: ```cpp #include #include #include 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 文件内容: ```javascript 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 ``` # 编译构建 构建方法: ```plaintext 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"