ubuntu下编译第一个内核模块

1.首先在终端输入命令 uname -r 得到操作系统的发行版号 我的是3.13.0-32-generic 记住这个,等下要用
2.编写一个内核模块,内容如下,文件名字命名为hello.c
#include<linux/kernel.h>
#include<linux/init.h>
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int __init hello_init(void){
    printk(KERN_ALERT "hello from hello world/n");
    return 0;
}
static void __exit hello_exit(void){
    printk(KERN_ALERT "goodbye from hello world/n");
}
module_init(hello_init);
module_exit(hello_exit);
3.编写Makefile文件,内容如下:
obj-m:=hello.o
注意上面的hello.c和Makefile两个文件要放在同一目录下。
4.进入上面你设置的那个目录,在终端输入指令 make -C /usr/src/linux-headers-3.13.0-32-generic M=`pwd` modules进行编译
5.编译成功后,输入指令sudo insmod ./hello.ko插入模块
没有提示任何东西,表示成功了,但是为什么没有输出"hello from hello world"?,如果你在字符终端而不是终端模拟器下运行的话,就会输出,因为在终端模拟器下时会把内核消息输出到日志文件/var/log/kern.log中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值