Bitbake: изменить bbappend в зависимости от скомпилированного изображения
У меня есть два разных изображения, которые используют много общих пакетов. Одним из них является wpa-соискатель, который предоставляет файл wpa_supplicant.conf
установлен по умолчанию рецепт. Тем не менее, я хочу свой собственный wpa_supplicant.conf
быть установленным.
Я решил это, имея .bbappend
в моем слое. Но теперь я хочу, чтобы это добавление применялось только при компиляции одного из изображений, но не другого.
Короче говоря: есть ли способ включить / отключить .bbappend
в зависимости от скомпилированного изображения?
ЗАМЕТКИ:
Я видел этот ответ, который похож, но создание нового пакета для установки моего файла не работает: многие пакеты пытаются установить один и тот же файл, и Bitbake возвращает ошибку.
- Ошибка здесь в том, что я не могу установить один и тот же файл из двух разных пакетов, поэтому это не дубликат этого вопроса IMO.
Спасибо!
1 ответ
Ну, как указано в ответе, на который вы ссылаетесь, изображение не может повлиять на любой другой рецепт. Причина в том, что каждый рецепт строится независимо от того, какое изображение вы строите.
Разные изображения предназначены для установки на один и тот же MACHINE
? В противном случае вы могли бы иметь разные wpa_supplicant.conf
для каждого MACHINE
,
Для того же MACHINE
:
- С помощью
ROOTFS_POSTPROCESS_COMMAND
это один из способов решить эту проблему - Добавить оба
wpa_supplicant.conf
-файлы (с разными именами) и добавьтеpkg_post_inst_${PN}(){xxx}
сценарий к вашемуwpa-supplicant
, что во время создания rootfs определяет, какое изображение собирается, и выбирает исправление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"
в своих рецептах.