Linux PC端驱动程序实例
1新建驱动程序
新建程序文件hello.c
(1)hello.c的路径如下:
helloworld/hello.c
(2)hello.c的内容如下:

1 #include <linux/init.h> 2 #include <linux/module.h> 3 4 static int __init hello_init(void) 5 { 6 printk("%s\n", __FUNCTION__); 7 return 0; 8 } 9 10 static void __exit hello_exit(void) 11 { 12 printk("%s\n", __FUNCTION__); 13 } 14 15 module_init(hello_init); 16 module_exit(hello_exit);
2添加配置文件
新建配置文件Makefile
(1)Makefile的路径如下:
Helloworld/Makefile
(2)Makefile的内容如下:

1 obj-m := hello.o #这个是要中间文件 2 Kernel_path=/usr/src/linux-headers-$(shell uname -r) #内核存在的路径 3 all: 4 make -C $(Kernel_path) M=$(PWD) modules 5 clean: 6 make -C $(Kernel_path) M=$(PWD) clean
3编译
进入helloworld目录,并执行make命令,生成hello.ko模块文件
4加载/卸载模块
4.1加载模块
(1)执行以下命令加载模块
# insmod hello.ko
(2)用dmesg查看信息
# hello_init
4.2卸载模块
(1)执行以下命令卸载模块
# rmmod hello.ko
(2)用dmesg查看信息
# hello_exit
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 「EF Core」框架是如何识别实体类的属性和主键的
· 独立开发,这条路可行吗?
· 我在厂里搞 wine 的日子
· 如何通过向量化技术比较两段文本是否相似?
· 35+程序员的转型之路:经济寒冬中的希望与策略
· 推荐 5 款实用的 Docker 可视化管理工具,工作效率翻倍!
· 瞧瞧别人家的接口重试,那叫一个优雅!
· 【EF Core】框架是如何识别实体类的属性和主键的
· MySQL 13 为什么表数据删掉一半,表文件大小不变?
· 上周热点回顾(7.7-7.13)