Как я могу обновить установку buildroot до более поздней версии?

В проекте, который я унаследовал, используется очень старая версия buildroot, но я хотел бы изменить ее, чтобы использовать функцию, которая была добавлена ​​только в более позднем выпуске buildroot.

Есть ли простой способ обновить настройку buildroot для использования более поздней версии?

например если я сохраню файл defconfig и импортирую его в более позднюю версию buildroot, будет ли это просто работать, или есть практические причины, почему бы и нет? Есть ли дополнительные файлы конфигурации, которые мне нужно перенести (например, ядро, busybox и т. д.)? Спасибо!


person Nick Pelling    schedule 04.07.2013    source источник
comment
Вероятно, не существует простого способа обновления установки buildroot для использования более поздней версии. Вы также должны подумать, собираетесь ли вы также обновлять инструменты, пакеты и ядро. Все они по умолчанию будут иметь разные (и, возможно, устаревшие) версии в новой версии Buildroot. Перед попыткой обновления вам потребуются файлы исправлений для всех изменений исходного кода. Я использовал sdiff для сравнения старых и новых файлов конфигурации для такого рода обновлений.   -  person sawdust    schedule 27.07.2013
comment
Вам также понадобятся файлы kernel.config, busybox.config и uclibc.config, если вы их модифицировали.   -  person arved    schedule 06.11.2013


Ответы (1)


No.

На самом деле, это еще хуже.

Вы можете начать с использования более новой версии Buildroot со своим старым файлом конфигурации по умолчанию, но вам нужно будет тщательно проверить полученную конфигурацию на наличие устаревших пакетов и пакетов, версии которых несовместимы с любым прикладным программным обеспечением, которое вы можете добавить в файловую систему Buildroot. Имена некоторых пакетов (например, opencv) со временем меняются, поэтому вам нужно просмотреть получившийся файл .config, чтобы убедиться, что там есть все необходимые вам пакеты.

Если вы собираете набор инструментов или ядро ​​​​Linux в Buildroot (обычно это делается, но обычно это не рекомендуется), вам необходимо убедиться, что новая конфигурация настроена на сборку старой версии ядра и компилятора. Они могут быть слишком старыми для сборки некоторых пакетов в новой версии Buildroot.

Если вы обновляете ядро ​​одновременно с обновлением Buildroot, вам необходимо перенести старый файл конфигурации ядра на новую версию ядра. Поскольку параметры конфигурации ядра часто меняются, вам, вероятно, потребуется начать с defconfig для вашей платы, а затем использовать make menuconfig, чтобы вручную добавить нужные вам конфигурации.

Busybox немного менее изменчив, поэтому есть шанс, что ваш старый конфиг будет работать.

Если ваша старая конфигурация Buildroot использует сценарии пост-сборки или пост-образа, вам нужно будет просмотреть их, но я предполагаю, что они не потребуют никаких изменений.

На эту работу следует выделить как минимум неделю, а может и больше, в зависимости от сложности конфигурации. Помните, что если вы вынуждены использовать более старое ядро ​​вендора из-за исправлений для конкретной SoC, например, ядро ​​Freescale 2.6.33.9 для BSC9131, то обновление, которое вы хотите сделать, может оказаться невозможным без выполнения шести-двенадцати месяцев работы по переносу патчей ядра поставщика на более новую версию ядра.

Ваше здоровье.

person Jonathan Ben-Avraham    schedule 22.08.2015