
Я следую первому примеру LKM Hello World и теперь мне нужно его скомпилировать.
Согласно книге, Makefile должен быть таким:
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
И затем вам нужно запустить make
(а там написано, что вам не нужно этого делать sudo make
, иначе вы перекомпилируете все заголовочные файлы ядра Linux).
При запуске этого выводится:
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
И если я запускаю sudo make
или изменяю команды Makefile, sudo make -C ...
он никогда не заканчивается (>2 часов и все еще ожидание).
Я не смог запустить sudo apt install linux-headers-'uname -r'
(не обращайте внимания на ', они есть `, но я не могу поместить их здесь), потому что ядро последнее (5.10.63+), но я выполнил все шаги из книги, в которой рассказывается, как вручную скомпилировать все заголовочные файлы ядра Linux, так что они у меня должны быть.
Есть идеи? Если вам нужна дополнительная информация, просто скажите, какую команду мне нужно выполнить, и я прикреплю вывод.
Спасибо!