Загрузка с сети RPi4B с Ubuntu 24.04

Вопрос или проблема

Я пытаюсь загрузить Raspberry Pi 4B с Ubuntu 24.04 по сети. Я скачал

ubuntu-24.04.1-preinstalled-server-arm64+raspi.img.xz

но мне не удалось успешно загрузиться с него. Загрузка останавливается до initramfs, и происходит паника ядра с сообщением о том, что /sbin/init не найден.

Под руководством моего верного помощника, ChatGPT, я проверил vmlinuz на загрузочном разделе и обнаружил, что отсутствуют вхождения строк “CONFIG_NFS*”, что говорит о том, что NFS не был скомпилирован. Также его нет в vmlinuz на корневом разделе. Если это действительно так, то попытка загрузки по сети с NFS обречена на неудачу.

Может ли кто-нибудь это подтвердить? И знает ли кто-нибудь, где можно скачать vmlinuz с встроенной поддержкой NFS? Я бы очень не хотел собирать свой собственный.

Я вносил изменения в initrd.img для поддержки NFS, но initrd.img вообще не вызывается (я знаю это, потому что я получаю точно такую же панику ядра, если убираю ссылку на него из config.txt).

Ответ или решение

Чтобы понять, почему ваша Raspberry Pi 4B не может загружаться по сети с Ubuntu 24.04, давайте детально разберем задачу и постараемся найти оптимальное решение.

Проблема, с которой вы столкнулись, связана с отсутствием поддержки NFS в текущем ядре Linux, используемом для загрузки Raspberry Pi. Это означает, что попытки загрузить устройство с помощью NFS обречены на неудачу, поскольку ядро не имеет необходимых модулей для этого процесса.

Основные шаги и возможные решения:

  1. Проверка конфигурации ядра:
    Вы уже установили, что строки "CONFIG_NFS*" отсутствуют в файле vmlinuz. Это очевидно подтверждает, что поддержка NFS не включена в ядро. Для загрузки по сети через NFS ядро должно поддерживать NFS-клиента.

  2. Получение ядра с поддержкой NFS:
    К сожалению, если ваше текущее ядро действительно не поддерживает NFS, то вариантов немного. Вы можете попробовать следующие решения:

    • Скачивание предварительно скомпилированного ядра: Попробуйте найти репозиторий или источник, где доступны сборки ядра с поддержкой NFS для Raspberry Pi. Возможно, кто-то из сообщества уже собрал ядро с необходимыми модулями.
    • Компиляция собственного ядра: Если нет готовых решений, придется собрать ядро вручную. Процесс компиляции может быть трудоемким, но вы получите ядро, на 100% соответствующее вашим требованиям.
  3. Интеграция initrd.img:
    Поскольку вы отметили, что initrd.img не инициируется, убедитесь, что путь к файлу в конфигурации config.txt указан правильно. Даже если ядро поддерживает NFS, неспособность использовать initrd может вызвать проблемы. Проверьте:

    • Правильность путей в config.txt.
    • Корректность начального загрузочного окружения (включена ли загрузка initrd).
  4. Альтернативные способы загрузки:
    Если проблема продолжает возникать, подумайте о других подходах к сетевой загрузке или об использовании различных протоколов, таких как TFTP, которые могут быть полезны в данной ситуации.

Оптимизация и заключение

SEO-оптимизация вашего запроса может привлечь внимание к вашему вопросу, используя релевантные ключевые слова и фразы, такие как "сетевая загрузка Raspberry Pi", "ядро Linux с поддержкой NFS" и "компиляция ядра для Raspberry Pi". Это поможет в будущем легче найти данное решение людям с аналогичными проблемами.

Резюмируя, проблема с сетевой загрузкой Raspberry Pi связана с отсутствием поддержки NFS в текущем ядре. Рекомендуется поиск предварительно скомпилированного ядра или воспитание ручной сборки с требуемыми настройками.

Оцените материал
Добавить комментарий

Капча загружается...