ошибка “silentoldconfig” при компиляции

Вопрос или проблема

Я только что переместил старую папку 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, может возникать по нескольким причинам.

Возможные причины ошибки:

  1. Отсутствие необходимых инструментов: Убедитесь, что все необходимые инструменты и зависимости, которые требуются для сборки вашего проекта, установлены и доступны в новой системе. В частности, проверьте версии и установку gcc, make, и других инструментов сборки.

  2. Неверная конфигурация: Файл .config может содержать параметры, которые не совместимы с вашими новыми окружением или версиями библиотек. Это может вызвать конфликты при выполнении команды silentoldconfig, которая предназначена для обновления конфигурации без необходимости ручного вмешательства.

  3. Изменения в зависимости от системной библиотеки: Переход с более старой версии Lubuntu на более новую версию Ubuntu может привести к изменениям в именах пакетов, расположениях файлов или другим изменениям в окружении.

Как решить проблему:

  1. Используйте olddefconfig: Как вы уже заметили, замена silentoldconfig на olddefconfig может помочь. Команда olddefconfig автоматически берет существующий .config файл и устанавливает все параметры, которые могут быть переработаны, по умолчанию. Это может значительно упростить процесс приведения конфигурации в порядок.

  2. Обновите Buildroot: Рассмотрите возможность обновления Buildroot до более свежей версии. Это может устранить потенциальные проблемы совместимости с новыми библиотеками или инструментами. Скачайте последнюю стабильную версию Buildroot и проверьте изменения в конфигурации.

  3. Проверьте зависимости: Убедитесь, что все зависимости вашего проекта соответствуют требованиям обновленной версии Buildroot. Ознакомьтесь с официальной документацией для получения информации о необходимых версиях пакетов, библиотек и инструментов.

  4. Снижение уровня конфигурации: Если у вас есть старые индивидуальные настройки конфигурации, попробуйте сбросить некоторые из них или создать новый конфигурационный файл с помощью команды make menuconfig, чтобы получить базовую рабочую настройку, а затем постепенно добавлять пользовательские параметры.

  5. Поиск по ошибкам: Обратите внимание на другие ошибки в выводе make, особенно на сообщения о том, какие ключи или параметры не распознаны. Это может дать больше информации о том, что не так.

Заключение:

Проблемы с silentoldconfig могут быть решены, если вы воспользуетесь olddefconfig, обновите зависимости и, если необходимо, обновите сам Buildroot. Регулярная проверка конфигурационного файла и корректировка его в соответствии с новыми требованиями будет способствовать успешной сборке.

Оцените материал
Добавить комментарий

Капча загружается...