Компиляция модуля Linux: никакой каталог сборки

Я пытаюсь скомпилировать простой модуль ядра с простым make-файлом.

KDIR ?= /lib/modules/$(shell uname -r)/build

obj-m := my_module.o

all: modules

modules modules_install clean help:
    $(MAKE) -C $(KDIR) M=$(PWD) $@

Это - то, что я получаю, когда я пытаюсь скомпилировать:

root@vm:/home/my_modules# make
make -C /lib/modules/4.10.0+/build M=/home/my_modules modules
make[1]: *** /lib/modules/4.10.0+/build: No such file or directory.  Stop.
Makefile:9: recipe for target 'modules' failed
make: *** [modules] Error 2

Я видел в другом сообщении, что должен получить заголовки Linux и системный канал. Таким образом, я попробовал без успеха.

root@vm:/home/my_modules# apt install linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package linux-headers-4.10.0
E: Couldn't find any package by regex 'linux-headers-4.10.0'

Я выполняю их от виртуальной машины. Как я должен привести заголовки Linux в порядок для компиляции моего модуля?

Снаружи моего vm (я использую nfsroot), я вижу, что папка сборки не пуста. С vm точки зрения это пусто.

johndoe@anywhere:~/workspace/linux$ ls /home/johndoe/rootfs/lib/modules/4.10.0+/build/
arch   certs   drivers   fs       init  kernel  Makefile  modules.builtin  Module.symvers  scripts   sound   System.map  virt     vmlinux.o
block  crypto  firmware  include  ipc   lib     mm        modules.order    net             security  source  usr         vmlinux

перспектива vm:

root@vm:/home/my_modules# ls /lib/modules/4.10.0+/build 
/lib/modules/4.10.0+/build
root@vm:/home/my_modules# du /lib/modules/4.10.0+/build 
0   /lib/modules/4.10.0+/build

Почему?

1
задан 18 March 2017 в 17:24

0 ответов

Другие вопросы по тегам:

Похожие вопросы: