Пользовательский режим Linux - Ошибка установки модуля - PullRequest
1 голос
/ 21 марта 2010

Я пытаюсь запустить make на модуле в пользовательском режиме Linux, чтобы установить простой make-файл.Вот мой файл make:

obj-m    := hello.o

KDIR    := /lib/modules/$(shell uname -r)/build
PWD    := $(shell pwd)

default:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

Когда я запускаю его в пользовательском режиме Linux, я получаю следующую ошибку:

make[1]: Entering directory `/lib/modules/2.6.28/build'
make[1]: *** No rule to make target `modules'.  Stop.
make[1]: Leaving directory `/lib/modules/2.6.28/build'
make: *** [default] Error 2

Проблема в том, что в /lib/modules/ отсутствуют файлы,Там нет каталога для 2.6.28 или сборки.Из того, что я прочитал, это должны быть символические ссылки на /usr/src, но под /usr/src я также не вижу никаких файлов под этим.

Ответы [ 2 ]

1 голос
/ 22 марта 2010

Исходники и заголовки вашего ядра UML должны использоваться для компиляции модуля для него.

Вы можете скомпилировать его либо внутри UML, либо просто в основной системе, но вы должны использовать заголовки ядра UML и сценарии сборки

0 голосов
/ 21 марта 2010

Вам нужно собрать и установить версию ядра, для которого вы компилируете. Получите исходный код kernel.org , настройте (я думаю make menuconfig забирает конфигурацию из запущенного ядра), соберите и установите его. Вы можете сделать сборку в своем домашнем каталоге под обычным пользователем, тогда, конечно, вам понадобится root для установки.

Edit:

На всякий случай, если вы пропустили это - вот User Mode Linux HOWTO . Он содержит специальные элементы для сборки и установки ядра и модулей. Надеюсь, это поможет.

...