O Netctl está lento no arch linux

1

Eu sou novo no Linux. Estou trabalhando em um projeto de aceleração de inicialização. Eu estou usando o Arch Linux no raspberry pi B +. Eu estou particularmente olhando para o serviço netctl. Para rastrear o tempo da função, editei alguns scripts em / usr / lib / network. e eu tenho que saber disso, é um hardware lento (?) e também ficou preso no resolv.conf, já que ele não consegue encontrar o /etc/resolv.conf.

[   17.174115] alarmpi network[195]: Starting network profile 'ethernet-static'...
[   17.190230] alarmpi network[195]: start connection up {network}
[   17.208285] alarmpi network[195]: inside ethernet up
[   17.208285] alarmpi network[195]: test for bring interface up
[   17.443234] alarmpi network[195]: inside bring interface up{network}
[   17.455252] alarmpi network[195]: connection slow or cable is not connectedP{ethernet connection}
[   19.038800] alarmpi network[195]: wait over for carrier whose connection is low or cable not connected {ethernet connection}
[   19.056395] alarmpi network[195]: set ip in IP lib
[   19.056395] alarmpi network[195]: inside ip set {ip}
[   19.112173] alarmpi network[195]: adding static IP routs {set_ip}
[   19.122707] alarmpi network[195]: adding custome gateway {set_ip}
[   19.174517] alarmpi network[195]: start resolvconf
[   21.425880] alarmpi network[195]: /usr/lib/resolvconf/libc: line 230: /etc/resolv.conf: No such file or directory
[   21.901427] alarmpi network[195]: end resolvconf
[   21.913711] alarmpi network[195]: end of IP set
[   21.913711] alarmpi network[195]: set ip function finish P{ethernet connection}
[   21.941763] alarmpi network[195]: Started network profile 'ethernet-static'

O snippet de código para hardware lento (?) é fornecido abaixo.

if is_yes "${SkipNoCarrier:-no}"; then
    SkipDAD=yes
else
    # Some cards are plain slow to come up. Don't fail immediately.
    if ! timeout_wait "${TimeoutCarrier:-5}" '(( $(< "/sys/class/net/$Interface/carrier") ))'; then
        report_error "No connection found on interface '$Interface' (timeout)"
        bring_interface_down "$Interface"
        return 1
    fi
fi

este é o meu perfil de ethernet

Description='A basic static ethernet connection'
Interface=eth0
Connection=ethernet
IP=static
Address=('10.152.187.5/24')
#Routes=('192.168.0.0/24 via 192.168.1.2')
Gateway='0.0.0.0'
DNS=('10.152.187.5')
#ForceConnect=yes
NETCTL_DEBUG=no
TimeoutCarrier=2

## For IPv6 autoconfiguration
#IP6=stateless

## For IPv6 static address configuration
#IP6=static
#Address6=('1234:5678:9abc:def::1/64' '1234:3456::123/96')
#Routes6=('abcd::1234')
#Gateway6='1234:0:123::abcd'

Estou usando a conexão estática e desabilitei o serviço DHCP e, a partir de agora, não estou interessado em IPv6.

Qual poderia ser a solução para acelerar o tempo de inicialização? Devo mudar para o serviço systemd-networkd?

    
por Fenil Shah 08.03.2017 / 14:17

1 resposta

0

A libc usa o /etc/nsswitch.conf para configurar a resolução de nomes. veja man nsswitch.conf

se sua entrada de hosts for resolvida usando dns em algum momento, este subsistema lerá /etc/resolv.conf procurando por parâmetros.

considere usar apenas um cache de DNS local para acelerar o DNS. Se um dnsmasq for considerado muito, você pode usar diretamente o arquivo estático / etc / hosts para resolução de nomes.

para acelerar o link da operadora, você deve considerar a possibilidade de usar o spanning tree portfast no link do comutador para essa interface em seu PI.

    
por 20.03.2017 / 10:16