Отладка ethernet перед загрузкой NFS

Я пытаюсь загрузить Linux из U-boot на встроенную плату ARM, используя файловую систему на удаленной машине, обслуживаемой через NFS. Похоже, что соединение Ethernet не подходит правильно, что приводит к сбою подключения общего ресурса NFS. Однако я знаю, что аппаратное обеспечение ethernet работает, потому что U-boot загружает ядро ​​через TFTP.

Как я могу отладить это? Я могу попробовать настроить ядро, но это означает перекомпиляцию ядра для каждой итерации, которая медленная. Есть ли способ заставить ядро ​​работать без возможности смонтировать внешнюю файловую систему?

3 Solutions collect form web for “Отладка ethernet перед загрузкой NFS”

Вы можете скомпилировать образ initrd в ядре ( General Setup -> Initial RAM filesystem and RAM disk (initramfs/initrd) support -> Initramfs source file(s) ). Вы указываете файл в специальном формате (мой init для x86):

 dir /bin 0755 0 0 file /bin/busybox /bin/busybox 0755 0 0 file /bin/lvm /sbin/lvm.static0755 0 0 dir /dev 0755 0 0 dir /dev/fb 0755 0 0 dir /dev/misc 0755 0 0 dir /dev/vc 0755 0 0 nod /dev/console 0600 0 0 c 5 1 nod /dev/null 0600 0 0 c 1 3 nod /dev/snapshot 0600 0 0 c 10 231 nod /dev/tty1 0600 0 0 c 4 0 dir /etc 0755 0 0 dir /etc/splash 0755 0 0 dir /etc/splash/natural_gentoo 0755 0 0 dir /etc/splash/natural_gentoo/images 0755 0 0 file /etc/splash/natural_gentoo/images/silent-1680x1050.jpg /etc/splash/natural_gentoo/images/silent-1680x1050.jpg 0644 0 0 file /etc/splash/natural_gentoo/images/verbose-1680x1050.jpg /etc/splash/natural_gentoo/images/verbose-1680x1050.jpg 0644 0 0 file /etc/splash/natural_gentoo/1680x1050.cfg /etc/splash/natural_gentoo/1680x1050.cfg 0644 0 0 slink /etc/splash/tuxonice /etc/splash/natural_gentoo 0755 0 0 file /etc/splash/luxisri.ttf /etc/splash/luxisri.ttf 0644 0 0 dir /lib64 0755 0 0 dir /lib64/splash 0755 0 0 dir /lib64/splash/proc 0755 0 0 dir /lib64/splash/sys 0755 0 0 dir /proc 0755 0 0 dir /mnt 0755 0 0 dir /root 0770 0 0 dir /sbin 0755 0 0 file /sbin/fbcondecor_helper /sbin/fbcondecor_helper 0755 0 0 slink /sbin/splash_helper /sbin/fbcondecor_helper 0755 0 0 file /sbin/tuxoniceui_fbsplash /sbin/tuxoniceui_fbsplash 0755 0 0 file /sbin/tuxoniceui_text /sbin/tuxoniceui_text 0755 0 0 dir /sys 0755 0 0 file /init /usr/src/init 0755 0 0 

Я не использовал его на ARM, но он должен работать. /init – файл, который вы можете поместить в команды запуска. Отдых – это разные файлы (например, busybox и т. Д.).

Несколько вещей, которые приходят на ум:

  • Используйте tcpdump, wirehark или другой инспектор пакетов Ethernet, чтобы узнать, отправляет ли плата пакеты с неправильным адресом или вообще ничего не отправляет.
  • Что у вас есть на последовательной консоли (если есть)?
  • Попробуйте подключить удаленный отладчик ядра .
  • Попробуйте запустить внутри симулятора, если у вас есть симулятор, в котором вы можете воспроизвести свою проблему.
  • Вместо того, чтобы просто извлекать ядро, поместить загрузочную корневую файловую систему во флэш-память или загрузить корневую файловую систему на RAM-диск .

Это сообщение касается проблем сети, поднятых в вопросе, а не отладки ядра.

Если ваш коммутатор поддерживает протокол Spanning Tree Protocol (STP), имейте в виду, что STP не может активировать порт Ethernet на коммутаторе в течение 6 секунд или более, в то время как STP работает. Эта задержка может начаться каждый раз, когда хост сбрасывает порт Ethernet на хосте, что может происходить несколько раз между включением питания, запросом DHCP, когда ядро ​​загружает сетевые драйверы и т. Д. Это может помешать загрузке NFS для бездисковых систем , DHCP, kickstart и т. Д. И вызвало множество головных болей для многих системных администраторов. Для некоторых примеров см. RedHat Bug 189795 – Тайм-ауты DHCP во время Kickstart и это руководство PXE .

Большинство коммутаторов высокого класса, таких как коммутаторы Cisco и коммутаторы HP ProCurve, поддерживают STP, и он включен для всех портов из коробки.

  • mount.cifs vs NFSv3 для данных, разделяемых между двумя веб-серверами
  • VFS: не удается открыть корневое устройство «nfs» или неизвестный блок (0,255)
  • Неожиданно истекают тайники NFS
  • Группы пользователей Linux и разрешения файловой системы
  • AIX NFS mount.nfs: доступ запрещен сервером при установке
  • Владение / разрешения NFS
  • Предотвращение разрыва соединения NFS от замораживания клиентской системы
  • Redhat: «статус громкости gluster» показывает NFS-сервер на локальном хосте как N / A и Offline
  • Не удается запустить NFS в Centos 7: не удалось вызвать вызов метода: нет такого файла или каталога
  • Как загрузить загрузчик Fedora 25
  • установить ACL NFS V4 IBM
  • Linux и Unix - лучшая ОС в мире.