
Estoy siguiendo el primer ejemplo de Hello World LKM y ahora necesito compilarlo.
Según el libro, el Makefile debe ser así:
obj-m+=hello_world.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
Y luego necesita ejecutar make
(y dice que no debe ejecutar sudo make
o volverá a compilar todos los encabezados del kernel de Linux).
Al ejecutar esto, se obtiene:
make -C /lib/modules/5.10.63+/build/ M= modules
make[1]: Entering directory '/usr/src/rpi-5.10.y'
/bin/sh: 1: cannot create include/generated/uapi/linux/.version.h.tmp: Permission denied
UPD include/generated/uapi/linux/version.h
mv: cannot stat 'include/generated/uapi/linux/.version.h.tmp': No such file or directory
make[1]: *** [Makefile:1277: include/generated/uapi/linux/version.h] Error 1
make[1]: Leaving directory '/usr/src/rpi-5.10.y'
make: *** [Makefile:4: all] Error 2
Y si ejecuto sudo make
o cambio los comandos de Makefile, sudo make -C ...
nunca termina (> 2 h y sigo esperando).
No pude ejecutar sudo apt install linux-headers-'uname -r'
(ignore el ', son ` pero no puedo colocarlo aquí) porque el kernel es el último (5.10.63+), pero he seguido todos los pasos del libro que dice cómo ejecutar Compile manualmente todos los encabezados del kernel de Linux, por lo que debería tenerlos.
¿Alguna idea? Si necesita información adicional, simplemente dígame qué comando necesito ejecutar y adjuntaré el resultado.
¡Gracias!