Como localizar o módulo que lida com a resolução de DNS no buildroot?

0

Eu tenho 2 dispositivos Linux diferentes, o kernel de um é feito usando ltib ( L a partir de agora), e o outro é por buildroot ( B a partir de agora).

Consigo adicionar um resolvedor de DNS a B usando:

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

e, em seguida, ping google.com funciona bem.

Por outro lado, em L , o mesmo schtik não funcionou, e embora o ping 8.8.8.8 esteja correto, ping google, google.com ou www.google.com sempre falha.

O que eu quero fazer é de alguma forma comparar os dois kernels para entender o que está dentro de B que está faltando em L e habilita a resolução de DNS.

Onde e o que devo procurar?

Eu usei este guia e com isso eu entendo que desde que meu /etc/nsswitch.conf seja assim:

cat /etc/nsswitch.conf
    passwd:     files  rf
    shadow:     files
    group:      files
    hosts:      files  dns
    services:   files
    networks:   files
    protocols:  files
    rpc:        files
    ethers:     files
    netmasks:   files
    netgroup:   files
    automount:  files
    aliases:    files
    bootparams:  [NOTFOUND=return] files

então o comando ping deve olhar para /etc/resolv.conf , que inclui a linha nameserver 8.8.8.8 :

cat /etc/resolv.conf
nameserver 8.8.8.8

então eu realmente não vejo porque meu ping falha.

Eu tentei editar o /etc/nsswitch.conf para remover o files da entrada hosts (fez com que parecesse com hosts: dns ), mas isso não ajudou.

    
por CIsForCookies 10.10.2018 / 16:12

1 resposta

0

Não é o kernel do Linux que faz a resolução do DNS, mas sim a biblioteca C. Qual biblioteca C o seu sistema LTIB está usando? Por padrão, o Buildroot está usando o uClibc, que não possui um arquivo de configuração nssswitch.conf .

    
por 18.10.2018 / 09:55