Краткая пользовательская инструкция по быстрому и легкому восстановлению прошивок IP-камер Dahua / восстановление по TFTP

Volodymyr

Member
В общем это урезанный перевод оригинальной статьи по восстановлению камер DAHUA (дада, я перевел для тех кто не знает инглиша, и это заняло у меня пару минут времени в надежде на то что это кому то поможет решить проблему с камерой)
оригинал - линк на оригинальный пост

Если ваша камера хоть как то подает признаки жизни (включается и реагирует светодиодом) это скорее всего значит у нее рабочий bootloader и соответственно можно легко восстановить прошивку, и вот почему:
Камера пытается загрузить файл "upgrade_info_7db780a713a4.txt" с TFTP сервера который расположен по адресу 192.168.254.254 и выполняет команды которые указаны в bootloader (U-Boot) оболочка.

- переходим непосредственно к процессу подготовки оборудования для восстановления прошивки (нужен комп, камера, и LAN кабель)

Шаг 1, Настраиваем сеть корректно.
IP камеры по умолчанию 192.168.1.108 (у вас может быть другой, у меня был 192.168.1.251 по LAN и 192.168.1.144 по WIFI ), маска подсети 255.255.255.0.
Камера использует 192.168.1.1 как шлюз чтобы соединиться с 192.168.254.254.
(Она отсылает пакеты через подсеть 192.168.254.254 на 192.168.1.1потому что она все подсети)

Два варианта достучатся до камеры от компа (или наоборот).
Вариант 1)
Настроить на вашем роутере проброску всех пакетов с 192.168.254.254 на ваш комп (IP вашего компа вы должны знать), я этого не делал поэтому дальше переводить не вижу смысла, все достаточно легко и просто.

622

если ваш роутер этого не может, тогда он не роутер а свич )))

Вариант 2) (мой вариант)
Подключите камеру LAN кабелем напрямую в ваш комп.
Теперь вам надо добавить IP 192.168.254.254 с маской подсети 255.255.0.0 в ваш NIC.
на картинке показано все что надо сделать, пошагово от 1 до 11

621

(не забудьте удалить эти настройки как закончите с восстановлением камеры)

Вы можете запустить прогу wireshark и промониторить трафик сети если есть желание и время (это можно сделать до процедуры восстановления чтобы понять камера вообще пакеты куда то отправляет или нет, или bootloader мертвый и тут только UART (тут детальнее ) или выпаивать флешку).

ШАГ 2, загрузите архив в котором есть все необходимое для процедуры восстановление камеры (TFTP server, upgrade_info tool, netcat for console log): тыць тут чтобы получить архив со всеми плюхами также если линк уже не работает пробуем этот

В архиве вы найдете три скрипта:
  • Commands.bat
  • Читает файл commands.txt и генерирует файл upgrade_info_7db780a713a4.txt в рутовой директории.
  • TFTPServer.bat
  • Запускает TFTP сервер на котором поднята рутовая директория 192.168.254.254 (port 69 UDP)
  • Console.bat
  • Слушает 192.168.254.254 порт 5002 UDP для того чтобы получить log с камеры после успешной загрузки и запуска команд.
    • Может вам помочь если вы хотите запустить пару команд и что то проверить, к примеру.
    • printenv и проверить HWID=IPC-HDW4431C:BLA:BLA
      • All firmware images have a check.img or hwid file with compatible HWIDs
  • Вам ОБЯЗАТЕЛЬНО надо правильная рабочая прошивка от вашей камеры.
  • Разархивируйте все файлы из вашей прошивки в root директорию.
  • Проверьте совместимость по HWID еще раз.
  • Подправьте команды в файлике commands.txt для того чтобы прошить камеру
    • По команде printenv определите адрес памяти куда писать, типа:
    • dr=tftp 0x82000000 romfs-x.squashfs.img; flwrite
    • просмотрите оригинальный пост, может что еще полезного найдете, мне не понадобилось
ШАГ 3, прошейте камеру!
  • ОБЯЗАТЕЛЬНО после того как модифицировали файл commands.txt, запустите Commands.bat который сгенерирует файл "upgrade_info_7db780a713a4.txt" в root директории .
  • Запустите TFTPServer.bat и Console.bat.
  • Подайте питание на вашу камеру которая подключена напрямую в ваш комп по LAN кабелю (сеть/настройка проброски адресов уже настроено), должно начатся загрузка из TFTP сервера в камеру.
  • ЖДИТЕ и наблюдайте, у меня заняло минуту, в конце была типа ошибка что не найден файл root/success.txt. но по факту все сработало
  • как увидите "FLASHING_DONE_STOP_TFTP_NOW" закройте TFTP сервер . (у меня этого не было, я закрыл как услышал что камера перезагрузилась по щелчку наверное PIR сенсора)
все

Парочка комментариев по моим действиям:
Сначала пробуем все действие с отредактированным файлом commands.txt без 3х последних строчек, мне это сразу помогло так как реально был какой то bootloop и перезапускать/перепрошивать не пришлось с дополнительными строчками. Камера поднялась.
а именно
  • run dr
  • run dk
  • run du
  • run dw
  • run dp
  • run dc
если же вам это не помогло, редактируем файл commands.txt при чем обязательно проверьте адрес памяти, иногда он не 0x82000000 а 0x02000000
  • run dr
  • run dk
  • run du
  • run dw
  • run dp
  • run dc
  • tftp 0x82000000 pd-x.squashfs.img; flwrite
  • tftp 0x82000000 .FLASHING_DONE_STOP_TFTP_NOW
  • sleep 5
если же камера совсем мертвая то можно попытаться восстановить по UART.
тут уже обсуждалось миллиард-миллионов раз, вот линк на оригинальный пост который более детальный на на английском тыцяем тут и читаем процесс восстановления по UART


будут вопросы, задавайте, но не факт что я помогу - так как у меня все заняло не более 1 минуты на восстановления и дополнительных танцев с бубном не было

всем удачи
 
Останнє редагування:
Реакції: Mig

olja1

New member
wireshark пробовала, пакеты идут, но как в них распознать те, что относятся к камере?
Пробовала вариант 2, не сработало. Все время идет по кругу загрузка каждого файла прошивки и так до бесконечности. Ничего не щелкает и камеру не видно.
 

Uef

Чатланин
Модель камеры, логи, откуда и какие файлы.
 

olja1

New member
IPC-K15P, логов нет, я не умею их достать. Инструкция вверху ни о чем.
Файлы имею ввиду, которые в root с расширением image, всех их видно, как грузятся, в tftp консоли, но остановки нет
 

Uef

Чатланин
Это конечно архи важная информация в какой папке у ВАс файлы лежат, но больше интересовало как они туда попали. Где Вы взяли файлы для восстановления.
 

olja1

New member
Это конечно архи важная информация в какой папке у ВАс файлы лежат, но больше интересовало как они туда попали. Где Вы взяли файлы для восстановления.
Разархивировала bin прошивки - вот и получила файлы. Прошивку взяла у продавца камеры, она официальная.
 

chepe1988

Member
Здравствуйте, пытаюсь восстановить IP камеру IPC-HFW2325S-W.
Собственно вопрос. У меня имеется один файл прошивки DH_IPC-Consumer-Zi-Themis_EngFraSpaRus_PN_V2.400.0000.11.R.20161105_SincerityTrade.bin
Соответственно положил его в папку root как написано в данном руководстве.
Настроил сеть и запустил TFTPServer.bat и Console.bat.
И у меня после некоторого времени отображается следующее:
2232

Подскажите пожалуйста, что делать?
По UART доступ есть к камере.
 

chepe1988

Member
Откуда мне взять romfs-x*.img? Нужен ли он вообще?
Немного разобрался. Оказывается файл "*.bin" можно разархивировать.
Получил следующий список файлов:
2233
Но это не помогло мне воспользоваться решением выше, через ethernet. Всё равно давало ошибку No access, что в предыдущем сообщении.
Но смог прогнать команды через UART:
  • run dr
  • run dk
  • run du
  • run dw
  • run dp
  • run dc
И через TFTPD загрузились файлы. Но это мне не помогло. В консоли при загрузке вылезает следующее:

support SD update IPC-HDBW1320E-W gpioKey=33
MMC: sdmmc init
Using ambarella mac device
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'.
Download to address: 0x5000000
Downloading: #################################################
done
Bytes transferred = 123 (7b hex)
Using ambarella mac device
TFTP from server 192.168.254.254; our IP address is 192.168.1.108; sending through gateway 192.168.1.1
Download Filename 'update.img'.
Download to address: 0x2000000
Downloading: *
TFTP error: (0)cmd Failed run up!
Using ambarella mac device
TFTP from server 192.168.254.254; our IP address is 192.168.1.108; sending through gateway 192.168.1.1
Download Filename 'failed.txt'.
Download to address: 0x2000000
Downloading: *
TFTP error: (0)state:ff,err_count:04
SPI probe: 16384 KiB GD25Q128C at 0:0 is now current device
## Booting kernel from Legacy Image at 02000000 ...
Image Name: Linux-3.10.50
Created: 2016-11-02 18:39:40 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1514336 Bytes = 1.4 MiB
Load Address: 00208000
Entry Point: 00208000
Verifying Checksum ... OK
Loading Kernel Image ...OK
OK
partition file version 2
rootfstype squashfs root /dev/mtdblock5
fail to load bootargsParameters.txt
fail to load bootargsParameters.txt file
get bootargs info failed

Starting kernel ...
crashflasg:1, logmagic:54410011.

Т.е. он при старте ругается на update.img, которого как раз у меня нету и на какой-то 'failed.txt'.
А камера при старте начинает пинговаться по адресу 192.168.1.50 (этот адрес раньше устанавливал ей через web), а потом она периодически идёт на адрес 192.168.1.108, потом снова 192.168.1.50 и так по кругу. На web не заходит. При этом один раз удалось словить её в момент когда смогла прогрузиться форма аутентификации по web, но даже зайти не успел она опять свалилась на 192.168.1.108.
 
Останнє редагування:

chepe1988

Member
Да. Как раз я эту прошивку и попросил в конце темы. И мне тоже Китайцы выслали. Прошивки одинаковые.
 

chepe1988

Member
Вообщем может быть кому-то будет интересно:
Получил более подробный лог с помощью использования команды setenv dh_keyboard 0
В кратце проблема в этом:

2241

Нашёл ещё парня у которого такая же проблема: https://ipcamtalk.com/threads/dahua-ipc-hdb4300c-issue.16646/
И вот тут такая же беда: тыц2
Но что с этим делать вообще не понимаю.
А главное не ясно стоит ли купить ещё такую же камеру, чтобы попытаться как-то эту восстановить?
Или это бессмысленно?
 

Вкладення

Останнє редагування:

chuzan

Member
Объясните пожалуйста подробнее как с помощью printenv узнать HWID и адрес памяти. шьется под виндовс, а команда линуксовая. Где и с какими параметрами запускать?
 

chuzan

Member
В архиве с прошивкой были такие файлы. Их в root и положил.
 

Вкладення

chepe1988

Member
Объясните пожалуйста подробнее как с помощью printenv узнать HWID и адрес памяти. шьется под виндовс, а команда линуксовая. Где и с какими параметрами запускать?
HWID выводится в консоль по usb-uart преобразователю. Для этого надо разобрать камеру и подпаять провода.
Другие способы может и есть но я их незнаю.
 

chuzan

Member
И еще вопрос, в commands.txt после адреса должно быть romfs-x.squashfs.img или pd-x.squashfs.img , оба файла присутствуют в прошивке.
 
Останнє редагування:

chuzan

Member
Все вроде прошло нормально, без ошибок. увидел "FLASHING_DONE_STOP_TFTP_NOW" Закрыл tftp.
Результат тотже. Пингуется, вебморда не запускается(
Может кто по логу найдет ошибку и подскажет куда копать....
fail to load bootargsParameters.txt
 

Вкладення

Останнє редагування:

chuzan

Member
Данные прошивки отличаются PN и NP, подскажите пожалуйста чем они отличаются. README.txt у них одинаковые.

Supported Devices:

HFW2X3X,HDW2X3X,HFW1X3X,HDW1X3X,HFW1X3X-W

У меня на шильдике HFW1431SP. В check.img такой нету, но есть HFW1431S в обеих прошивках. шил pn
 

Вкладення

Зверху