Эта камера, судя по всему, по железу аналогична камере Dahua DH-IPC-K42AP, а называется так по принципу “Операции “Ы” – “Чтоб никто не догадался!” Если кто не знает о чём речь, то загуглите, а лучше посмотрите! Ну так вот, загрузчик у этой модели уже не оригинальный и так просто отвязать не получится, но если покопаться, то результат будет.
Камера





Инструменты
Утилиты
- TFTP-сервер Tftpd64 — TFTP-сервер для передачи файлов.
- Putty — программа для работы через UART.
- ConfigTool — поисковая утилита для камер Dahua.
Материалы
- DH_IPC-Consumer-Web-Mao-Molec_Eng_P_V2.800.0000000.15.R.210630 – оригинальная прошивка с моего Яндекс.Диска
- DH-IPC-K42LB – распакованная прошивка.
Исходные данные
Подключение
Подключаемся к плате камеры через UART, запускаем Putty на нужном порту и подаём питание. Ростелекомовский загрузчик останавливается по комбинации Ctrl-Enter. Если с контактами всё в порядке и нажали комбинацию вовремя, то попадаем в бут и можем действовать.
Резервная копия прошивки
На всякий случай нужно сделать бэкап. Через tftp не выйдет, т.к. он работает только на приём, поэтому единственный вариант – через карту памяти. Нужно вставить карточку и выполнить следующие команды:
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x0 0x1000000;mmc write 0x22000000 0x10 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x1000000 0x1000000;mmc write 0x22000000 0x8010 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x2000000 0x1000000;mmc write 0x22000000 0x10010 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x3000000 0x1000000;mmc write 0x22000000 0x18010 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x4000000 0x1000000;mmc write 0x22000000 0x20010 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x5000000 0x1000000;mmc write 0x22000000 0x28010 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x6000000 0x1000000;mmc write 0x22000000 0x30010 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x7000000 0x1000000;mmc write 0x22000000 0x38010 0x8000
Не уверен, что всё прошло как надо, но надеюсь бэкап не пригодится 🙂 Вытащить с карточки его можно только в Linux.
Прошивка загрузчика
Распаковываем бинарный файл прошивки с помощью архиватора 7Zip, либо берём уже готовые файлы.
У Dahua загрузчик состоит из двух частей и в скачанной прошивке есть они обе, поэтому восстановление оригинального загрузчика особого труда не представляет. Нас интересуют файлы dhboot-min.bin.img и dhboot.bin.img. Алгоритм действий подробно разобран в статье Восстановление камер Dahua, а здесь просто упомяну, что нужно отрезать от каждого из файлов 64 байта заголовка и сохранить полученный результат в файл с другим именем, например, dhboot-min.bin и dhboot.bin.
Далее запускаем tftp-сервер, кладём в его рабочий каталог подредактированные файлы, а заодно и все остальные файлы распакованной прошивки.
setenv serverip 192.168.1.128
setenv ipaddr 192.168.1.10
mw.b 0x22000000 ff 0x1000000
tftp 0x22000000 dhboot-min.bin
nand erase 0x0 0x1000000
nand write 0x22000000 0x0 0x1000000
mw.b 0x22000000 ff 0x1000000
tftp 0x22000000 dhboot.bin
nand erase 0x340000 0x1000000
nand write 0x22000000 0x340000 0x1000000
reset
Команды nand erase, nand write и reset даём только в том случае, если выполнение предыдущей команды прошло успешно. Если что-то пошло не так, например, бинарник не скачался, а память уже затёрта, то после reset с вероятностью 100% получим кирпич.
После перезапуска, для попадания в оригинальный даховский бут, надо жать уже другую клавишу: *. Если успели, то снова задаём адрес сервера и прошиваем остальные части системы.
setenv serverip 192.168.1.128
run dp
run dk
run dr
run pd
run dw
run da
Или одной строкой:
setenv serverip 192.168.1.128;run dp;run dk;run dr;run pd;run dw;run da
Последняя команда не обязательна, т.к. прошивает загрузчик, который уже прошит, но можно и ещё раз прошить, чтобы уж совсем всё по фен-шую.
Далее, задаём критически важные переменные окружения.
setenv HWID IPC-K42A-HD:01:02:07:89:3C:00:01:10:01:01:04:320:03:00:00:00:00:00:00:00:80
setenv devalias DH-IPC-K42LB
setenv ethaddr 6c:1c:71:00:00:00 // MAC-адрес с наклейки камеры
setenv ID 7G05B7AB091000000 // QR-код с наклейки на ИК-фильтре
save
HWID определяет аппаратную платформу, devalias – то, как камера будет видеться в ConfigTool, а может и не только в нём, ethaddr – MAC-адрес, который берётся с наклейки камеры, а ID – серийный номер из QR-кода с наклейки на ИК-фильтре.



Насчёт серийного номера возможны варианты. На наклейке есть цифровой серийник РТ, который можно использовать в качестве ID. С ним облако Dahua тоже вроде бы работает, но продолжительное время не тестировал – может и отвалиться. На корпусе ИК-фильтра есть наклейка с QR-кодом, который больше похож на Даховский серийник и думаю, что в качестве ID лучше использовать именно его.
купил на авито пару DH-IPC-K42LB, чтоб по экспериментировать по вашей инструкции , первую прошил все отлично , а со второй что то пошло не так.
Между командами выдерживал интервал , все прошло внешне успешно, но после перезагрузки
Search UNFD_PART_UBOOT-Header fail
Load BL from SPINAND
-Verify CRC32 Header failed!
Disable MMU and D-cache before jump to UBOOT
Все, приплыли?
То есть в бут не получается зайти? Скорее всего не прошилась вторая часть загрузчика. Либо где-то при выполнении команды была ошибка, либо флешка дохлая.
Если первое, то оживить можно – в Вики OpenIPC есть мануал по раскирпичиванию камер на процах SigmaStar, но я пока не освоил, хотя кирпичик такой есть и вникать придётся.
У тебя. соответственно, выбор – подождать моего мануала, либо попытаться разобраться самому.
Спасибо за наводку! Если получится отпишусь. Да в boot зайти не получается.
Удачи!