Найти в Дзене
Allsafe ;)

Снятие и анализ логов загрузки Яндекс колонок

Статья черновик и дополняется, но уже вы наверняка увидите свой случай.

Статья возможно кому-то пригодится, т.к. описанные проблемы встречаются не редко у колонок производства Яндекс, да и вообщем то других построенных на процессорах Amlogic.

Речь пойдет о следующих моделях:

  • Мини 1
  • Лайт (YNDX-00025) - USB Type-C
  • Мини 2 с часами и без (YNDX-00020/YNDX-00021)
  • Макс (YNDX-0008), Макс с ZIgBee (YNDX-00053)
  • Модуль - USB Type-C
  • Миди - USB Type-C
  • Мини 3 -USB Type-C
  • Лайт 2 -USB Type-CД

Для моделей оснащенных USB Type-С снятие лога довольно простое, требуется изготовить недорогой шнур и тестера разъемов type-c и usb-uart переходника например на базе ch-340 или pl2303.

Распиновка следующая: А2-А3 TX-RX UART ; A6,A7 USB ; A1- GND; A11-BOOT0 .

Переходник. Для проверки Type-C
Переходник. Для проверки Type-C

Для други моделей требуется добраться до нужных точек:

  • Мини 2 - TP28,TP29 (на основной пате)

Далее настраиваем подключение через любую программу способную читать вывод UART и отображать в виде текста, привожу пример настройки putty (windows) и cKermit(linux,macos).

Экран настройки подключения Putty
Экран настройки подключения Putty

Для большинства колонок из списка скорость обмена составляет 115200 кбит, для Миди - скорость 921600.

Когда получили лог загрузки можно его анализировать. Нанчем с описания этапов загрузки, их несколько:

  • BL1 - жестко вшит в процессор и умирает только вместе с процессором (стереть нельзя)
  • BL2 - первичный загрузчик ,настраивает ОЗУ и запускает остальные этапы
  • BL3x- в нем имеются BL31 и BL33 (U-boot)

BL1 начинает выполняться сразу же по включению и ищет подходящие источники загрузки. На экране первой строкой будет такая вот надпись

AXG:BL1:d1dbf2:a4926f;FEAT:F0DC31BC:2000;POC:D;USB:0;EMMC:800;NAND:0;READ:0;0.0;0.0;CHK:0;

Жирным выделена важная информация, а именно :

NAND:0. - поле отображает доступность источника загрузки

READ:0;0.0;0.0; - поле проверки правильности работы интерфейса

CHK:0; - проверка загрузчика

Amlogic указывает на успешное завершение проверок значением - 0. Любые отличные от 0 значения это не правильное функционирование. Теперь опишу каждую из позиций подробнее.

Проверка источника загрузки(NAND:0), показывает что источник загрузки определен и процессор попытается с него запустить систему. Далее следует проверка правильности работы интерфейса (READ), которая читает микросхему NAND тем сама проверяя функционирование интерфейса. Если в первых двух полях (NAND,READ) наблюдается не нулевое значение, то вероятно проблемы в пайке или в целостности самой микросхемы.

CHK - финальная проверка в этой цепочке, Bootrom читает из источника первичный загрузчик и проверяет его. Любое не нулевое значение обозначает что первичный загрузчик (BL2) поврежден или не подписан, его нужно заменить. Замена производится прошивкой раздела Bootloader.

Пример отуствия источника загрузки
Пример отуствия источника загрузки

BL2. Пройдя первую проверку начинаются следующий этап. Первичный загрузчик пробует инициализировать RAM, подготавливает и загружает U-boot.

Оперативная память проверяется в несколько заходов, процессор пробует различные поддерживаемые варианты памяти и в случае успеха покажет сообщение как показано ниже:

bist_test rank: 0 20 09 37 25 10 3a 23 0c 3a 23 0d 39 00 00 00 00 00 00 00 00 00 00 00 00 702 - PASS

Rank0: 256MB(auto)-2T-13

AddrBus test pass!

При проблемах произойдет перебор всех известных вариантов памяти и дальше примерно такое вот сообщение "All ddr config filed" . Следует проверить микросхему DDR или присутсвует где то плохая пайка на CPU или RAM.

Неудачная инициализация RAM
Неудачная инициализация RAM

Если проверка ОЗУ прошла успешно то начинается загрузка и проверка BL3x.

Один из основных примеров, повреждение таблицы FIP.Эта ошибка отмечена характерной надписью FIP HDR CHK: fffffffffff . Исправляется заменой раздела TPL. Без нее BL2 не располагает информацией о следующих этапах загрузки (BL3x).

Пример. Поврежден u-boot
Пример. Поврежден u-boot

Важное предупреждение, переброска микросхем памяти с работающей колонки даст частичный эффект оживления! Не производите заливку полностью чужого дампа на флешку колонки! Колонка заведется, но перестанет авторизоваться в умном доме.

Надпись no key found говорит о повреждении какой то части хранилища и авторизация в умном доме вероятно уже не случится.

Повреждение ключей
Повреждение ключей

Связано это с уникальными данными расположенными на флешке. Описание разделов и т. д. приведу в следующих статьях.

В статье рассмотрены основные проблемы встречающиеся в практике, все эти ошибки и сообщения стандарты для процессоров Amlogic. Заходите в нашу группу телеграмм @yandexrem , там есть опытные мастера и информация которая поможет оживить колонку.