这个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?也不知道怎么加载这个模块?现在是一头雾水。 展开
#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?也不知道怎么加载这个模块?现在是一头雾水。 展开
1个回答
展开全部
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就行了
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就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询