Работа с загрузчиком

OpenIPC

Если появилось желание или необходимость поковыряться с прошивками различных девайсов, конкретно камер и регистраторов, то не обойтись без специальных программных и аппаратных штук и аксессуаров к ним.

Адаптеры

Использую в работе только два девайса:

  • CH340G — адаптер;
  • CH341A — программатор.

CH340G — только адаптер USB-TTL, а CH341A объединяет в себе функции адаптера и программатора и работает в том или ином режиме в зависимости от положения конфигурационной перемычки.

Адаптер CH340G или CH341A в режиме адаптера применяются для подключения к камере/регистратору через интерфейс UART. Этот вариант подходит в тех случаях, когда есть возможность решить задачу через загрузчик, он же бутлоадер, он же бут.

Коннекторы

Адаптер — это только адаптер, даже если он при этом ещё и программатор. Напрямую к плате его не подключить, соответственно, понадобятся какие-то коннекторы. Для того, чтобы понять какие именно, надо найти на плате этот самый UART. Не всегда это именно разъём — бывает, что и просто контактные отверстия в плате. Поскольку в основном работаю с камерами Hikvision и Dahua, то и говорю прежде всего о них. Готовых подходящих коннекторов не нашёл, поэтому собирал из двух частей. Получились вот такие варианты:

Перед подключением коннектора надо точно знать, какие из пинов нам нужны. Мультиметром определяем землю, а два, которые рядом — TX и RX. Последовательность проводов на плате и адаптере одна и та же, кросс делать не надо. Подробнее — в описании коннекторов.

Софт

Понадобится следующий комплект программного обеспечения:

  • HyperTerminal или Putty — программа для работы с системой девайса через интерфейс UART.
  • Tftpd64TFTP-сервер для отправки и приёма файлов.
  • HxD — шестнадцатеричный редактор.

Загрузчик

Адаптер подключается к разъёму UART платы и к USB-входу компьютера, устанавливаются драйвера. На компьютере запускается программа-терминал, в ней выбирается виртуальный COM-порт и задаются его настройки. Всё по умолчанию, только скорость 115200. Дальше подаётся питание на девайс и в этот момент в окне терминала должен побежать лог загрузки. Нужно его остановить, чтобы попасть в бут. Для этого нужно нажать клавишу или сочетание клавиш. Возможны варианты:

  • любая клавиша;
  • определённая клавиша, например у Dahua это *;
  • сочетание клавиш, например у Hikvision это Ctrl-U.

После того, как загрузка остановлена и видим приглашение ввода, можно вводить команды. Основное, что может понадобиться:

  • help — чтобы понять, какие команды в загрузчике есть;
  • printenv — вывести переменные окружения;
  • setenv — задать переменную окружения;
  • saveenv — сохранить переменные окружения;
  • mw.b — запись в оперативную память;
  • sf probe, sf read, sf write — работа с постоянной памятью NOR;
  • nand read, nand write.i — работа с постоянной памятью NAND;
  • tftp — приём/передача данных посредством протокола TFTP;
  • go — передача управления на адрес в оперативной памяти;
  • bootm — загрузка ядра с адреса в оперативной памяти;
  • reset — перезапуск системы.

Дальше говорить обобщённо сложно, лучше конкретно и сразу с реальными примерами. Это будет в следующих статьях.

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

Оцените статью
( Пока оценок нет )
МихаТроник
Добавить комментарий