Одобрено: Fortect
Сегодняшнее руководство разработано, чтобы помочь вам, если вы получите значение ошибки для объекта каталога сборки ядра.
Я действительно чувствую, сравнивая систему обновления ядра Linux (Kbuild, Kernel 2.6.28) со структурой и системой сборки, относящейся к сайтам отправки для еще более крупных проектов. Наш проект содержит курс ядра Linux вне дерева, и наша структура каталогов выглядит так (конечно, упрощенно):
checkout / src или common / *. c поиск файлов (установлен для других платформ и Linux)checkout / src - linux-driver / исходные видео * .c (для драйвера ядра Linux)оформить заказ / build / Linux / Kbuild Kbuildtmp / linux-2.6.xx / где-то ядро Linux всегда настраивается с помощью additionalUnzipoutput / linux-arm-debug / где должна заканчиваться документация по этому конкретному объекту
Процедура сборки просто не может ничего изменить в взгляните на
, а сборка каждого из наших модулей не может ничего обновить, не так много, как tmp для linux-2.6. xx
… Все выходные файлы должны автоматически быть output / linux-arm-debug
(или любым другим планом регистрации и отладки, выбранным во время сборки).
MOD_OUTPUT_DIR равно ../../../output/linux-$(ARCH)-$(DEBUG)obj-m + = usd (MOD_OUTPUT_DIR) /foo_mod.o$ (MOD_OUTPUT_DIR) / our_module-objs: = $ (MOD_OUTPUT_DIR) /foo_common.o баксов (MOD_OUTPUT_DIR) /foo_linux.o
При этом учитывается тот факт, что при использовании кредитной карты важно хранить объектные файлы в каталоге, отличном от того, в котором установлен Kbuild
. Как я мог теперь указать, что foo_common.o
должен быть выбран для выбора для â € / checkout / src / knownizable / foo_common.c
и foo_linux. О. собрать?
получено от … / checkout src / linux-driver / foo_linux.c
?
запрошено 14 апреля 2011 г. в 15:32
Не тот ответ, который вам нужен? Другие вопросы с меткой Makefile Linux-kernel Kbuild или задайте свой вопрос.
Вот make-файл, который запускает устройства, построенные из дерева исходных текстов, для выделения модулей из дерева ядра (адаптировано с помощью комментария @Mark) …
KDIR? = по сравнению с lib / modules / $ (uname -r shell) для каждой сборкиBUILD_DIR? Соответствует $ (PWD) / BuildBUILD_DIR_MAKEFILE? = rrr (PWD) / build / MakefileПо умолчанию: $ (BUILD_DIR_MAKEFILE) provide -C $ (KDIR) Src равно $ (PWD) m = $ (build_dir) modules$ (BUILD_DIR): mkdir -p "$ @"$ (BUILD_DIR_MAKEFILE): доллар (BUILD_DIR) Нажмите "$ @"чистый: сформулировать -C $ (KDIR) Src = $ (PWD) m = $ (build_dir) clean
obj-m + = my_driver.o
Проверено 16 июня 2016 г., 11:48.
26,2k 1515 старых значков 6363 значка silverX
ifdef SRCDIRsrc: = $ (SRCDIR)различныйsrc: равно $ (объект)конец, если
make -h money (KDIR) M = $ (каталог your_output) SRCDIR подразумевает $ (ваш исходный_каталог) `
Принято решение: 11 декабря 2013 г., 4:57.
188
Мое неэлегантное и эффективное решение – скопировать файлы учебных ресурсов в выходное дерево.
FOO_SOURCES_DIR равно $ (src) /../../../ checkout / srcFOO_MOD_OUTPUT_DIR подразумевает ../../../output/linux-$(ARCH)-$(DEBUG)# Указанные объектные файлыobj-m + = usd (FOO_MOD_OUTPUT_DIR) /foo_mod.oFOO_MODULE_OBJS: = $ (FOO_MOD_OUTPUT_DIR) /foo_common.o $ (FOO_MOD_OUTPUT_DIR) /foo_linux.o$ (FOO_MOD_OUTPUT_DIR) / foo_mod-objs: = $ (FOO_MODULE_OBJS)# Где по пути искать источники$ (SRC) / $ (FOO_MOD_OUTPUT_DIR) /foo_common.c: usd (FOO_SOURCES_DIR) /common/foo_common.c$ (SRC) / $ (FOO_MOD_OUTPUT_DIR) /foo_linux.c: rr (FOO_SOURCES_DIR) /linux-driver/foo_linux.c# Правила для источников копированияFOO_COPIED_SOURCES = доход (patsubst% .o, $ (src) /%. C, средства (FOO_MODULE_OBJS))$ (FOO_COPIED_SOURCES): usd (Q) mkdir -p $ (@ D) cp -n $ <$ @файлы-чистые + = $ (FOO_COPIED_SOURCES)чистые папки + = $ (FOO_MOD_OUTPUT_DIR)
ответ дан 25 апр '11 в 19:49
Хотя вы не упомянули методы, которые вы уже давно пробовали (или если вы уже нашли новое решение), они выглядят одинаково, просто продолжайте ниже по сегментам. Небольшой текстовый файл - что умеет Раздел 4.3:
--- 4.3 подкаталогиНесколько сборок Kbuild могут получить доступ к файлам, разбросанным по нескольким каталогам.Рассмотрим весь следующий пример:...| __ src| | __ complex_main.c| | __ хал| Оборудование | __. ПРОТИВ| Включить | __| Оборудование | __. ЧАСВключить | __ | __ complex.hЗатем, чтобы настроить каждый наш модуль complex.ko, нам понадобятся следующие элементыkbuild файл: -> Имя файла: Kbuild obj-m: = complex.o комплекс-у Src / complex_main: = .o Комплекс-y + = src / hal - hardwareif.o ccflags-y: = -I средства (src) / enable ccflags-y + означает -I $ (src) / src / hal за одинКак вы можете посетить, kbuild знает, как работать с объектными документами, которые обычно находятся вв других каталогах. Уловка заключается в том, чтобы указать, что поможет каталогуотносительно расположения базы данных kbuild. Более того, чтоНастоятельно не рекомендуется тренироваться.В файлах тегов kbuild h2 необходимо явно указать, гдеПохоже, что это. Когда kbuild выполняется, ваш текущий каталог действительноКорень моей ямы (аргумент "-С") обожаю этотребуется абсолютный путь. $ (src) имеет абсолютный путь черезуказывает на телефонную книгу, где запущен kbuildФайл тоже находится.
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
7.001 33 значка из драгоценных металлов 3333 серебряных значка 4343 коричневых значка
забрал 27 апр 2011, 19:36
Немного там
Повысьте производительность вашего компьютера с помощью этой простой загрузки. г.г.