I wanted to create a simple Hello world driver as in here: Page2 and compile it with 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
But I got:
make1: *** /lib/modules/4.3.5-300.fc23.x86_64/build: No such file or directory.
Which is logic, since build is a link to /usr/src/kernels/4.3.5-300.fc23.x86_64 and my /usr/src directory is empty. But kernel-devel is installed: 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
And I read that these packages might have been stored in /usr/include and when I try to install them, it of course keep saying that they are already installed.
Question: What should I do, makefile or installation, to properly compile my hello.c to hello.ko ?
I have Fedora 23.