Как собрать модуль ядра linux с помощью готового каталога вывода ядра? - PullRequest
0 голосов
/ 28 февраля 2019

Мой клиент отправляет мне готовый выходной каталог ядра (они не могут выпустить нам исходное дерево ядра).Этот выходной каталог, как показано ниже (в / home / michael / Clients / android_p_Hzh / kernel / kernel /):

  • arch
  • block
  • встроенный.o
  • certs
  • ...
  • .config
  • Makefile
  • Module.symvers
  • source (символссылка на локальное дерево исходных текстов в файловой системе моего клиента)

Можно ли с помощью этого каталога собрать мой внешний модуль?

/ home / michael / Source /Linux / br_driver - это каталог моего драйвера.Я попытался собрать свой драйвер в этом каталоге, как показано ниже. Команда make:

make CROSS_COMPILE = x86_64-poky-linux- -C / home / michael / Clients / android_p_Hzh / kernel / kernel / M =pwd $ 1

Сбой при выводе ниже:

*** No rule to make target '/home/michael/Source/Linux/br_driver/common.o' needed by ...

Makefile в br_driver , как показано ниже:

brt-objs := $(BRTOFILES)
obj-$(DRIVER_TYPE)   += brt.o

all:
    @echo "$(MAKE) --no-print-directory -C $(KDIR) SUBDIRS=$(CURDIR) modules"
    @$(MAKE) --no-print-directory -C $(KDIR) SUBDIRS=$(CURDIR) modules

clean:
    rm -rf *.o *.ko *.mod.c *~ .*.cmd *.o.cmd .*.o.cmd \
    Module.symvers modules.order .tmp_versions modules.builtin

install:
    @$(MAKE) --no-print-directory -C $(KDIR) \
        SUBDIRS=$(CURDIR) modules_install

1 Ответ

0 голосов
/ 11 апреля 2019

Я решил эту проблему.Единственное, что мне нужно, это .config и Modules.symvers.Ключевой операцией является make oldconfig и modules_prepare .

...