Отладка 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, и он включен для всех портов из коробки.

  • Лучше использовать локальный запуск rm -rf вместо nfs?
  • Пользователь LDAP не присутствует в желаемой группе
  • Отслеживание использования огромного буфера в Linux
  • Существуют ли дополнительные группы root, которые отличаются от обычных учетных записей для акций NFS?
  • Экспорт (через NFS) root (/) FS
  • Почему у меня есть только NST4 для чтения?
  • Виртуальный бокс с хостом / гостевой неделей с NFS
  • После перезагрузки логический том отсутствует
  • Вопрос о резервном копировании Qemu
  • Как настроить пользовательские квоты для дискового хранилища?
  • Использование NFS для gcc, Apache, PHP, MySQL, glibc
  • Interesting Posts

    Как сделать снимок сайта через скрипт оболочки?

    Команда rm возвращает сообщение 12345 Что это значит?

    Есть ли способ сохранить приложение после закрытия терминала, который его вызывает?

    Как получить Cuda 7, работающий над технологией Optimus в Linux.

    Как узнать, какой загрузчик вы используете в черном небольшом дистрибутиве linux?

    Просмотр журналов для неинтерактивного сценария оболочки?

    Что устанавливает дочерний STDERR, STDOUT и STDIN?

    Значит ли порядок перегородок?

    Стандартный рабочий процесс для оцифровки журналов или книг с использованием OCR при минимизации размера файла?

    Безопасный для пустых / etc / securetty?

    Как grep слово из файла и сохранить его в другой существующий файл?

    Как перейти от csh к bash в качестве оболочки по умолчанию

    Преобразование формы даты в unix

    ЖК-подсветка Sysfs в качестве теплового устройства

    Как сделать двойную загрузку live dvd

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