这个makefile文件怎么写?新手求指教(linux实验一)

#include<linux/kernel.h>#include<linux/module.h>#include<linux/timer.h>staticstructti... #include <linux/kernel.h>
#include <linux/module.h>
#include <linux/timer.h>

static struct timer_list my_timer;
static int count;

void my_timer_callback( unsigned long data ) {
printk(KERN_EMERG "my_timer_callback called\n");
if (count++ < 10) mod_timer(&my_timer, jiffies + HZ);
}

int init_module( void ) { //这部分指定模块的加载
int ret;
count = 1;

printk("Timer module installing\n");

// my_timer.function, my_timer.data
setup_timer( &my_timer, my_timer_callback, 0 );

printk("Starting timer to fire in 1 sec\n");
ret = mod_timer( &my_timer, jiffies + HZ);
if (ret) printk("Error in mod_timer\n");

return 0;
}

void cleanup_module( void ) {
int ret;

ret = del_timer( &my_timer );
if (ret) printk("The timer is a zombie\n");

printk("Timer module uninstalling\n");

return;
}

我们课程有一个Linux内核实验。第一部分就是写一个makefile,然后跑上面的代码。现在我这里是勉强装好了linux的相关操作系统,并且装好了基本的linux内核。然而现在不知道怎么写这个makefile?也不知道怎么加载这个模块?现在是一头雾水。
展开
 我来答
寻秦记记
2017-02-24 · TA获得超过1040个赞
知道小有建树答主
回答量:1098
采纳率:100%
帮助的人:451万
展开全部
obj-m =xxx.o
KDIR=xxx

PWD =$(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
@rm -vf *.o *.ko *. *.mod.c *.order *.mod.o *.symvers *~

其中的xxx.o需要你自己填写,比如你这个文件是hello.c,那就写成hello.o,然后KDIR=xxx,这个xxx是linux源码目录,比如/home/xxx/kernel,那就写成KDIR = /home/xxx/kernel,然后在Makefile的目录下执行make就行了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式