kein DNS-Server auf NFS-Root mit systemd-networkd

kein DNS-Server auf NFS-Root mit systemd-networkd

Ich habe mein eigenes Sysroot mit Yocto erstellt und es per NFS auf einem ARM-Board gemountet. Es verwendet systemd-networkd und systemd-resolved für die Vernetzung. Ich starte das Board so:

U-Boot Bootloader lädt Kernel und Gerätebaum über TFTP und übergibt

root=/dev/nfs nfsroot=192.168.xx:/Pfad/Zu/Sysroot,vers=3,tcp rootwait ro ip=dhcp

zum Kernel. Der Kernel startet und erhält IP und DNS von unserem lokalen DHCP-Server:

IP-Config: Complete:
 device=eth0, hwaddr=XX:XX:XX:XX:XX:XX, ipaddr=192.168.X.X, mask=255.255.255.0, gw=192.168.X.X
 host=192.168.XX.XX, domain=XXX.XX, nis-domain=(none)
 bootserver=0.0.0.0, rootserver=192.168.XX.XX, rootpath=
 nameserver0=192.168.XX.XX, nameserver1=192.168.XX.XX

Danach mountet der Kernel das NFS-Sysroot und startet SystemD. An diesem Punkt würde der Dienst systemd-networkd übernehmen und eine IP von DHCP anfordern. Selbst wenn er dieselbe IP erhält, die der Kernel zuvor erhalten hat, würde dies das NFS-Mount unterbrechen. Ich vermeide dies, indem ich meine Konfigurationsdatei für systemd-networkd wie folgt ändere:

[Match]
Name=eth0
KernelCommandLine=!nfsroot

[Network]
DHCP=ipv4

Die Konfigurationsdatei wird also nur angewendet, wenn ich nfsroot nicht verwende.

Aber jetzt funktioniert DNS nicht. Ich kann die zuvor erkannten DNS-Server mit Folgendem sehen:

cat /proc/net/pnp 
#PROTO: DHCP
domain XXX.XX
nameserver 192.168.XX.XX
nameserver 192.168.XX.XX
bootserver 0.0.0.0

aber das System scheint sie nicht zu verwenden. Wie kann ich diese DNS-Server verwenden?

verwandte Informationen