Найти в Дзене
Пикабу

Восстановление IP камеры Dahua для домохозяек

1. Восстановление разъемов.

Если злые люди варварски перерезали провод, то будем обжимать. Сопоставление цвета проводов камеры и UTP кабеля:

Бело-оранжевый - коричневый оранжевый - фиолетовый бело-зеленый - синий синий - желтый бело-синий - желтый зеленый - оранжевый бело-коричневый - серый коричневый - серый.

Да, я знаю, что изначально на камере было гнездо, а не разъем. Но обжимать удобнее, чем городить розетку. Плюс переходник/адаптер Gembird RJ45 - RJ45 (TA350-1) нивелирует вмешательство в конструкцию.

Так как камера питается не только по PoE, то для подключения внешнего блока питания используются черный и красный провода - это + и - 12В. Я использую разъем SarmatT SR-JDC-PVF (00082766). Они дешевле и продаются за углом.

Восстановили разъем, но камера не работает? Проверяем индикацию на коммутаторе (switch), а так же пингуем 192.168.1.108 (это аварийный ИП адрес камеры). У меня самый простой и дешевый PoE коммутатор Optimus UM1-E10/8P (10 портов, 8 из которых могут питать клиента). Есть индикация питания и линка.

Получилось? Хорошо. Значит загрузочный сектор живой. Переходим к пункту 2. Не получилось? Вам нужен дамп и программатор, но это за рамками этой инструкции.

.
.

2. Восстановление прошивки. - Найти прошивку для вашей камеры.

Я нашел неплохую коллекцию на ftp.asm.cz/Dahua/kamerove_systemy/Firmware/. Только не всё так просто. Видимо на одну модель приходится несколько ревизий и надо сверять HWID камеры и прошивки, т.к. название может совпадать, а внутрянка - нет. Сегодняшний клиент имет HWID IPC-HFW2220M хотя модель devalias=DH-IPC-HFW1220SP-0360B. И подходит ему прошивка DH_IPC-HX1XXX-Eos3_Eng_P_V2.420.0000.4.R.20160505 (каталог fttp: //ftp.asm.cz/Dahua/kamerove_systemy/Firmware/2017_a_sta...).

Почему HWID=IPC-HFW2220M, модель=IPC-HFW1220SP, а прошивка IPC-HX1XXX-Eos3? Ну это же элементарно. По-то-муч-то! Минутка юмора окончена. Продолжаем.

- Подключиться к консоли камеры.

Вариант а) Никуда непосредственно подключаться не надо. Камера при загрузке устанавливает свой IP адрес 192.168.1.108 и через шлюз 192.168.1.1 пытается скачать прошивку с tftp сервера с адресом 192.168.254.254. Это видно по логу загрузки:

Hisilicon ETH net controler MAC: E0-50-8B-FC-5B-19 UP_PORT: phy status change: LINK=UP: DUPLEX=FULL: SPEED=100M TFTP from server 192.168.254.254; our IP address is 192.168.1.108; sending through gateway 192.168.1.1 Download Filename 'upgrade_info_7db780a713a4.txt'.

Если точнее, то скачать она пытается не прошивку, а файл 'upgrade_info_7db780a713a4.txt'. А вот в нём уже инструкции по скачиванию прошивки. Формируется это файл как то хитро, т.к. в первых двух строка содержит CRC и MagicString, а дальше уже идут команды обновления блоков памяти. На просторах интернета (а точнее на форуме https://ipcamtalk.com/threads/dahua-ipc-easy-unbricking-reco...) я скачал файл 'Dahua_TFTPBackup.zip', который содержит службу tftp сервера и утилиту формирования этого файла.

Это не путь тру админа. Только хардкор, только вариант б.

Вариант б) UART.

Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известен из семейства UART протокол RS-232 (в народе – COM-порт)

На большинстве сетевых (и не только) устройств он присутствует в нераспаянном виде (4 контактных площадки на плате устройства). Вот к нему мы и будем подключаться с помощью преобразователя USB-SERIAL (в нашем случае с TTL). Выглядит он, как флешка без корпуса с оголенными контактами. Все контакты на преобразователе обычно подписаны, чего не скажешь о контактах устройства. Ну, будем искать. Берем мультиметр, включаем режим "прозвона" и ищем контакт "земля". Один щуп мультиметра прислоняем к корпусу или болту крепления, другим по очереди прикасаемся к контактам порта на плате. Какой зазвенел, того и нарекаем "землей".

-3

Теперь изменяем режим мультиметра на измерение постоянного напряжения до 20 Вольт. Один щуп прислоняем к контакту "земля" (ну или опять же корпусу/болту), а вторым к остальным трем контактам. Какой контакт показал 3, 3 или 5 вольт, того нарекаем питанием и больше его не трогаем. Остальные два контакта нужны для передачи (TX) и приема (RX) данных. У нашего клиента пины слева направо получились RX, TX, GND, 3V3.

Соединяем "землю" (GND) контроллера и платы, RX контроллера с TX платы и, наоборот, TX контроллера с RX платы. Подключаем контроллер к компьютеру, устанавливаем драйвера, смотрим номер COM порта в Диспетчере Устройств и подключаемся к нему на скорости 115200 с помощью putty (или аналогичной утилитой).

-4

Выдыхаем и подаем на камеру питание. В черном окошке putty побежали белые строки лога загрузки камеры? Вы молодец. Но открывать ром рано. Продолжаем.

Для прерывания процесса загрузки нажимаем и держим * (ну та, которая на цифровом блоке клавиатуры или под Shift+8). Вводим команду printenv и получаем конфигурацию нашей камеры (собственно здесь и смотрится HWID). Совпадает с HWID в прошивке? Где смотреть? Млин, забыл, сек. Файл DH_IPC-HX1XXX-Eos3_Eng_P_V2.420.0000.4.R.20160505.bin открываей архиватором 7zip и смотрим (нажатием F3) содержимое файла hwid. Теперь совпадает? Идем дальше. Не совпадает? Ищем другую прошивку.

Командой setenv устанавливаем адрес камеры и tftp сервера:

setenv ipaddr 192.168.49.60 - Адрес камеры setenv serverip 192.168.49.130 - адрес компа с tftp сервером.

В корень tftp сервера разархивируем прошивку и начинаем прошивать блоки памяти камеры. Команды нам подскажет вывод printenv:

da=tftp 0x82000000 dhboot.bin.img; flwrite; tftp dhboot-min.bin.img; flwrite dr=tftp 0x82000000 romfs-x.squashfs.img; flwrite dk=tftp 0x82000000 kernel.img; flwrite du=tftp 0x82000000 user-x.squashfs.img; flwrite dw=tftp 0x82000000 web-x.squashfs.img; flwrite dp=tftp 0x82000000 partition-x.cramfs.img; flwrite dc=tftp 0x82000000 custom-x.squashfs.img; flwrite up=tftp 0x82000000 update.img; flwrite tk=tftp 0x82000000 uImage; bootm pd=tftp 0x82000000 pd-x.squashfs.img; flwrite.

Это алисы (синонимы) и сами команды. Нам надо последовательно запустить:

run dr run dk run du run dw run dp run dc run up run tk run pd.

------------------------------------ ВНИМАНИЕ --------------------------------------

Команда run da специально исключена из списка к выполнению, т.к. прошивать загрузчик потенциально опасно. Неверный файл или отключение питания при прошивке, могут повлечь "окирпичивание" (состояния практически полной неработоспособности) устройства. А если по умному:

Образ dhboot.bin img, является загрузчиком и его обновление может привести к неожиданным результатам, как невозможность использования этого метода восстановления по причине удаления команд из среды системных переменных загрузчика или внесения проверки цифровой подписи для файловой системы прошивки. Поэтому обновление этого блока нужно выполнять взвешенно.

------------------ Конец блока ВНИМАНИЕ -------------------------------------------

Команды можно конечно и писать полностью:

tftp 0x82000000 pd-x.squashfs.img; flwrite.

Но мы говорим привет Лиге Ленивых и продолжаем упражнение.

А продолжать осталось всего ничего. Удаляем конфигурацию камеры (намекну, так и пароль можно сбросить) и перезагружаем камеру командами:

cfgRestore reset.

Список всех доступных команд можно посмотреть командой 'help'.

Всё. Пара-пара-пам.

P.S. В дальнейшем запросил у саппорта (cis_support@dahuatech.com) актуальное обновление прошивки. Прислали оперативно DH_IPC-HX1XXX-Eos3_Eng_P_V2.420.0000.11.R.20170612 и даже с русским интерфейсом.

P.P.S. Для тех, кому не хватило, есть полезный комментарий со ссылкой на второй уровень погружения в тему #comment_269937127.

Пост автора mikleru.

Комментарии