Загрузка пользовательского скрипта u-boot - PullRequest
1 голос
/ 17 октября 2019

Я создал образ (с помощью Yocto и meta-tegra) и получил Jekon Nano devkit, работающий с двумя rootfs, которые использует обновление RAUC. В настоящее время я (временно во время тестирования) использую SPI-флешку Jetson Nano devkit для хранения среды u-boot.

У меня есть скрипт, который я успешно запустил на своем устройстве с tftp . Я также вручную набрал в каждой строке моего скрипта переменную окружения, сохранил ее и установил bootcmd для ее запуска. Но если мне нужно более одного устройства с этой загрузкой, я не хочу вручную вводить скрипт для каждого устройства, которое я создаю. Но я также не хочу, чтобы сервер tftp работал на стороне, чтобы иметь возможность загружаться.

Я хочу запустить свой скрипт полностью независимо и автоматически. Поэтому я думал о том, чтобы разместить скрипт в отдельном разделе и получить загрузку сценария оттуда. Но как мне сказать u-boot искать скрипт в определенном разделе? Могу ли я использовать source SCRIPT_PARTITION_OFFSET?

Я также видел, что стандартный boot.scr можно запустить из оболочки u-boot. Где находится этот boot.scr? Я не могу найти, где он создан или где он хранится.

*****************************************************РЕДАКТИРОВАТЬ:***************************************************** В качестве временного решения я поместил образ загрузочного скрипта в папку /boot/ и установилu-boot для поиска сценариев в этой папке на обоих rootfs, а затем запускайте его, если он может его найти.

Для этого решения мне все еще нужно отредактировать среду u-boot, чтобы u-boot загрузилсяпользовательский способ, так что это не решение, которое я могу использовать в долгосрочной перспективе. Я мог бы также сделать скрипт для запуска один раз через tftp, который установит bootcmd в качестве всего содержимого загрузочного скрипта.

Могу ли я редактировать исходный код u-boot с патчем? в котором есть мой сценарий? - если да, то как?

1 Ответ

0 голосов
/ 23 октября 2019

Как сказано в комментариях, я смог сделать патч для u-boot-tegra/include/config_distro_bootcmd.h, в котором переменная distro_bootcmd установлена ​​для содержимого моего скрипта. Когда я затем создаю свой образ yocto и загружаю свой Jetson Nano, я вижу, что переменная фактически установлена.

Этот способ должен работать для любой загрузки, а не только для Jetson Nano. Просто найдите переменную bootcmd в u-boot, которая запускается при загрузке по умолчанию, и исправьте ее.

...