Восстановление камеры RVi-1NCD2020 (Dahua) через UART

Видеонаблюдение

При неудачной прошивке IP-видеокамера может окирпичиться, т.е. перестаёт транслировать видеопоток, становится недоступной через веб-интерфейс и не определяется поисковыми утилитами. Как правило, производитель закладывает в прошивку механизм восстановления, но не всегда это просто и быстро.

Сначала опишу, как я дошёл до жизни такой, но, если это не очень интересно, то переходите сразу к пункту об изготовлении переходника — дальше только по делу и никакой лирики.

Предыстория

Не так давно выполняли монтаж по чужому проекту, где было использовано оборудование RVi — регистратор, PoE-коммутаторы и IP-видеокамеры. Если бы проект делал я, то никогда бы не выбрал такой вариант, ибо дорого и глючно.

Запуск системы

Запуск системы в работу прошёл без проблем. За исключением того, что на мониторе, подключенном к самому регистратору, нельзя было настроить те режимы экрана, которые хотел заказчик. Самое смешное, что выбор режимов есть, но вот камеры в них расположены по-порядку. Этот порядок можно менять, но он один для всех режимов. Сложно это описать словами, но, поверьте, что это бред. На компьютере, в ПО удалённого рабочего места, режимы экрана можно сделать любые, но родное ПО RVi Оператор 2, глючное и ресурсоёмкое. Пришлось ставить ПО от Dahua SmartPSS, поскольку регистратор и камеры, на самом деле, производства этой компании. Со SmartPSS позже вылезла странная проблема, которую пока не победили. Периодически, со слов заказчика — после каждого обновления Windows, эта софтина перестаёт запускаться. Никаких ошибок не выдаёт ни на экран ни в лог, просто не запускается. Если снести и установить заново, продолжает работать до следующего раза. Скорее всего, это проблема конкретного компьютера — будем разбираться.

Зависания

Через некоторое время эксплуатации выяснилось, что камеры периодически зависают. Снова возвращаются к работе только после сброса питания. Коммутаторы в проекте были самые дешёвые, соответственно, ни о каком автоматическом или удалённом перезапуске речи нет. Надо было что-то делать. Первое, что приходит в голову — обновить прошивку! Тем более, что однажды, после обновления прошивки на другой камере их же производства, заметил новую опцию: Автоперезагрузка, что во-первых, наводит на мысль, что подобная проблема разработчику известна, а во-вторых, даёт надежду на решение имеющейся проблемы. Костыль конечно, но раз такая возможность предусмотрена самим разработчиком, грех не воспользоваться.

Новая прошивка

Полез на сайт производителя, нашёл страницу своей камеры и увидел, что предлагается две версии прошивки.

Выбрал, понятно, последнюю (нижняя ссылка) и это было моей ошибкой. Скачал прошивку, открыл соответствующий раздел веб-интерфейса камеры, скормил ей прошивку и принялся ждать результата. Ждать надо было несколько минут, но я ж парень лихой — решил не терять зря время и прошить ещё одну камеру, что и сделал. Ну как сделал — попытался. Хорошо, что не стал прошивать остальные.

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

Поддержка RVi

Написал письмо в поддержку с объяснением ситуации. Ответа не получил. Позвонил по телефону, пообщался, но ничего полезного для себя не почерпнул. Только общие фразы и стандартные советы. Потом воспользовался возможностью открыть обращение в поддержку на сайте. Вот тут всё получилось — обстоятельно пообщался с одним из сотрудников, который выслал мне прошивку для восстановления через UART и инструкцию. Хотя присланная прошивка оказалась не та, а инструкция устаревшая, но порадовало то, что сотрудники поддержки RVi верят в людей и не предлагают сразу отправить нерабочую камеру к ним, а помогают восстановить её своими силами. Возможно, с их помощью, я потратил бы меньше времени на самостоятельные изыскания, но взялся я за это дело в воскресенье, когда поддержка была на выходном.

Проблема с подключением

Возникла новая проблема — на плате не распаяно гнездо UART и в местных магазинах радиотоваров подходящего я не нашёл. Пробовал колхозить, но не очень получалось и было не очень понятно — то ли что-то с контактом, то ли с софтом. Заказал разъём с Али. Точнее сразу десяток, потому что продавались только десятками и хотел впаивать в гнездо плату камеры, а камер несколько. Вариантов у поставщика много, но к этой камере подходит 4Pin JST 1.25mm.

Изготовление переходника

После получения посылки с комплектами разъёмов изготовил переходник для USB-TTL адаптера, припаяв к одним проводкам другие проводки тех же цветов и завернув всё это в термоусадку. Красный провод +5В нам не понадобится, поэтому его просто засунул под термоусадку, чтобы не болтался.

Восстановление камеры RVi-1NCD2020 (Dahua) через UART
USB-TTL адаптер с переходником

Сначала я использовал другой адаптер CH340G. Мне он больше нравится, т.к. компактнее. Но с ним не получалось остановить загрузку камеры. Благо был ещё и универсальный CH341A, который брал для заливки дампов, но тут он пришёлся, как нельзя кстати и спас ситуацию. Стоит помнить, что не все адаптеры одинаково полезны.

Распиновка контактов UART на плате камеры отличается от распиновки контактов USB-TTL адаптера, а именно: RX и TX поменяны местами. Поэтому при подключении последовательность проводов будет одинаковой — чёрный, жёлтый зелёный. Главное правильно определить контакт GND на плате. Если подключить разъём зеркально, то на контакт TX адаптера придёт +5В и адаптер выйдет из строя.

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

Восстановление камеры RVi-1NCD2020 (Dahua) через UART
Подключение к плате

Кроме подключения камеры через адаптер, её ещё нужно подключить сетевым кабелем к компьютеру или коммутатору. В наличии должен иметься и блок питания на 12В.

Прошивка

Прошивка представляет собой один файл с расширением .BIN, но, по факту, это ZIP-архив с изменённым заголовком: с PK на DH. это можно увидеть и исправить, открыв этот файл в HEX-редакторе. С другой стороны, архиватор 7-Zip открывает и распаковывает такой файл и с неправильным заголовком. По этому пути и пойдём.

Инструменты

  1. 7-Zip — архиватор для распаковки прошивки;
  2. Cisco TFTP-сервер — TFTP-сервер для передачи файлов;
  3. NCOM — программа для работы через UART;
  4. ConfigTool — поисковая утилита для камер Dahua.

Полезные ссылки

  1. RVi_IPC_V2.680.00 — проверенная прошивка;
  2. RVi_IPC_V2.680.00_unpacked — уже распакованная прошивка;
  3. Dahua IPC unbricking / recovery over serial UART and TFTP — топик на буржуйском форуме, который очень помог в понимании, что и как делать.
  4. Краткая пользовательская инструкция по быстрому и легкому восстановлению прошивок IP-камер Dahua / восстановление по TFTP — это описание способа восстановления без использования UART. У меня камера была на руках, как и USB-TTL адаптер, поэтому сделал по своему, хотя в поле более подходит другой вариант. Если доберусь, то переработаю и опишу своими словами.

Подготовка к прошивке

  1. Скачать и установить 7-Zip;
  2. Скачать и распаковать Cisco TFTP-сервер;
  3. Скачать и распаковать NCOM;
  4. Скачать и распаковать ConfigTool;
  5. Скачать и распаковать RVi_IPC_V2.680.00;
  6. Щёлкнуть правой кнопкой по файлу RVi_IPC_V2.680.00.bin и выбрать из контекстного меню 7-Zip->Распаковать в «RVi_IPC_V2.680.00/»;
  7. Подключить камеру к сетевому адаптеру компьютера или коммутатору;
  8. Подключить USB-TTL адаптерк камере и компьютеру и через диспетчер устройств посмотреть какой виртуальный COM-порт он занимает;
  9. Запустить Cisco TFTP-сервер и открыть окно параметров через меню View->Options, в поле ввода TFTP server root directory выбрать папку, в которой лежат файлы распакованной прошивки;
  10. Запустить NCOM и открыть окно параметров COM-порта через меню Options->Com, выбрать COM-порт, к которому подключен USB-TTL адаптер и задать скорость 115200;

Алгоритм прошивки

  1. Подать питание на камеру и одновременно с этим быстро нажимать клавишу * для остановки загрузки;
  2. В консоли вбить команду print и посмотреть параметры autolip (адрес камеры, обычно 192.168.1.251) и serverip (адрес TFTP-сервера, обычно 192.168.254.254)
  3. В консоли выполнить команду setenv serverip 192.168.1.128, где 192.168.1.128 — это адрес компьютера, на котором запущен TFTP-сервер;
  4. Выполнить команду save для сохранения внесённых изменений в постоянной памяти;
  5. Выше в выдаче команды print есть список макросов для прошивки, а среди файлов распакованной прошивки есть файл в названием Install и если открыть его блокнотом, то можно увидеть список и порядок запуска этих макросов;
  6. Выполнить команду run da;
  7. Выполнить команду run dp;
  8. Выполнить команду run dk;
  9. Выполнить команду run dw;
  10. Выполнить команду run du;
  11. Выполнить команду run dd;
  12. Выполнить команду reset;
  13. Запустить ConfigTool и ждать появления камеры в списке, периодически нажимая на кнопку обновления.
  14. Прошивка не сбрасывает камеру на заводские настройки, но сделать это рекомендуется — замыканием контактов RESET в течение 10 секунд.

Резюме

Камера восстановлена! А самое полезное во всей этой истории то, что теперь я знаю, как восстанавливать камеры Dahua, а у Ростелекома такие камеры тоже есть. Правда, пока не попадались.

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