Я следую первому примеру Hello World LKM, и теперь мне нужно его скомпилировать.
Согласно книге, Makefile должен быть таким:
obj-m+=hello_world.o
все:
make -C /lib/modules/$(shell uname -r)/build/ M=$(pwd) модули
чистый:
make -C /lib/modules/$(shell uname -r)/build/ M=$(pwd) очистить
И тогда вам нужно бежать делать
(и это говорит, что вы не должны бежать судо сделать
или вы перекомпилируете все заголовки ядра Linux).
Запустив это, он выводит:
make -C /lib/modules/5.10.63+/build/ M= модули
make[1]: Вход в каталог '/usr/src/rpi-5.10.y'
/bin/sh: 1: невозможно создать include/generated/uapi/linux/.version.h.tmp: Отказано в доступе
UPD include/generated/uapi/linux/version.h
mv: невозможно указать «include/generated/uapi/linux/.version.h.tmp»: нет такого файла или каталога
make[1]: *** [Makefile:1277: include/generated/uapi/linux/version.h] Ошибка 1
make[1]: Выход из каталога '/usr/src/rpi-5.10.y'
make: *** [Makefile:4: all] Ошибка 2
И если я побегу судо сделать
или измените команды Makefile с помощью судо сделать -C ...
он никогда не заканчивается (> 2 часа и все еще ждет).
я не мог бежать sudo apt установить linux-headers-'uname -r'
(не обращайте внимания на ', это `, но я не могу разместить его здесь), потому что ядро последнее (5.10.63+), но я выполнил все шаги в книге, в которой рассказывается, как вручную скомпилировать все ядро Linux заголовки, поэтому я должен их иметь.
Есть идеи? Если вам нужна дополнительная информация, просто скажите мне, какую команду мне нужно запустить, и я приложу вывод.
Спасибо!