LINUX.ORG.RU

Доступ к консоли U-BOOT

 ,


1

1

Здраствуйте, товарищи! Подпаялся к uart некого устройства и получил доступ к логу загрузчика U-BOOT. Но вот незадача — время на прерывание даётся лишь 0с. То есть задержка bootdelay = 0, -1 или -2. Доступа к файловой системе естественно нет.

Загрузчик соответственно шлёт:

Hit key to stop autoboot('CTRL+C'): 0

Я пробовал слать заранее 0x27 , но это не дало результа.

Согласно документации всё плохо:

«U-boot Environment Variables»: bootdelay: After reset, U-Boot will wait this number of seconds before it executes the contents of the bootcmd variable. During this time a countdown is printed, which can be interrupted by pressing any key. Set this variable to 0 boot without delay. Be careful: depending on the contents of your bootcmd variable, this can prevent you from entering interactive commands again forever! Set this variable to -1 to disable autoboot. Set this variable to -2 to boot without delay and not check for abort.

перевод:

Переменные среды U-boot":

bootdelay: после сброса U-Boot будет ждать это количество секунд, прежде чем он выполнит содержимое переменной bootcmd. В это время печатается обратный отсчет, который можно прервать, нажав любую клавишу. Установите для этой переменной значение 0, загружайтесь без задержки. Будьте осторожны: в зависимости от содержимого вашей переменной bootcmd это может помешать вам снова вводить интерактивные команды навсегда! Установите для этой переменной значение -1, чтобы отключить автозагрузку. Установите для этой переменной значение -2, чтобы загружаться без задержки и не проверять прерывание.

В связи с вышеперечисленным вопрос:

Можно ли получить доступ к консоли загрузчика в таких обстаятельствах?


есть задержка bootdelay = 0

С ‘0’ вполне себе можно загрузится, ну раза с десятого ;)
Зажимаешь Ctrl+C заранее, если подобрать время зажатия, то можно загрузиться.
Может поробовать режим повтора на клавиатуре ускорить.

Бывают другие способы входа, наапример через кое-нибудь gpio.
У меня какой-то планшет вываливался в u-boot при определенном зажатии кнопок.

Можно загрузится в OS (возможно с альтернативного носителя) и поправить u-boot переменные.

А возможно, что китайцы не только убрали bootdelay, но и переназначили stdin/stdout/stderr и ты все равно ничего там не увидишь ;)

P.S. Железо озвучивай.

arson ★★★★★ ()
Ответ на: комментарий от arson

Железо озвучивай.

Полный лог и техническое описание здесь Думал в умной колонке armbian, на который можно поставить python, но похоже загружается headless? версия Андроид.

Un_ka ()
Ответ на: комментарий от Un_ka

Колонка китайская, это обнадеживает. Китайцы не заморачиваются с блокировкой.

RK3308

Еще лучше. Поверхностный поиск по даташиту - eFuse нет.

FS35ND02G

NAND QSPI. Надо только CS# подтянуть и он отключиться.

Общая идея: заблокировать NAND и получить доступ через USB с помощью rkdeveloptool.
Похожая плата: https://wiki.radxa.com/RockpiS/dev/sdnand-install (там другого типа nand)

arson ★★★★★ ()
Ответ на: комментарий от anonymous

Да, действительно: в ASCII таблице ctrl+c имеет код 03. Но прерывания загрузки нет. Лог не влезает в сообщение — как бы его прикрепить? По поводу блокировки памяти буду изучать эту возможность в datasheet’e на нее.

Un_ka ()
Ответ на: комментарий от arson

Только сейчас заметил, что лог в последнем сообщении прокручивается и там есть не хорошие строчки:

b’Vboot=1, SecureBoot enabled, AVB verify\r\n’
b’read_is_device_unlocked() ops returned that device is LOCKED\r\n’

Так, что secure boot там какой-то есть. Возможно ничего не получится.

arson ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.