linux / module.h没有这样的文件或目录

时间:2013-06-04 13:43:35

标签: linux module linux-kernel ubuntu-10.04 adhoc

对于我的论文,我正在使用ARAN协议创建一个Manet。要安装我正在使用this manual的协议,但第一步是创建trace_route,我收到的错误如下:

-linux/module.h: No such file or directory

-linux/procs_Fs: No such file or directory

-linux/skbuff: No such file or directory

我在网上搜索并发现问题出在标题中,但我找不到解决方案......

P.S。我正在使用 Ubuntu 10.04 LTS 内核2.6.33重新编译

2 个答案:

答案 0 :(得分:9)

您缺少Linux内核头文件,允许您针对Linux内核编译代码。

只安装 Ubuntu 中的标题:

$ sudo apt-get install linux-headers-$(uname -r)

Ubuntu

中安装整个Linux内核源代码
$ sudo apt-get install linux-source

请注意,您应该使用与您正在运行的内核匹配的内核头文件。

答案 1 :(得分:3)

**/*source file name is basic.c */**

#include <linux/init.h>
#include <linux/module.h>
/*MODULE_LICENSE("Dual BSD/GPL");*/
static int hello_init(void)
{
    printk(KERN_ALERT "Hello, world\n");
    return 0;
}
static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);

=====================================

现在为ubuntu

制作文件

/ *在你的终端上的第一个类型$(uname -r)然后你将得到版本.. 在你的系统上使用* /

obj-m +=basic.o

KDIR =//usr/src/linux-headers-3.13.0-44-generic

all:
 $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
 rm -rf *.o *.ko *.mod.* *.symvers *.order

=============================================== =

运行代码

$sudo insmode basic.ko
$dmesg
u will get the output
$sudo rmmod basic.ko
$dmesg