[OE-core] [PATCH v2 1/1] systemd-conf: configure wired network with dhcp

Kang Kai Kai.Kang at windriver.com
Wed May 22 02:11:43 UTC 2019


On 2019/5/22 上午1:37, Khem Raj wrote:
> just copy paste from meta-yoe, that has been long working.
>
> On Tue, May 21, 2019 at 2:23 AM <kai.kang at windriver.com> wrote:
>> From: Kai Kang <kai.kang at windriver.com>
>>
>> Add a configure file for systemd.networkd to configure wired network
>> interfaces with dhcp. It works with common network interfaces such eth0
>> and eno1.
>>
>> Refer to
>> https://github.com/YoeDistro/meta-yoe/tree/master/recipes-core/systemd
>>
>> [YOCTO #13057]
>>
>> Signed-off-by: Kai Kang <kai.kang at windriver.com>
>> ---
>>   meta/recipes-core/systemd/systemd-conf/dhcp.network | 9 +++++++++
>>   meta/recipes-core/systemd/systemd-conf_242.bb       | 5 +++++
>>   2 files changed, 14 insertions(+)
>>   create mode 100644 meta/recipes-core/systemd/systemd-conf/dhcp.network
>>
>> diff --git a/meta/recipes-core/systemd/systemd-conf/dhcp.network b/meta/recipes-core/systemd/systemd-conf/dhcp.network
>> new file mode 100644
>> index 0000000000..253aee9382
>> --- /dev/null
>> +++ b/meta/recipes-core/systemd/systemd-conf/dhcp.network
>> @@ -0,0 +1,9 @@
>> +[Match]
>> +Name=en* eth*
> I think this is better put
> Name=en*
> Name=eth*

Accodring to systemd.network(5),

        Name=
            A whitespace-separated list of shell-style globs matching 
the device name, as exposed by the udev property "INTERFACE".

It also says:

        A network file is said to match a device if each of the entries 
in the "[Match]" section matches, or if the section is empty.

So I perfer to use put them in one line "Name=en* eth*".

Also check systemd source code,

neil at pek-kkang-d1:/mnt/sda4/git/systemd
$ find . -name *.network -exec grep -H -c ^Name= {} \; | grep -v 1$
neil at pek-kkang-d1:/mnt/sda4/git/systemd
$ find . -name *.network -exec grep -H 'Name=\S\+\s\S' {} \;
./test/test-network/conf/25-tunnel-remote-any.network:Name=*tun97 ip6tnl97
./test/test-network/conf/bond-slave.network:Name=dummy98 test1
./test/test-network/conf/25-tunnel.network:Name=*tun99 *tap99 ip6tnl99 
erspan99
./test/test-network/conf/25-tunnel-local-any.network:Name=*tun98 *tap98 
ip6tnl98 erspan98


>> +
>> +[Network]
>> +DHCP=yes
>> +
>> +[DHCP]
>> +RouteMetric=10
>> +ClientIdentifier=mac
>> diff --git a/meta/recipes-core/systemd/systemd-conf_242.bb b/meta/recipes-core/systemd/systemd-conf_242.bb
>> index 96beea53a7..105ee3ceed 100644
>> --- a/meta/recipes-core/systemd/systemd-conf_242.bb
>> +++ b/meta/recipes-core/systemd/systemd-conf_242.bb
>> @@ -10,12 +10,16 @@ SRC_URI = "\
>>       file://logind.conf \
>>       file://system.conf \
>>       file://system.conf-qemuall \
>> +    file://dhcp.network \
> better to call it wired or something

OK. Will install as 80-wired.network.

Regards,
Kai


>
>>   "
>>
>>   do_install() {
>>          install -D -m0644 ${WORKDIR}/journald.conf ${D}${systemd_unitdir}/journald.conf.d/00-${PN}.conf
>>          install -D -m0644 ${WORKDIR}/logind.conf ${D}${systemd_unitdir}/logind.conf.d/00-${PN}.conf
>>          install -D -m0644 ${WORKDIR}/system.conf ${D}${systemd_unitdir}/system.conf.d/00-${PN}.conf
>> +       if ${@bb.utils.contains('OVERRIDES', 'qemuall', 'false', 'true', d)}; then
>> +               install -D -m0644 ${WORKDIR}/dhcp.network ${D}${systemd_unitdir}/network/80-dhcp.network
>> +       fi
>>   }
>>
>>   # Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52
>> @@ -29,4 +33,5 @@ FILES_${PN} = "\
>>       ${systemd_unitdir}/journald.conf.d/ \
>>       ${systemd_unitdir}/logind.conf.d/ \
>>       ${systemd_unitdir}/system.conf.d/ \
>> +    ${systemd_unitdir}/network/ \
>>   "
>> --
>> 2.20.0
>>

-- 
Kai Kang



More information about the Openembedded-core mailing list