Как я могу переопределить другой .bbappend

Я построил образ с systemd и dhcp-client. В рецепте dhcp в meta-openembedded/meta-systemd/oe-core/recipes-connectivity/dhcp есть bbappend, который создает dhclient.service. Я хочу изменить (или переопределить) этот файл, но когда я запускаю bitbake, у меня появляется ошибка, которая сообщает мне Applying patch 0001-dhclient-modify-interface.patch can't find file to patch at input line 5.

Вот мой патч для dhclient.service:

Index: 4.3.3-r0/dhclient.service
===================================================================
--- 4.3.3-r0.orig/dhclient.service
+++ 4.3.3-r0/dhclient.service
@@ -6,7 +6,7 @@ After=syslog.target network.target
 Type=forking
 PIDFile=/var/run/dhclient.pid
 EnvironmentFile=-/etc/default/dhcp-client
-ExecStart=/sbin/dhclient -cf /etc/dhcp/dhclient.conf -q -lf /var/lib/dhcp/dhclient.leases $INTERFACES
+ExecStart=/sbin/dhclient -cf /etc/dhcp/dhclient.conf -q -lf /var/lib/dhcp/dhclient.leases eth0

 [Install]
 WantedBy=multi-user.target

И мой dhcp _%. Bbappend:

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://dhclient.service"

Я также пытался переопределить файл, но, похоже, он полностью игнорирует мой файл ...

Я хочу включить это по умолчанию, но как я могу переопределить эту линию (присутствующую в папке dhcp) на enable: SYSTEMD_AUTO_ENABLE_dhcp-client = "disable"


person Pouet_forever    schedule 21.12.2016    source источник
comment
Укажите, какую версию OpenEmbedded вы используете.   -  person Anders    schedule 22.12.2016


Ответы (2)


Что ж, вы не можете легко исправить файл, поскольку он не является частью источника.

Однако этого должно быть достаточно, чтобы добавить .bbappend с

FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
SYSTEMD_AUTO_ENABLE_dhcp-client = "enable"

и поместите dhclient.service в свой слой на recipes-core/dhcp/dhcp/dhclient.service.

Это предполагает, что ваш уровень имеет более высокий приоритет по сравнению с meta-systemd.

person Anders    schedule 22.12.2016

Есть еще одно решение, которое мне подходит: сначала отключить исходный bbappend, а затем добавить свои собственные.

Поместите BBMASK = "meta-openembedded/meta-systemd/oe-core/recipes-connectivity/dhcp/original.bbappend" в свой build/conf/layers.conf, чтобы отключить исходный восходящий bbappend, затем сделайте новый bbappend по своему собственному рецепту. Таким образом можно "переопределить" bbappend.

Это более гибкий вариант, и его можно применить к большему количеству сценариев, не ограниченных вашим случаем.

person Jason Liu    schedule 12.09.2017