2017-02-17 1 views
0

У меня есть два разных изображения, которые используют множество общих пакетов. Один из них - wpa-supplicant, который предоставляет файл wpa_supplicant.conf, установленный по умолчанию. Тем не менее, я хочу, чтобы мой собственный wpa_supplicant.conf был установлен.Bitbake: изменить bbappend в зависимости от скомпилированного изображения.

У меня есть это решение, имея .bbappend в моем слое. Но теперь я хочу, чтобы это приложение было применено при компиляции одного из изображений, но не другого.

Вкратце: есть способ включить/отключить .bbappend в зависимости от скомпилированного изображения?

ПРИМЕЧАНИЕ:

  • Я видел this answer, который похож, но создавая новый пакет, установить мой файл не работает: много пакетов будут пытаться установить один и тот же файл и Bitbake возвращает ошибку.

    • Ошибка здесь в том, что я не могу установить один и тот же файл из двух различных пакетов, поэтому это не является дубликатом this question ИМО.

Спасибо!

+0

Возможный дубликат [Использование битбака - возможно ли иметь другую версию \ _install для пакета на основе целевого изображения?] (Http: // stackoverflow.com/questions/33288622/using-bitbake-is-it-possible-to-have-a-different-do-install-for-a-package-based) – Anders

+0

@ Аnders Я ссылаюсь на этот вопрос в своем ответе. Это похоже, но основная проблема, с которой я столкнулась, различна (не может быть двух пакетов, устанавливающих один и тот же файл), поэтому я спрашиваю о возможности .bbappend. –

+0

Ну, вопрос был тот же, то есть одна машина. Его собственный ответ отличается, поскольку он использовал две машины. – Anders

ответ

2

Ну, как указано в ответе, на который вы ссылаетесь, вы не можете повлиять на какой-либо другой рецепт. Причина в том, что каждый рецепт построен независимо от того, какой образ вы создаете.

Являются ли различные изображения предназначены для установки на те же MACHINE? В противном случае у вас может быть wpa_supplicant.conf для каждого MACHINE.

Для того же MACHINE:

  • Использование ROOTFS_POSTPROCESS_COMMAND является одним из способов решения этой проблемы
  • Добавить оба wpa_supplicant.conf -файлы (с разными названиями) andadd pkg_post_inst_${PN}(){xxx} сценарий к вашему wpa-supplicant, что во время создания корневой файловой системы, , определяет, какое изображение создается, и выбирает corretct wpa_supplicant.conf.
  • Другое решение удалить wpa_supplicant.conf из пакета wpa-supplicant в вашем bbappend. Создайте два новых пакета wpa-supplicant-conf1 и wpa-supplicant-conf2, который включает только wpa_supplicant.conf. Те два идеале должны иметь

wpa-supplicant-conf1:

RCONFLICTS_${PN} = "wpa-supplicant-conf2" 

и wpa-supplicant-conf2

RCONFLICTS_${PN} = "wpa-supplicant-conf1" 

в своих рецептах.

+0

Спасибо за ответ, тип машины тот же, физически будет две разные платы. Я буду исследовать их дальше, потому что я не знаком с 'ROOTFS_POSTPROCESS_COMMAND' ни с' pkg_post_inst _ $ {PN} '. Что касается третьего решения: как удалить файл с помощью '.bbappend'? Удаление его с помощью 'do_install_append()? –

+1

Да,' rm' внутри 'do_install_append()' отлично работает. – Anders

Смежные вопросы