#linux #git #kernel #yocto #patch
Вопрос:
Я попытался добавить еще один git-источник из другого проекта и патч, подобный followwoing в bbappend
файле (к вашему сведению, в bb
файле у меня есть первое репозиторий git, где я получаю исходный код ядра, и он работает) :
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRCREV_my_modules = "${AUTOREV}"
SRC_URI = "git://server/produc/kernel-modules;protocol=ssh;branch=master;name=my_modules;destsuffix=${S}/my_modules"
SRC_URI = "file://drivers_makefile.patch"
Проблема в том, что когда я попытался построить, как показано ниже :
bitbake -c cleanall linux
bitbake linux
изменения не учитываются, нет источников, полученных из git, и патч не применяется
Когда я попытался сделать ошибку в git URI или в названии исправления, bitbake обнаруживает проблему и показывает ошибку даже для git URI (
ssh: Could not resolve hostname server: Name or service not known
fatal: Could not read from remote repository.
) даже в имени файла исправления.
к вашему сведению, когда я попытался добавить символическую ссылку на новый источник в do_compile_append (), это сработало, и была создана символическая ссылка, но, конечно, ссылка сделана для несвязанного исходного кода.
Я не понимаю, в чем проблема ? Можете ли вы помочь мне найти решение для этого ?
ПРИМЕЧАНИЕ: Я следовал той же идее, что и мета/рецепты-ядро/glibc/кросс-локальное определение-native_2.22.bb
Ответ №1:
Я прочитал ваш пост и также взглянул на cross-localedef-native_%.bb. Ваша проблема прямо здесь:
SRC_URI = "git://server/produc/kernel-modules;protocol=ssh;branch=master;name=my_modules;destsuffix=${S}/my_modules"
Если бы ваше репозиторий git действительно размещался на сервере и это имя разрешалось через DNS, и, предположительно, в репозитории также был путь, такой как product/kernel-modules/, ваша выборка будет работать, и ваша сборка должна продолжаться, просто отлично. В кросс-локальном собственном рецепте есть URI репо из github.com и sourceware.org, которые действительно разрешаются, так что там все работает хорошо.
Введите свое фактическое имя сервера репо git (github.com, git.yoctoproject.org, неважно), убедитесь, что у вас действительно есть доступ по ssh, так как вы указываете это, и у вас все будет хорошо.