对于我的论文,我正在使用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重新编译
答案 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);
=====================================
/ *在你的终端上的第一个类型$(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