no servidor dns no nfsroot com systemd-networkd

2

Eu criei meu próprio Sysroot com Yocto e montei via NFS em uma placa ARM. Ele usa systemd-networkd e systemd-resolved para rede. Eu estou começando a placa assim:

O Bootloader U-Boot carrega o kernel e o devicetree via tftp e passa

root=/dev/nfs nfsroot=192.168.x.x:/Path/To/Sysroot,vers=3,tcp rootwait ro ip=dhcp

para o kernel. O kernel inicia e recebe IP e DNS do nosso servidor DHCP local:

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

Depois disso, o Kernel monta o NFS-Sysroot e inicia o SystemD. Neste ponto, o serviço systemd-networkd assumirá e solicitará um IP do DHCP. Mesmo quando recebe o mesmo IP do kernel recebido anteriormente, isso quebraria o nfs-mount. Estou evitando isso alterando meu arquivo de configuração systemd-networkd para:

[Match]
Name=eth0
KernelCommandLine=!nfsroot

[Network]
DHCP=ipv4

Portanto, o arquivo de configuração só é aplicado quando não estou usando o nfsroot.

Mas agora o dns não está funcionando. Eu posso ver os servidores DNS detectados anteriormente com:

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

mas o sistema não parece usá-los. Como posso usar esses servidores de DNS?

    
por daly 05.02.2018 / 08:14

0 respostas