[OE-core] [PATCH] systemd: fix systemd-udev-hwdb-update service

Rongqing Li rongqing.li at windriver.com
Mon Aug 10 02:07:20 UTC 2015



On 2015年07月24日 14:18, ChenQi wrote:
> ping
>
> Anybody has objection for this one?
>
> Best Regards,
> Chen Qi

ping

-R

>
> On 06/30/2015 01:16 PM, rongqing.li at windriver.com wrote:
>> From: Chen Qi <Qi.Chen at windriver.com>
>>
>> The new version of systemd has implemented the following feature.
>> Opointer.de/blog/projects/stateless.html
>>
>> As a result, the systemd-udev-hwdb-update.service would always run
>> at first boot. This will cause failure if the target device doesn't
>> have enough storage space. Besides, as we run `udevadm hwdb --update' as
>> a postinst of udev-hwdb at rootfs time, there's no need to run this
>> again at system start-up.
>>
>> The purpose of this patch is as follows.
>> If `udev hwdb --update' fails at rootfs time,
>> systemd-udev-hwdb-update.service
>> is executed at first boot; otherwise, the service is not executed.
>>
>> This patch achieves the above goal by setting CondistonNeedsUpdate to
>> "/etc/udev" in the service file, and creating /etc/udev/.updated file
>> if the
>> postinst succeeds.
>>
>> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
>> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
>> ---
>>   meta/recipes-core/systemd/systemd_219.bb | 18 +++++++++++++++---
>>   1 file changed, 15 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/recipes-core/systemd/systemd_219.bb
>> b/meta/recipes-core/systemd/systemd_219.bb
>> index 6ed4fe0..dc5c7b3 100644
>> --- a/meta/recipes-core/systemd/systemd_219.bb
>> +++ b/meta/recipes-core/systemd/systemd_219.bb
>> @@ -180,6 +180,10 @@ do_install() {
>>       if [ -s ${D}${libdir}/tmpfiles.d/systemd.conf ]; then
>>           ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed
>> -i -e "\$ad /run/systemd/netif/links 0755 root root -"
>> ${D}${libdir}/tmpfiles.d/systemd.conf', d)}
>>       fi
>> +
>> +    # Make systemd-udev-hwdb-update to check /etc/udev
>> +    cp ${D}${systemd_unitdir}/system/systemd-udev-hwdb-update.service
>> ${D}${sysconfdir}/systemd/system
>> +    sed -i -e
>> 's#ConditionNeedsUpdate=/etc#ConditionNeedsUpdate=/etc/udev#g'
>> ${D}${sysconfdir}/systemd/system/systemd-udev-hwdb-update.service
>>   }
>>   do_install_ptest () {
>> @@ -381,10 +385,18 @@ ALTERNATIVE_PRIORITY[runlevel] ?= "300"
>>   pkg_postinst_udev-hwdb () {
>>       if test -n "$D"; then
>> -        ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb
>> --update \
>> -            --root $D
>> +        if ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')}
>> hwdb --update \
>> +            --root $D; then
>> +            touch $D/etc/udev/.updated
>> +        else
>> +            exit 1
>> +        fi
>>       else
>> -        udevadm hwdb --update
>> +        if udevadm hwdb --update; then
>> +            touch $D/etc/udev/.updated
>> +        else
>> +            exit 1
>> +        fi
>>       fi
>>   }
>

-- 
Best Reagrds,
Roy | RongQing Li



More information about the Openembedded-core mailing list