linux学习第一天 hello world

#include<linux/init.h>//包含有可装载模块需要的大量符号核函数的定义

#include<linux/module.h>//知道你个初始化和清除函数

MODUEL_LICENSE("Dual BSD/GPL);//指定代码所用的许可证

MODULE_AUTHOR("HELLOWORLD);//模块作者

MODULE_DESCRIPTION("hello world);//模块描述

MOUDLE_VERSION("v1.0);//模块版本

static int __init hello_init(void)//表示我们是在初始的时候用,因此用__init

{

printk("<0>" "hello world!\n");

return 0;

}

static void __exit hello_exit(void)

{

printk(KERN_ALERT "goodbye world!\n");

}

module_init(hello_init);

module_init(hello_exit);


Makefile的写法

obj-m:=hello.o

PWD:=$(shell pwd)

KERN_DIR:=/lib/module/$(shell uname -r)/build

all:

make -C $KERN_DIR SUBDIRS=$PWD modules

#       make -C $KERN_DIR M=`pwd` modules

clean:

-rm -fr *.o *.ko *.mod.o

进去之后如果消息没有显示在终端,那么我们用 tail -2 /var/log/message 查看后两行

添加模块  insmod hello.ko 

删除模块 rmmod hello  这里不用加.ko了

查看自己的模块   lsmod | grep hello.ko

makefile中的几个地方的解释,第一个是KERN_DIR:=/lib/module/$(shell uname -r)/build 这个表示我们找到我们的kernel 编译的makefile 

uname -r 是查看内核的版本 ,SUBDIRS 是makefile中带的参数,也可以用M替换,表示我们执行完makefile之后要调到这个参数指定的地方,modules指的是上面我们的obj-m这个模块,表示我们要生成的模块的依赖是hello.o  make -C表示进入某个目录里面去执行这个makefile


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值