O problema era um BIOS mal configurado. Redefinir para os valores padrão resolveu o problema. Não consegui descobrir qual configuração causou o problema ... Estou deixando esta resposta para completar.
Eu construí uma distribuição linux usando o Projeto Yocto , com pouca customização. Ele é executado em um computador de placa única.
Quando faço ping nessa máquina, recebo o seguinte resultado:
PING 10.128.11.1 (10.128.11.1) 56(84) bytes of data.
64 bytes from 10.128.11.1: icmp_req=1 ttl=64 time=11.6 ms
64 bytes from 10.128.11.1: icmp_req=2 ttl=64 time=9.79 ms
64 bytes from 10.128.11.1: icmp_req=3 ttl=64 time=7.76 ms
64 bytes from 10.128.11.1: icmp_req=4 ttl=64 time=5.78 ms
64 bytes from 10.128.11.1: icmp_req=5 ttl=64 time=3.75 ms
64 bytes from 10.128.11.1: icmp_req=6 ttl=64 time=1.80 ms
64 bytes from 10.128.11.1: icmp_req=7 ttl=64 time=99.7 ms
64 bytes from 10.128.11.1: icmp_req=8 ttl=64 time=97.8 ms
64 bytes from 10.128.11.1: icmp_req=9 ttl=64 time=95.8 ms
64 bytes from 10.128.11.1: icmp_req=10 ttl=64 time=93.8 ms
64 bytes from 10.128.11.1: icmp_req=11 ttl=64 time=91.8 ms
64 bytes from 10.128.11.1: icmp_req=12 ttl=64 time=89.8 ms
64 bytes from 10.128.11.1: icmp_req=13 ttl=64 time=87.8 ms
-- snip --
64 bytes from 10.128.11.1: icmp_req=52 ttl=64 time=15.7 ms
64 bytes from 10.128.11.1: icmp_req=53 ttl=64 time=13.7 ms
64 bytes from 10.128.11.1: icmp_req=54 ttl=64 time=11.7 ms
64 bytes from 10.128.11.1: icmp_req=55 ttl=64 time=9.77 ms
64 bytes from 10.128.11.1: icmp_req=56 ttl=64 time=7.78 ms
64 bytes from 10.128.11.1: icmp_req=57 ttl=64 time=5.75 ms
64 bytes from 10.128.11.1: icmp_req=58 ttl=64 time=3.78 ms
64 bytes from 10.128.11.1: icmp_req=59 ttl=64 time=1.76 ms
64 bytes from 10.128.11.1: icmp_req=60 ttl=64 time=99.7 ms
O valor continua diminuindo em 2 ms para cada pacote, então vai até 100 ms, e diminui novamente 2ms.
Quando eu configuro a interface, recebo erros estranhos (mas a interface funciona):
[ 65.404850] irq 15: nobody cared (try booting with the "irqpoll" option)
[ 65.404957] Pid: 661, comm: ifconfig Not tainted 3.8.1-yocto-standard #2
[ 65.405036] Call Trace:
[ 65.405136] [<c10a9a39>] __report_bad_irq+0x29/0xd0
[ 65.405237] [<c13b18fd>] ? add_interrupt_randomness+0x1d/0x160
[ 65.405329] [<c10a9e65>] note_interrupt+0x165/0x1b0
-- snip --
[ 65.405617] [<c112fcc3>] ? sys_ioctl+0x63/0x90
[ 65.405617] [<c1662970>] ? syscall_call+0x7/0xb
[ 65.405617] handlers:
[ 65.405617] [<c1473100>] rtl8139_interrupt
[ 65.405617] Disabling IRQ #15
Eu procurei variáveis em sysctl -A
output que poderiam causar esse comportamento, alterei algumas, mas sem sucesso. Eu diabled IPv6. Eu tentei um RT-kernel. Eu tentei os parâmetros do kernel acpi=noirq
e irqpoll
. Eu verifiquei dmesg
e vi que o driver registrou o IRQ15 corretamente:
[ 6.926691] 8139too: 8139too Fast Ethernet driver 0.9.28
[ 6.927813] 8139too 0000:00:09.0 eth0: RealTek RTL8139 at 0x0001fc00, 00:05:b7:dd:53:25, IRQ 15
Eu pesquisei Documentação / e Documentação / rede / pastas do kernel para obter informações, mas não encontrei nenhuma. Eu usei o Google extensivamente, não encontrei nada.
Alguma idéia do que pode ser a fonte desse comportamento?
O problema era um BIOS mal configurado. Redefinir para os valores padrão resolveu o problema. Não consegui descobrir qual configuração causou o problema ... Estou deixando esta resposta para completar.
Tags networking ping linux