Compila o módulo do kernel? (USB ao vivo)

1

é possível compilar um módulo do kernel em um stick USB ao vivo com o Ubuntu 14.04 LTS? Eu já tentei por horas, mas todas as minhas tentativas falharam.

O que eu fiz. Instalou os cabeçalhos do linux. Criado um arquivo de criação contendo:

obj-m = hello.o
KVERSION = $(shell uname -r)
all:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

criou um arquivo c e adicionou

#include <linux/module.h>       /* Needed by all modules */
#include <linux/kernel.h>       /* Needed for KERN_INFO */
#include <linux/init.h>         /* Needed for the macros */
static int __init hello_start(void)
{
printk(KERN_INFO "Loading hello module...\n");
printk(KERN_INFO "Hello world\n");
return 0;
}
static void __exit hello_end(void)
{
printk(KERN_INFO "Goodbye Mr.\n");
}
module_init(hello_start);
module_exit(hello_end);

Quando escrevo "olá", recebo as respostas:

ubuntu@ubuntu:~/Desktop/EmbeddedProgramming$ make hello
cc     hello.c   -o hello
hello.c:1:60: fatal error: linux/module.h: No such file or directory
 #include <linux/module.h>       /* Needed by all modules */

Quando eu verifico uname -r eu volto "3.16.0-30-generic". Quando eu verifico o diretório, posso encontrar o module.h naquele local. Eu não tenho idéia porque diz que não é possível encontrar o arquivo de cabeçalho porque ele está lá.

    
por Eric 26.02.2015 / 20:11

1 resposta

1

Eu executei o comando errado no Terminal, ele deve ser make -C /lib/modules/$(uname -r)/build M=$(pwd) modules Ele funciona agora.

    
por Eric 27.02.2015 / 21:39