Вопрос

For my thesis I am creating a Manet using the protocol ARAN. To install the protocol I'm using this manual, but the first step, the creation of trace_route, I received errors such as:

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

-linux/procs_Fs: No such file or directory

-linux/skbuff: No such file or directory

I searched the web and found out that the problem is in the headers, but I do not find the solution ...

P.S. I am using Ubuntu 10.04 LTS Kernel 2.6.33 recompiled

Это было полезно?

Решение

You're missing the Linux kernel headers which allow you to compile code against the Linux kernel.

To install just the headers in Ubuntu:

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

To install the entire Linux kernel source in Ubuntu:

$ sudo apt-get install linux-source

Note that you should use the kernel headers that match the kernel you are running.

Другие советы

**/*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);

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

now make file for ubuntu

/*at first type on ur terminal that $(uname -r) then u will get the version.. that is using on ur system */

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

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

To run the code

$sudo insmode basic.ko
$dmesg
u will get the output
$sudo rmmod basic.ko
$dmesg
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top