当前位置: 技术问答>linux和unix
makefile文件错误问题
来源: 互联网 发布时间:2016-10-17
本文导语: C程序: #include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, worldn"); return 0; } static void hello_exit(void) { printk(KERN_ALERT "Goodbye, cruel worldn"); } mod...
C程序:
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, worldn");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);
module_exit(hello_exit);
makefile文件:
# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
但是:jdong@jdong-desktop:~$ make
make -C /lib/modules/2.6.31-22-generic/build M=/home/jdong modules
make[1]: 正在进入目录 `/usr/src/linux-headers-2.6.31-22-generic'
scripts/Makefile.build:44: /home/jdong/Makefile: 没有那个文件或目录
make[2]: *** 没有规则可以创建目标“/home/jdong/Makefile”。 停止。
make[1]: *** [_module_/home/jdong] 错误 2
make[1]:正在离开目录 `/usr/src/linux-headers-2.6.31-22-generic'
make: *** [default] 错误 2
请问是什么问题??该怎么解决??
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, worldn");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, cruel worldn");
}
module_init(hello_init);
module_exit(hello_exit);
makefile文件:
# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
但是:jdong@jdong-desktop:~$ make
make -C /lib/modules/2.6.31-22-generic/build M=/home/jdong modules
make[1]: 正在进入目录 `/usr/src/linux-headers-2.6.31-22-generic'
scripts/Makefile.build:44: /home/jdong/Makefile: 没有那个文件或目录
make[2]: *** 没有规则可以创建目标“/home/jdong/Makefile”。 停止。
make[1]: *** [_module_/home/jdong] 错误 2
make[1]:正在离开目录 `/usr/src/linux-headers-2.6.31-22-generic'
make: *** [default] 错误 2
请问是什么问题??该怎么解决??
|
用lsmod命令看看hello是不是已经存在了
或者用dmesg | tail 看看有没有"hello world"
|
root@jdong-desktop:/home/jdong# insmod ./hello.ko
insmod: error inserting './hello.ko': -1 File exists
-----------
你是不是已经insmod一次了?它说模块已经存在了,insmod后要rmmod才能再insmod的。
insmod: error inserting './hello.ko': -1 File exists
-----------
你是不是已经insmod一次了?它说模块已经存在了,insmod后要rmmod才能再insmod的。