嵌入式之家

 找回密码
 现在注册

QQ登录

只需一步,快速开始

搜索
热搜: ARM cortex
查看: 3024|回复: 0

Linux内核驱动之HelloWorld

[复制链接]

该用户从未签到

14

主题

31

帖子

188

积分

注册会员

Rank: 2

积分
188
QQ
发表于 2015-8-6 21:57:23 | 显示全部楼层 |阅读模式
/*************************
* 最简单的模块,文件名Hello.c
*************************/
#include <linux/module.h>
//模块的入口函数,在insmod时调用
static int __init my_init(void)
{
printk("hello, kernel\n");
return 0;
}
//模块的出口函数,在rmmod时调用
static void __exit my_exit(void)
{
printk("Farewell\n");
}
module_init(my_init);
module_exit(my_exit);
MODULE_AUTHOR("YYW");
MODULE_LICENSE("GPL");


==========================================================
# 用于外部模块的Makefile

obj-m := Hello.o
KERNEL := /lib/modules/`uname -r`/build    #这个是内核源码树的路径
all:
make -C $(KERNEL) M=`pwd` modules
install:
make -C $(KERNEL) M=`pwd` modules_install
depmod -A
clean:
make -C $(KERNEL) M=`pwd` clean

============================================================
接下来是执行各种命令:
编译:
$ make
安装模块:
# insmod Hello.ko
查看输出效果:
$ dmesg
查看安装了哪些模块:
$ lsmod
卸载模块:
# rmmod Hello
查看卸载时输出的效果:
$ dmesg
清除那些输出的消息:
# dmesg -c

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 现在注册

本版积分规则

QQ|Archiver|手机版|小黑屋|嵌入式之家 ( 京ICP备14038168号-1 )

GMT+8, 2024-5-12 07:25 , Processed in 0.019833 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表