Рассматриваемая камера построена на базе процессора Ambarella S3L и памяти NOR. Осложняется дело тем, что в ростелекомовской прошивке для этой платформы используется урезанный загрузчик. Провести процесс прошивки прямо из него не вышло, значит будем шить программатором.
Полез искать прошивку и, после пары неудачных попыток, она была найдена на одном из буржуйских серверов. Дальше, с помощью программы Dump Builder, из частей прошивки был слеплен дамп, который и был прошит. Сразу, конечно, не заработало, т.к. в дампе отсутствует информация об ID, MAC-адресе и HWID. Всё это задал через UART.
Уже после сборки камеры подумал, что неплохо было бы снять полный дамп со всеми этими идентификаторами, но разбирать было лениво. Попробовал снять его через UART и всё получилось, т.к. в загрузчике Dahua все необходимые команды были доступны. Камера у меня была всего одна, поэтому полный дамп проверить было не на чем. Приложу к статье оба варианта и жду обратной связи.
Инструменты
Материалы
- DH-IPC-HFW2231TP-VFS_00.zip – “пустой” дамп.
- DH-IPC-HFW2231TP-VFS.zip – дамп с HWID, ID, devalias и MAC-ом.
- DH-IPC-HFW2231TP-VFS_RT.zip – ростелекомовский дамп.
Утилиты
- Dump Builder – утилита для сборки дампов из частей.
- Putty — программа для работы через UART.
- ConfigTool — поисковая утилита для камер Dahua.
Исходные данные


Сборка дампа
Раньше, в подобных случаях, либо шил только загрузчик, а остальное уже из него, либо собирал дамп вручную: отрезал заголовки и объединял все кусочки в единый файл в соответствии с адресами из заголовков. Была идея самому написать программулину для создания дампов, т.к. делать это вручную не очень удобно, но вспомнил про Dump Builder и решил посмотреть, что это такое. Потому как, судя по названию, это оно и есть. Так и оказалось, причём Dump Builder умеет не только соединять бинарники в единый дамп, он умеет распознавать заголовки, отрезать их и вставлять то, что осталось по правильным адресам. Короче: всё уже придумано до нас!
Как обычно, распаковываем прошивку с помощью 7zip, создаём в Dump Builder пустой дамп размером 32 Мб и с помощью пункта Загрузить модуль скармливаем ему все части прошивки по-очереди. В результате получаем готовый дамп, который и заливаем во флешку с помощью программатора.
Прошивка
Сам процесс прошивки описывать особого смысла нет – всё стандартно. Подключаем программатор к компьютеру и прилаживаем зонд на микросхему памяти, убеждаясь в надёжном контакте со всеми 8-ю выводами. Запускаем программу Xpro, нажимаем кнопку AUTO, потом Detect, чтобы определить модель микросхемы и открываем файл дампа. Шьём со стиранием и проверкой.
Скрины вроде бы делал, но их нет. Подождём до следующего экземпляра…
Инициализация переменных
Для инициализации необходимых переменных окружения при прошивке пустого дампа нужно выполнить следующие команды:
setenv HWID IPC-HFW2231T-ZS-2713:01:02:02:4A:25:00:01:00:00:00:04:2D0:00:00:00:00:00:01:00:00:100
setenv devalias DH-IPC-HFW2231TP-VFS
save
И при прошивке пустого дампа и при прошивке дампа с переменными нужно присвоить свои значения ethaddr и ID:
setenv ethaddr 24:52:6A:4C:00:00
setenv ID 6L0C336B09200000
save










Привет, спасибо за статью. Камера такая же, но подошёл HWID IPC-HFW2231R-VFS:01:02:02:4A:25:00:01:0F:01:01:04:2D0:03:00:00:00:00:01:00:00:100 с HWID который в статье писало ошибку AF ops not initialized! AFMOTOR_setOps error AF_getCtlPriParam error! может кому поможет )
Пожалуйста! А зум и автофокус работали?