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

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, у UniviewCtrl-Enter
  • “железячный метод” – замкнуть лапки 5 и 6 у микросхемы памяти в нужный момент.

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

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

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

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

Оцените статью
( 1 оценка, среднее 5 из 5 )
МихаТроник
Добавить комментарий