Caminho de construção inválido para criação de driver

1

Eu queria criar um simples driver Hello world como aqui: Page2 e compilá-lo com Makefile:

obj-m := hello.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Mas eu tenho:

make1: *** /lib/modules/4.3.5-300.fc23.x86_64/build: No such file or directory.

O que é lógico, já que build é um link para /usr/src/kernels/4.3.5-300.fc23.x86_64 e meu diretório /usr/src está vazio. Mas o kernel-devel está instalado: rpm -qa|grep kernel :

kernel-headers-4.3.5-300.fc23.x86_64
kernel-modules-4.3.5-300.fc23.x86_64
kernel-core-4.2.3-300.fc23.x86_64
kernel-devel-4.3.5-300.fc23.x86_64
kernel-4.2.3-300.fc23.x86_64
kernel-modules-extra-4.3.5-300.fc23.x86_64
kernel-modules-extra-4.2.3-300.fc23.x86_64
kernel-core-4.3.5-300.fc23.x86_64
libreport-plugin-kerneloops-2.6.4-1.fc23.x86_64
abrt-addon-kerneloops-2.8.0-2.fc23.x86_64
kernel-4.3.5-300.fc23.x86_64
kernel-modules-4.2.3-300.fc23.x86_64

E eu li que esses pacotes podem ter sido armazenados em /usr/include e quando eu tento instalá-los, é claro que eles continuam dizendo que eles já estão instalados.

Pergunta: O que devo fazer, makefile ou instalação, para compilar corretamente o meu hello.c para o hello.ko?

Eu tenho o Fedora 23.

    
por Asakura 10.05.2016 / 21:32

1 resposta

0

Ok, então, para mim, trabalhei na atualização / instalação do kernel e em todos os módulos do kernel-X. Depois disso, um diretório do kernel (versão propriate) apareceu em /usr/src/kernels/

    
por 12.05.2016 / 23:23