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/
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.