Вопрос или проблема
Я только что переместил старую папку buildroot с одной виртуальной машины на другую, чтобы объединить их. Я думал, что просто перемещение папки вместе с зависимыми папками и изменение соответствующих путей/имен будет достаточным для того, чтобы запустить ее на новой виртуальной машине.
К сожалению, это, похоже, не так, так как я сталкиваюсь со следующей ошибкой при попытке собрать проект на этой новой виртуальной машине:
#
# конфигурация записана в /home/mirion/mirion/buildroot-2013.05/.config
#
/usr/bin/make -j5 HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
make[1]: Вход в каталог '/home/mirion/mirion/buildroot-2013.05'
BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/mirion/mirion/buildroot-2013.05/output/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/mirion/mirion/buildroot-2013.05/output/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/home/mirion/mirion/buildroot-2013.05/output/build/buildroot-config/tristate.config BUILDROOT_CONFIG=/home/mirion/mirion/buildroot-2013.05/.config /home/mirion/mirion/buildroot-2013.05/output/build/buildroot-config/conf --silentoldconfig Config.in
*** Ошибка во время обновления конфигурации.
Makefile:692: рецепт для цели 'silentoldconfig' завершился ошибкой
make[1]: *** [silentoldconfig] Ошибка 1
make[1]: Выхожу из каталога '/home/mirion/mirion/buildroot-2013.05'
Makefile:396: рецепт для цели '/home/mirion/mirion/buildroot-2013.05/output/build/buildroot-config/auto.conf' завершился ошибкой
make: *** [/home/mirion/mirion/buildroot-2013.05/output/build/buildroot-config/auto.conf] Ошибка 2
mv: не удается получить состояние 'output/images/rootfs.ubi': Нет такого файла или директории
Есть ли идеи, что я могу сделать, чтобы решить эту проблему?
Я делал некоторые поиски в Google, но не смог найти ничего определенного.
ДОПОЛНЕНИЕ: Оригинальная виртуальная машина работала на Lubuntu 12.04, новая виртуальная машина работает на Ubuntu 17.10.
Спасибо.
Я переключился на использование “olddefconfig”, и, похоже, это работает.
Ответ или решение
Перемещение старой директории Buildroot из одной виртуальной машины в другую может привести к ошибкам, особенно если вы переходите на более новую версию операционной системы. Ошибка, которую вы описываете, связанная с командой silentoldconfig
, может возникать по нескольким причинам.
Возможные причины ошибки:
-
Отсутствие необходимых инструментов: Убедитесь, что все необходимые инструменты и зависимости, которые требуются для сборки вашего проекта, установлены и доступны в новой системе. В частности, проверьте версии и установку
gcc
,make
, и других инструментов сборки. -
Неверная конфигурация: Файл
.config
может содержать параметры, которые не совместимы с вашими новыми окружением или версиями библиотек. Это может вызвать конфликты при выполнении командыsilentoldconfig
, которая предназначена для обновления конфигурации без необходимости ручного вмешательства. -
Изменения в зависимости от системной библиотеки: Переход с более старой версии Lubuntu на более новую версию Ubuntu может привести к изменениям в именах пакетов, расположениях файлов или другим изменениям в окружении.
Как решить проблему:
-
Используйте
olddefconfig
: Как вы уже заметили, заменаsilentoldconfig
наolddefconfig
может помочь. Командаolddefconfig
автоматически берет существующий.config
файл и устанавливает все параметры, которые могут быть переработаны, по умолчанию. Это может значительно упростить процесс приведения конфигурации в порядок. -
Обновите Buildroot: Рассмотрите возможность обновления Buildroot до более свежей версии. Это может устранить потенциальные проблемы совместимости с новыми библиотеками или инструментами. Скачайте последнюю стабильную версию Buildroot и проверьте изменения в конфигурации.
-
Проверьте зависимости: Убедитесь, что все зависимости вашего проекта соответствуют требованиям обновленной версии Buildroot. Ознакомьтесь с официальной документацией для получения информации о необходимых версиях пакетов, библиотек и инструментов.
-
Снижение уровня конфигурации: Если у вас есть старые индивидуальные настройки конфигурации, попробуйте сбросить некоторые из них или создать новый конфигурационный файл с помощью команды
make menuconfig
, чтобы получить базовую рабочую настройку, а затем постепенно добавлять пользовательские параметры. -
Поиск по ошибкам: Обратите внимание на другие ошибки в выводе
make
, особенно на сообщения о том, какие ключи или параметры не распознаны. Это может дать больше информации о том, что не так.
Заключение:
Проблемы с silentoldconfig
могут быть решены, если вы воспользуетесь olddefconfig
, обновите зависимости и, если необходимо, обновите сам Buildroot. Регулярная проверка конфигурационного файла и корректировка его в соответствии с новыми требованиями будет способствовать успешной сборке.