Linux下hello.ko内核模块制作怎么样
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍Linux下hello.ko内核模块制作怎么样,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、方法一在内核目录以外编译ko文件1、编写hello模块代码#in
千家信息网最后更新 2026年11月03日Linux下hello.ko内核模块制作怎么样
这篇文章给大家介绍Linux下hello.ko内核模块制作怎么样,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一、方法一
在内核目录以外编译ko文件
1、编写hello模块代码
#include#include #include MODULE_LICENSE("GPL");MODULE_AUTHOR("kent");static int __init hello_init(){ printk(KERN_ALERT "hello, world - this is the kernel speaking!\n"); return 0;}static void __exit hello_exit(){ printk(KERN_ALERT "short is the life of a kernel module!\n");}module_init(hello_init);module_exit(hello_exit);
2、编写hello模块的Makefile文件
ifneq ($(KERNELRELEASE),)obj-m:=hello.oelse KERNELDIR?=/opt/arm/linux-2.6.30.4/PWD := $(shell pwd)modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_installclean: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions.PHONY: modules modules_install cleanendif
3、编译
make
在该目录下会生成hello.ko文件
二、方法二
在内存目录drivers/char编译
1、编写hello模块代码
#include#include #include MODULE_LICENSE("GPL");MODULE_AUTHOR("kent"); static int __init hello_init(){ printk(KERN_ALERT "hello, world - this is the kernel speaking!\n"); return 0;} static void __exit hello_exit(){ printk(KERN_ALERT "short is the life of a kernel module!\n");} module_init(hello_init);module_exit(hello_exit);
2、在内核源码中添加对hello驱动的支持
menu "Character devices"config HELLO tristate "hello driver" depends on ARCH_S3C2440 help this is my first driver.
3、修改同目录下的Makefile文件
FONTMAPFILE = cp437.uniobj-y += mem.o random.o tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o tty_buffer.o tty_port.oobj-$(CONFIG_HELLO) += hello.oobj-$(CONFIG_LEGACY_PTYS) += pty.oobj-$(CONFIG_UNIX98_PTYS) += pty.o
4、配置内核
Device Drivers ---> Character devices --->hello driver
5、编译
make SUBDIR=drivers/char/ modules
在内核目录下面的drivers/char/会生成hello.ko文件
三、方法三
在内存目录drivers/char下另建一个目录
1、创建目录
mkdir hellos
2、编写hello模块代码
#include#include #include MODULE_LICENSE("GPL");MODULE_AUTHOR("kent"); static int __init hello_init(){ printk(KERN_ALERT "hello, world - this is the kernel speaking!\n"); return 0;} static void __exit hello_exit(){ printk(KERN_ALERT "short is the life of a kernel module!\n");} module_init(hello_init);module_exit(hello_exit);
3、在hellos目录创建Makefile文件
vi Makefile
# Makefile for the hellos driver#obj-$(CONFIG_HELLOS) += hellos.o
4、修改drivers/char目录的Kconfig
menu "Character devices"config HELLO tristate "hello driver" depends on ARCH_S3C2440 help this is my first driver.config HELLOS tristate "hellos driver" depends on ARCH_S3C2440 help this is my second driver.
5、修改drivers/char目录的Makefile
obj-y += mem.o random.o tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o tty_buffer.o tty_port.oobj-$(CONFIG_HELLO) += hello.oobj-$(CONFIG_HELLOS) += hellos/ #这个是刚刚创建的hellos目录
6、配置内核
Device Drivers ---> Character devices --->hellos driver
7、编译
make SUBDIR=drivers/char/ modules
在内核目录下面的drivers/char/hellos/会生成hellos.ko文件
注意:内核一定要先make,要不然会报错。
关于Linux下hello.ko内核模块制作怎么样就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
目录
内核
文件
模块
编译
代码
方法
生成
制作
内容
存目
更多
面的
帮助
配置
不错
兴趣
小伙
小伙伴
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云之行互联网科技
互联网科技公司官网
互联网科技论文
上海致骋互联网科技
有木互联网科技
中正互联网科技招聘
宁波青枫互联网科技有限公司
随着互联网科技发展
南山科技园互联网公司有哪些
厦门比较好的科技互联网公司
河南住房之家互联网科技
科技互联网海报
本届互联网大会上的黑科技
宁波跨境商互联网科技有限公司
国产互联网科技公司
互联网金融运营模式中的金融科技
悟空问答互联网科技
深圳互联网科技园地址
科技互联网专业务虚会材料
互联网的黑科技实验室
云南咖啡
互联网科技海报
广东猪兼强互联网科技有限公司
湖南永感互联网科技有限公司
互联网科技公司怎么样
互联网科技的英文
天速互联网络科技有限公司
中国科技创新与世界互联网大会
有人说阿里系是互联网科技企业
互联网科技平台产品运营