Рейтинг:1

Скомпилировать LKM Raspberry Pi - Отказано в доступе

флаг uz

Я следую первому примеру 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 заголовки, поэтому я должен их иметь.

Есть идеи? Если вам нужна дополнительная информация, просто скажите мне, какую команду мне нужно запустить, и я приложу вывод.

Спасибо!

galexite avatar
флаг pk
Значение для `M=` пусто. Это выбирает каталог, в котором находится модуль, который вы создаете.Когда он пуст, он попытается собрать Makefile в вашем каталоге `/lib/modules`, к которому у вас нет доступа для записи. Следовательно, когда `make` пытается создать файл, это не удается.
флаг hr
+1 ... скорее всего, должно быть `M=$(PWD)`, а не `M=$(pwd)`
Roger Miranda Perez avatar
флаг uz
Вы правы, я должен был использовать M=$(PWD)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.