Eu executei o comando errado no Terminal, ele deve ser make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
Ele funciona agora.
é 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á.
Eu executei o comando errado no Terminal, ele deve ser make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
Ele funciona agora.