Petalinux-- ОШИБКА: конфликты между попытками установки
Я пытаюсь изменить файл /etc/inittab, чтобы добавить функцию перезапуска. Чтобы проверить, могу ли я добавить строку в inittab, я создал демо. Я создал файл .bb в разделе proect-spec/meta-user/recipes-apps:
#
# This is the GPIO-DEMO apllication recipe
#
#
SUMMARY = "automatic-restart application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://* \
"
S = "${WORKDIR}"
FILESEXTAPATHS_preprend := "${THISDIR}/files:"
#inherit update-rc.d
INITSCRIPT_NAME = "hello"
INITSCRIPT_PARAMS = "start 98 5 ."
do_install() {
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${S}/hello ${D}${sysconfdir}/init.d/hello
install -d ${D}/opt/hello
cp ${S}/hello.elf ${D}/opt/hello/
}
do_install_append(){
echo "adding a line" >> ${D}${sysconfdir}/inittab
}
FILES_${PN} += "${sysconfdir}/*"
FILES_${PN} += "/opt/hello/"
Кстати, этот файл используется, сначала поместите файл .elf в /etc/init.d, и он сработает. Однако, когда я добавлял этот блок кода ниже, чтобы проверить, могу ли я изменить «inittab»:
do_install_append(){
echo "adding a line" >> ${D}${sysconfdir}/inittab
}
затем при сборке проектаpetalinux я столкнулся с этой ошибкой:«Файл /etc/inittab конфликтует между попытками установки hello-1.0-r0.cortexa9hf_neon и sysvinit-inittab-2.88dsf-r10.plnx_zynq7»
1 ответ
Это хорошо известная проблема в Yocto, заключающаяся в том, что вы не можете отправить два пакета (рецепта), которые устанавливают один и тот же файл в окончательный вариант rootfs.
Итак, либо вы удаляете один изhello
илиsysvinit-inittab
с картинки или используйтеupdate-alternatives
класс, как указано в этом вопросе .