Вопрос или проблема
Возможно ли полностью загрузить Rpi CM4 + io-board с NVME? Я обновил загрузчик Rpi, и он хорошо загружает ядро без U-boot. Когда я переключаюсь на U-boot, он не загружает boot.scr, расположенный в том же FAT разделе. Он пытается загрузить с mmc, usb, но никогда не с nvme диска. В чем моя проблема?
Да, это возможно. Источник: https://www.jeffgeerling.com/blog/2021/raspberry-pi-can-boot-nvme-ssds-now
Я подозреваю, что вы неправильно настроили BOOT_ORDER=0xf25416
в конфигурации загрузчика, но я не могу это определить из вашего вопроса, на самом деле.
На момент написания этого текста, нет, U-Boot не поддерживает NVMe на Pi 5.
Ответ или решение
Краткое резюме:
Вы сталкиваетесь с тем, что загрузчик U-Boot не может загрузить файл boot.scr с NVMe на Raspberry Pi Compute Module 4 (CM4). Давайте подробно разберемся в возможных причинах данной проблемы и в решениях, которые могут помочь вам.
Фон
Использование NVMe-накопителей в сочетании с Raspberry Pi 4 и CM4 стало возможным благодаря обновлениям загрузчика. Комбинация с U-Boot позволяет более гибко управлять процессом загрузки, однако, как вы уже заметили, бывают ограничения, связанные с аппаратной поддержкой.
Возможные причины проблемы
-
Версия U-Boot:
- Убедитесь, что вы используете последнюю версию U-Boot, которая совместима с Raspberry Pi CM4. Старые версии могут не поддерживать NVMe, что может быть причиной, по которой U-Boot не находит устройство.
-
Настройка BOOT_ORDER:
- Как было упомянуто в обсуждении, необходимо правильно настроить переменную
BOOT_ORDER
. Вы установилиBOOT_ORDER=0xf25416
, что указывает приоритеты для загрузки. Убедитесь, что эта настройка сохранена и загружается при старте U-Boot. - При разбивке переменной
BOOT_ORDER
на отдельные биты можно понять, какие устройства пробуются при загрузке. Обратите внимание, что приоритет загрузки может быть упущен, если устройство NVMe встроено неправильно.
- Как было упомянуто в обсуждении, необходимо правильно настроить переменную
-
Совместимость и поддержка NVMe:
- На текущий момент (по состоянию на 2023 год) сообщается, что поддержка NVMe в U-Boot для Raspberry Pi 5 и, возможно, CM4, может быть ограниченной или отсутствовать. Проверьте официальную документацию U-Boot и репозитории на GitHub на предмет актуальных статусных обновлений.
-
Файловая система и путь:
- Убедитесь, что ваша файловая система на NVMe корректно настроена и содержит файл boot.scr в правильном месте. U-Boot должен иметь доступ к FAT-разделу. Проверьте, что файлы скопированы корректно и файл boot.scr имеет необходимую конфигурацию.
-
Проблемы с конфигурацией U-Boot:
- Возможно, ваши настройки U-Boot были некорректно отредактированы. Сравните ваши конфиги с примерами из документации или исходного кода U-Boot для Raspberry Pi.
Решения
-
Проверка версии U-Boot:
- Скачайте и установите самую последнюю версию U-Boot для Raspberry Pi CM4. Следите за совместимостью, указанной в документации.
-
Настройка BOOT_ORDER:
- Откройте командную строку U-Boot и выполните команду
printenv
для проверки текущих настроек. При необходимости внесите изменения:setenv BOOT_ORDER 0xf25416 saveenv
- Откройте командную строку U-Boot и выполните команду
-
Тестирование загрузки:
- Попробуйте выполнить вручную команды загрузки в U-Boot, чтобы исключить проблемы с boot.scr. Например:
fatload nvme 0:1 ${kernel_addr_r} uImage bootm ${kernel_addr_r}
- Попробуйте выполнить вручную команды загрузки в U-Boot, чтобы исключить проблемы с boot.scr. Например:
-
Отладка:
- Включите отладочные сообщения в U-Boot, чтобы отслеживать процесс загрузки и выявить, где происходит сбой.
Заключение
Решение проблем с загрузкой U-Boot с NVMe на Raspberry Pi CM4 может требовать системного подхода, начиная с проверки версии программного обеспечения и заканчивая настройками конфигурации. Убедитесь, что все пути, файлы и переменные среды настроены правильно, а также проверяйте актуальную информацию о поддержке NVMe в U-Boot.
Полезные ссылки
Если проблемы сохраняются, сообщите о них на форумах или ресурсах, посвященных Raspberry Pi, где эксперты могут предложить дополнительные советы и решения.