Linux下hello.ko内核模块制作怎么样
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章给大家介绍Linux下hello.ko内核模块制作怎么样,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、方法一在内核目录以外编译ko文件1、编写hello模块代码#in
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
在线教育服务器贵吗
服务器平台授权过期怎么重新授权
和龙软件开发企业
对数据库课程的感悟和意见
网络安全反诈骗方面手抄报
券商科技和互联网
抖音挂加人软件开发
数据库怎么创建
访问服务器出错了4001
艾尔登法环服务器无法连接
数据库和物流的关系
网络安全类型图书
方舟星辉斗罗服务器
危害网络安全的后果种类
磅房服务器
服务器2.5寸硬盘
上海精英网络技术开发常见问题
宜搭数据库结构
怀旧服新服务器如何分配
php 数据库utf8
双串口服务器
全国网络安全教育日学习心得
单词数据库
前列腺癌肿瘤登记数据库
晋中跑腿app软件开发多少钱
网络安全宣传活动彩页
如何查服务器的硬盘号
关于定期更新放射源数据库的通知
沈阳众盟网络技术有限公司
密云区定制软件开发