Если появилось желание или необходимость поковыряться с прошивками различных девайсов, конкретно камер и регистраторов, то не обойтись без специальных программных и аппаратных штук и аксессуаров к ним.
Адаптеры
Использую в работе только два девайса:
CH340G – только адаптер USB-TTL, а CH341A объединяет в себе функции адаптера и программатора и работает в том или ином режиме в зависимости от положения конфигурационной перемычки.
Адаптер CH340G или CH341A в режиме адаптера применяются для подключения к камере/регистратору через интерфейс UART. Этот вариант подходит в тех случаях, когда есть возможность решить задачу через загрузчик, он же бутлоадер, он же бут.
Коннекторы
Адаптер – это только адаптер, даже если он при этом ещё и программатор. Напрямую к плате его не подключить, соответственно, понадобятся какие-то коннекторы. Для того, чтобы понять какие именно, надо найти на плате этот самый UART. Не всегда это именно разъём – бывает, что и просто контактные отверстия в плате. Поскольку в основном работаю с камерами Hikvision и Dahua, то и говорю прежде всего о них. Готовых подходящих коннекторов не нашёл, поэтому собирал из двух частей. Получились вот такие варианты:
- Коннектор ZH 1.5 4p – используется для устройств Hikvision;
- Коннектор JST 1,25 4p – используется для устройств Dahua.
Перед подключением коннектора надо точно знать, какие из пинов нам нужны. Мультиметром определяем землю, а два, которые рядом – TX и RX. Последовательность проводов на плате и адаптере одна и та же, кросс делать не надо. Подробнее – в описании коннекторов.
Софт
Понадобится следующий комплект программного обеспечения:
- HyperTerminal или Putty – программа для работы с системой девайса через интерфейс UART.
- Tftpd64 – TFTP-сервер для отправки и приёма файлов.
- HxD – шестнадцатеричный редактор.
Загрузчик
Адаптер подключается к разъёму UART платы и к USB-входу компьютера, устанавливаются драйвера. На компьютере запускается программа-терминал, в ней выбирается виртуальный COM-порт и задаются его настройки. Всё по умолчанию, только скорость 115200. Дальше подаётся питание на девайс и в этот момент в окне терминала должен побежать лог загрузки. Нужно его остановить, чтобы попасть в бут. Для этого нужно нажать клавишу или сочетание клавиш. Возможны варианты:
- любая клавиша
- определённая клавиша, например у Dahua это *
- сочетание клавиш, например у Hikvision это Ctrl-U, у Uniview – Ctrl-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 – перезапуск системы.
Дальше говорить обобщённо сложно, лучше конкретно и сразу с реальными примерами. Это будет в следующих статьях.
Нужно учитывать, что все манипуляции, как аппаратные, так и программные потенциально опасны! В лучшем случае устройство перестанет запускаться, но сохранит базовые функции работы с памятью и работоспособность можно будет восстановить. В худшем случае устройство превратиться в кирпич или сгореть.