Не удалось подключить встроенное устройство к ping что-либо в сети

У меня есть встроенное устройство, построенное с использованием buildroot, версия ядра 3.6.11, работающая с busybox. Ядро построено с полностью стандартными опциями. Я настроил устройство в соответствии с тем, что указал парень сети для IP, шлюза, netmask и т. Д., И я поместил эти значения в файл / etc / network / interfaces. Когда система загружается, вызов ifconfig говорит мне, что все сетевые настройки – это то, что они должны быть. Однако я не могу пинговать какую-либо другую машину в той же подсети, что и устройство. Я могу связаться с моей машиной с прямым подключением к Ethernet-сети, поэтому я думаю, что сетевой адаптер в порядке – я могу ssh на хост, и хост может правильно vsftpd цель из vsftpd я установил на устройстве. В принципе, я очень не уверен, как продолжить диагностику проблемы. Я тонул на интернет-форуме руководства по настройке сети Linux и никуда не уходил. Кроме того, тревожно, когда я печатаю

 # ip addr show dev eth0 

Я получаю отчет о segfault в libuClibc-0.9.33.2.so. Я построил все это, используя buildroot, и сообщил, что все прошло успешно. Возможно ли, что у меня сломанное ядро? Я действительно не знаю, как действовать, поэтому любой совет будет с благодарностью принят.

EDIT Выход из ip addr show dev eth0 является

 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:18:7d:19:a0:d8 brd ff:ff:ff:ff:ff:ff inet 172.18.255.212/24 brd 172.18.255.255 scope global eth0 [ 331.700545] ip[951]: segfault at 0 ip b76e1f26 sp bfbd29b0 error 4 in libuClibc-0.9.33.2.so[b76b5000+4d000] Segmentation fault 

Когда я вызываю ту же команду на другой адаптер eth1, тогда я не получаю segfault, поэтому действительно не знаю, что происходит.

EDIT2 После перестройки с помощью отладочной информации и strace я смог получить вывод segfault – я действительно не знаю, что это значит, хотя и не похоже на то, что он пытается писать в место, которое, возможно, не должно (я не включил все это, только последние несколько строк).

 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4 ioctl(4, SIOCGIFTXQLEN, {ifr_name="eth1", ifr_qlen=1000}) = 0 close(4) = 0 write(1, "3: eth1: <BROADCAST,MULTICAST,UP"..., 793: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 ) = 79 write(1, " link/ether 00:18:7d:19:a0:d7"..., 55 link/ether 00:18:7d:19:a0:d7 brd ff:ff:ff:ff:ff:ff ) = 55 open("/etc/iproute2/rt_scopes", O_RDONLY) = 4 ioctl(4, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0xbfc91b30) = -1 ENOTTY (Inappropriate ioctl for device) read(4, "#\n# reserved values\n#\n0\tglobal\n2"..., 4096) = 92 read(4, "", 4096) = 0 close(4) = 0 write(1, " inet 192.168.12.198/16 brd 1"..., 65 inet 192.168.12.198/16 brd 192.168.255.255 scope global eth1 ) = 65 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} --- +++ killed by SIGSEGV +++ Segmentation fault 

One Solution collect form web for “Не удалось подключить встроенное устройство к ping что-либо в сети”

Мне удалось решить проблему сбоя сегментации, которую я буду документировать здесь, если у кого-то будут подобные проблемы в будущем. Я заметил, что когда я позвонил

  ip -f inet addr show dev eth0 

вместо

  ip inet addr show dev eth0 

то segfault не произойдет, но это все равно произойдет с

  ip -f inet6 addr show dev eth0 

Это привело меня к выводу о том, что я должен иметь несовместимость с поддержкой IPv6 где-то в своей привязке или busybox. Я снова восстанавливаю всю цель, toolchain, kernel и uClibc с нуля с помощью файлов конфигурации buildroot, на этот раз обеспечивая, чтобы мои кросс-инструменты были созданы с поддержкой IPV6. С этой опцией установленное segfault больше не происходит.

Linux и Unix - лучшая ОС в мире.