Несколько месяцев назад, с просьбой помочь восстановить на этой камере оригинальную прошивку, обратился камрад, контакты которого я потерял. Позор на мои седины, а ему респект и уважуха! Камера была прислана безвозмездно и безвозвратно – как-бы взамен на мануал, поэтому в этом плане всё в порядке, но просто хотелось поблагодарить персонально. Если читаешь это, то мануал ниже:)
System startup
U-Boot 2010.06 (Oct 26 2018 - 10:59:56)
Check Flash Memory Controller v100 ... Found
SPI Nor(cs 0) ID: 0xc8 0x40 0x18
Block:64KB Chip:16MB Name:"GD25Q128"
SPI Nor total size: 16MB
MMC:
EMMC/MMC/SD controller initialization.
Card did not respond to voltage select!
No EMMC/MMC/SD device found !
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
*No SD card found!
Hit any key to stop autoboot: 0
Set gpio: 1->0
Set gpio: 5->0
Set gpio: 57->1
Set gpio: 60->1
Set gpio: 7->1
Set gpio: 72->0
16384 KiB hi_fmc at 0:0 is now current device
No mmc found
help
? - alias for 'help'
base - print or set address offset
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
cmp - memory compare
cp - memory copy
crc32 - checksum calculation
ddr - ddr training function
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
fwupdate- fwupdate command allows to flash vc camera firmware from file on mmc or from memory.
getinfo - print hardware information
go - start application at address 'addr'
help - print command description/usage
hi_gpio - set hisilicon gpio states
loadb - load binary file over serial line (kermit mode)
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mii - MII utility commands
mm - memory modify (auto-incrementing address)
mmc - MMC sub system
mmcinfo - mmcinfo -- display MMC info
mtest - simple RAM read/write test
mw - memory write (fill)
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
rarpboot- boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv - set environment variables
sf - SPI flash sub-system
tftp - tftp - download or upload image via network using TFTP protocol
version - print monitor version
Полную прошивку найти не удалось, но зато нашлась информация о том, что эта модель по железу совпадает с моделью Dahua DH-IPC-C12P, которая является оригиналом для ростелекомовской же камеры QVC-IPC-136W и про восстановление последней в сети есть и материалы и манулы. И даже видео есть. Про QVC-IPC-136W скоро тоже будет статья, потому что способ с программатором хоть и хороший, но через UART всё же лучше.
Респект и уважуха камрадам Андрею/Анатолию и @Mikhail_Gashnikov за обратную связь! Благодаря ей удалось устранить жестокий баг в статье.
Действовал следующим образом: взял дамп от DH-IPC-C12P с 4PDA, положил на карту памяти и попытался записать на флешку камеры. Не вышло – камера зависала в процессе. На форуме упоминалось о том, что есть такой косяк, поэтому порезал дамп на 4 части и стал заливать по частям. Так прокатило, правда зависло на 4-й части. Нужна она была или нет не совсем понял. но на всякий случай сделал процедуру восстановления с MicroSD-карты. Потом подключил к Wi-Fi и через ConfigTool прошил ещё раз уже штатно и сделал сброс. В процессе задал правильный HWID, свой ID и wifiaddr. Потом снова снял дамп и снова порезал.
Это всё лирика для общего понимания процесса, если кому интересно. В Материалах выложил всё что есть, но не всё это необходимо, а может понадобиться только в некоторых случаях.
Благодаря камраду Valery выяснилась одна интересная деталь. Почему-то камера добавляется, как локальное устройство. т.е не в аккаунт, но всё-таки через облако. Поэтому через облако она видна, но только на том же устройстве, с которого добавлялась. Если войти в аккаунт с другого устройства, то там её нет. Есть предположение, что связано это с ростелекомовским ID и надо его поменять на что-то похожее на даховский ID, но это не точно. Проверям.
Прошивка
Шить будем, конечно же, подключившись через UART. Искомые контакты находятся на основной плате, расположенной внутри шарика. Надо разбирать.
Разборка
Винты на дне находятся в углублениях под двумя из четырёх ножек. Под какими именно можно определить на ощупь. Дальше всё прозрачно – винты и защёлки. Самое сложное – располовинить сам шарик.
Подготовка
Разархивировать 4 части дампа, скопировать их на карту памяти и вставить карту в камеру. Я использовал карту объёмом 16Gb, отформатированную в FAT32.
Подключить UART-адаптер к камере и компьютеру. Установить драйверы, если ещё не установлены.
Открыть Putty, выбрать COM-порт, на котором висит адаптер и задать параметры порта.
Подать питание на камеру.
Остановить загрузку нажатием клавиши *.
Прошивка частей дампа
sf probe 0
mw.b 0x82000000 ff 0x400000
fatload mmc 0:1 0x82000000 DH-IPC-A22_dump0.bin
sf erase 0x0 0x400000
sf write 0x82000000 0x0 0x400000
mw.b 0x82000000 ff 0x400000
fatload mmc 0:1 0x82000000 DH-IPC-A22_dump1.bin
sf erase 0x400000 0x400000
sf write 0x82000000 0x400000 0x400000
mw.b 0x82000000 ff 0x400000
fatload mmc 0:1 0x82000000 DH-IPC-A22_dump2.bin
sf erase 0x800000 0x400000
sf write 0x82000000 0x800000 0x400000
mw.b 0x82000000 ff 0x400000
fatload mmc 0:1 0x82000000 DH-IPC-A22_dump3.bin
sf erase 0xC00000 0x400000
sf write 0x82000000 0xC00000 0x400000
reset
Конфигурирование загрузчика
После перезагрузки снова входи в загрузчик. HWID и devalias уже заданы. Осталось ввести только свой ID и wifiaddr. ID – это серийный номер и он берётся с наклейки Ростелеком. Это позволит добавлять камеру в приложение не вводя ID вручную, а сканируя QR-код или штрих-код с той же наклейки. что удобно. wifiaddr – это MAC-адрес беспроводного сетевого адаптера и берётся он там же.
setenv wifiaddr 9C:14:63:01:02:03
setenv ID 0419022010203
save
reset
Альтернативный вариант
Дамп целиком можно залить прямо во флешку камеры посредством программатора CH341A, а чтобы не цепляться потом UART-ом для конфигурирования параметров, можно поменять их прямо в дампе. Не наш метод, но и у него есть поклонники. Дамп в наличии.
Подключение
Подключить камеру к Wi-Fi и облачному аккаунту можно через приложение DMSS. Не буду описывать процедуру регистрации – там всё стандартно, только процесс добавления камеры. Камера успешно добавляется в облако с ростелекомовским серийником.
Результат
u-boot
System startup
U-Boot 2010.06-svn5625 (Nov 06 2018 - 17:25:32)
DRAM: 64 MiB
gBootLogPtr:80b80008.
Check Flash Memory Controller v100 ... Found
SPI Nor(cs 0) ID: 0xc8 0x40 0x18
Block:64KB Chip:16MB Name:"GD25Q128"
SPI Nor total size: 16MB
hifmc100_get_erasesize:10000.
partition file version 2
rootfstype squashfs root /dev/mtdblock5
gParameter[0]:node=bootargs, parameter=mem=40M console=ttyS0,115200 root=/dev/mtdblock4 rootfstype=squashfs.
gParameter[1]:node=sdupdate, parameter=gpio=10 offset=0 ledtype=state.
gParameter[2]:node=upgradeMode, parameter=switchBootPart=1.
In: serial
Out: serial
Err: serial
TEXT_BASE:81000000
gpio:10, offset:0x0, ledtype:state
MMC: Hit any key to stop autoboot: 0
help
? - alias for 'help'
backup - backup - manual backup program.
base - print or set address offset
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootf - boot from flash
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
cfgRestore- erase config and backup partition.
cmp - memory compare
cp - memory copy
crc32 - checksum calculation
crypt - crypt
erasepart- erasepart
exit - exit script
false - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
flwrite - flwrite - write data into FLASH memory
fsinfo - print information about filesystems
fsload - load binary file from a filesystem image
go - start application at address 'addr'
help - print command description/usage
hwid - hwid - set hardware id and save to flash
kload - kload - load uImage file from parttion
lip - lip - set local ip address but not save to flash
loadb - load binary file over serial line (kermit mode)
loady - load binary file over serial line (ymodem mode)
logsend - get log buf
loop - infinite loop on address range
ls - list files in a directory (default /)
mac - mac - set mac address and save to flash
md - memory display
memsize - memsize - set mem size
mii - MII utility commands
mm - memory modify (auto-incrementing address)
mmc - MMC sub system
mmcinfo - mmcinfo -- display MMC info
mtest - simple RAM read/write test
mw - memory write (fill)
nm - memory modify (constant address)
partition- print partition information
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
rarpboot- boot image via network using RARP/TFTP protocol
rdefault- rdefault -recover default env
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv - set environment variables
sf - SPI flash sub-system
showvar - print local hushshell variables
sip - sip - set server ip address but not save to flash
sleep - delay execution for some time
sync_uboot- sync_uboot - sync uboot to uboot-bak
test - minimal test like /bin/sh
tftpboot- tftpboot- boot image via network using TFTP protocol
true - do nothing, successfully
usleep - delay execution for some time
version - print monitor version
rtsp://admin:password@192.168.1.11:554/cam/realmonitor?channel=1&subtype=0 – 1-й канал, 1-й поток;
rtsp://admin:password@192.168.1.11:554/cam/realmonitor?channel=1&subtype=1 – 1-й канал, 2-й поток.
ONVIF не работает, поэтому покрутить камеру, кроме как через родное приложение, не выйдет.
В чатике камрад Valery обратил внимание на один момент: при добавлении камеры в приложение не происходит добавление её в аккаунт. Добавляется она хоть и через P2P, то бишь облако, но числится как Локальное устройство и доступна только на том смартфоне, с которого добавлялась, но доступна всё-таки не только локально. но и через Интернет.
Здравствуйте, большое спасибо за инструкцию по данной камере, как раз такая завалялась на полке. Разборка её конечно ещё тот квест, не уверен что ещё собрать нормально получится. )) После ввода команд на прошивку частей дампа камера больше не запускается. Вот последние логи:
System startup
U-Boot 2010.06 (Oct 26 2018 – 10:59:56)
Check Flash Memory Controller v100 … Found
SPI Nor(cs 0) ID: 0xc8 0x40 0x18
Block:64KB Chip:16MB Name:”GD25Q128″
SPI Nor total size: 16MB
MMC:
EMMC/MMC/SD controller initialization.
Card did not respond to voltage select!
No EMMC/MMC/SD device found !
*** Warning – bad CRC, using default environment
In: serial
Out: serial
Err: serial
*No SD card found!
Hit any key to stop autoboot: 0
hi3518ev200-vc # *****
4194304 bytes read
hi3518ev200-vc # sf erase 0xC00000 0x400000
Erasing at 0x1000000 — 100% complete.
hi3518ev200-vc # sf write mw.b 0x82000000 0xC00000 0x400000
sf – SPI flash sub-system
hi3518ev200-vc # reset
resetting …
Правильно понимаю что теперь только программатором шить?
Ответить
mixatronik
автор
Здравствуйте!
Вот это неправильный ответ: sf – SPI flash sub-system. Система не восприняла команду, т.к. посчитала, что параметры неверны. Соответственно дамп не записался. В чём конкретно дело – непонятно. Такое бывает при копировании команд. Внешне всё правильно, но команда не принимается. Набьёшь руками то же самое и прокатывает.
Можно попробовать оживить без программатора – через HiTool, если он поддерживает этот процессор. Вечером гляну.
З.Ы. Проц HiTool-ом поддерживается. Так что можно восстанавливать. Ссылка на загрузчик в статье есть. Если не будет получаться, могу помочь по удалёнке.
Ответить
Анатолий
К сожалению Hitool не помог, обрывалась загрузка загрузчика. Помучился около получала в итоге плюнул и выпаял флешку и залил дамп. Все завелось, в приложение DMSS добавилось без проблем. Жаль конечно что Onvif нету и в регистратор Hikvision не добавить. А так ещё раз спасибо!
Ответить
mixatronik
автор
Пожалуйста! ONVIF нет, но есть RTSP и если регистратор сетевой, а не гибридный, то добавить можно. Правда запись будет только непрерывная, сделать по детекции движения не получится. Ну и управлять через регистратор тоже не выйдет.
Ответить
Владимир
Добрый день! Большое спасибо за статью! на днях как придет CH340G буду пробовать шить. Шить хочу сразу дамп через CH341A, так как есть опыт работы с ним. С Putty не сталкивался. Скажите что значит “Остановить загрузку нажатием клавиши *” нажать * на клаве где топ клавиши или что? (извиняюсь за тупой вопрос). И второе, если прошивать дамп на программаторе, то конфигурирование выполняется через Putty? Можно тут поподробнее?
Ответить
mixatronik
автор
Добрый день! Если есть опыт с дампами, то можно поправить серийник и MAC прямо в дампе. Я тоже снимал дамп посредством CH341A. Конечно же без выпаивания 🙂 и был один интересный момент. При подключении всех 8-ми лапок даже микруха не определялась и уже думал, что придётся паять, но вдруг случайно отвадился зажим с 8-й лапки и микросхема определилась! И не только определилась. но и считалась. Проверку правильности считывания делал – всё хорошо.
CH341A можно переключить в режим TTL, подключить к разъёму UART и сделать всё через Putty.
Ответить
Андрей
Здравствуйте, а когда будет будет статья про прошивку через uart камеры QVC-IPC-136W?
Ответить
mixatronik
автор
Привет! А надо? Вроде бы есть ведь даже видео. Хотя, вообще, если честно, есть такая мысль и камера такая есть уже. Даже две. И надо что-то с ними делать.
Ответить
Андрей
Конечно надо) Видео же которое я видел там с выпаиванием микросхемы что совсем не удобно. По uart намного удобнее и думаю многие со мной согласятся.
Ответить
mixatronik
автор
Вот это правильно! А то, почему-то, чаще говорят что-то типа: “Да мне проще микруху “сдуть”, чем в консоли ковыряться.” Не согласен. Тем более, что обычно в консоль лезть всё равно приходится даже после заливки дампа программатором. Да и вариант с UART-ом выглядит всяко изящнее.
Ответить
Андрей
Конечно, плюс паять далеко не все умеют и можно повредить элементы находящиеся рядом. А вот проводами подключиться уже практически любой сможет.
Здравствуйте, большое спасибо за инструкцию по данной камере, как раз такая завалялась на полке. Разборка её конечно ещё тот квест, не уверен что ещё собрать нормально получится. )) После ввода команд на прошивку частей дампа камера больше не запускается. Вот последние логи:
System startup
U-Boot 2010.06 (Oct 26 2018 – 10:59:56)
Check Flash Memory Controller v100 … Found
SPI Nor(cs 0) ID: 0xc8 0x40 0x18
Block:64KB Chip:16MB Name:”GD25Q128″
SPI Nor total size: 16MB
MMC:
EMMC/MMC/SD controller initialization.
Card did not respond to voltage select!
No EMMC/MMC/SD device found !
*** Warning – bad CRC, using default environment
In: serial
Out: serial
Err: serial
*No SD card found!
Hit any key to stop autoboot: 0
hi3518ev200-vc # *****
System startup
U-Boot 2010.06 (Oct 26 2018 – 10:59:56)
Check Flash Memory Controller v100 … Found
SPI Nor(cs 0) ID: 0xc8 0x40 0x18
Block:64KB Chip:16MB Name:”GD25Q128″
SPI Nor total size: 16MB
MMC:
EMMC/MMC/SD controller initialization.
MMC/SD Card:
MID: 0x27
Read Block: 512 Bytes
Write Block: 512 Bytes
Chip Size: 14804M Bytes (High Capacity)
Name: “SD16G”
Chip Type: SD
Version: 2.0
Speed: 50000000Hz
Bus Width: 4bit
Boot Addr: 0 Bytes
*** Warning – bad CRC, using default environment
In: serial
Out: serial
Err: serial
Interface: MMC
Device 0: Vendor: Man 275048 Snr da82cde5 Rev: 3.0 Prod: SD16G
Type: Removable Hard Disk
Capacity: 14804.0 MB = 14.4 GB (30318592 x 512)
Partition 1: Filesystem: FAT32 “NO NAME ”
reading u-boot
reading kernel
reading rootfs
Hit any key to stop autoboot: 0
hi3518ev200-vc # sf probe 0
16384 KiB hi_fmc at 0:0 is now current device
hi3518ev200-vc # mw.b 0x82000000 ff 0x400000
hi3518ev200-vc # fatload mmc 0:1 0x82000000 DH-IPC-A22_dump0.bin
reading DH-IPC-A22_dump0.bin
4194304 bytes read
hi3518ev200-vc # sf erase 0x0 0x400000
Erasing at 0x400000 — 100% complete.
hi3518ev200-vc # sf write mw.b 0x82000000 0x0 0x400000
sf – SPI flash sub-system
hi3518ev200-vc # mw.b 0x82000000 ff 0x400000
hi3518ev200-vc # fatload mmc 0:1 0x82000000 DH-IPC-A22_dump1.bin
reading DH-IPC-A22_dump1.bin
4194304 bytes read
hi3518ev200-vc # sf erase 0x400000 0x400000
Erasing at 0x800000 — 100% complete.
hi3518ev200-vc # sf write mw.b 0x82000000 0x400000 0x400000
sf – SPI flash sub-system
hi3518ev200-vc # mw.b 0x82000000 ff 0x400000
hi3518ev200-vc # fatload mmc 0:1 0x82000000 DH-IPC-A22_dump2.bin
reading DH-IPC-A22_dump2.bin
4194304 bytes read
hi3518ev200-vc # sf erase 0x800000 0x400000
Erasing at 0xc00000 — 100% complete.
hi3518ev200-vc # sf write mw.b 0x82000000 0x800000 0x400000
sf – SPI flash sub-system
hi3518ev200-vc # mw.b 0x82000000 ff 0x400000
hi3518ev200-vc # fatload mmc 0:1 0x82000000 DH-IPC-A22_dump3.bin
reading DH-IPC-A22_dump3.bin
4194304 bytes read
hi3518ev200-vc # sf erase 0xC00000 0x400000
Erasing at 0x1000000 — 100% complete.
hi3518ev200-vc # sf write mw.b 0x82000000 0xC00000 0x400000
sf – SPI flash sub-system
hi3518ev200-vc # reset
resetting …
Правильно понимаю что теперь только программатором шить?
Здравствуйте!
Вот это неправильный ответ: sf – SPI flash sub-system. Система не восприняла команду, т.к. посчитала, что параметры неверны. Соответственно дамп не записался. В чём конкретно дело – непонятно. Такое бывает при копировании команд. Внешне всё правильно, но команда не принимается. Набьёшь руками то же самое и прокатывает.
Можно попробовать оживить без программатора – через HiTool, если он поддерживает этот процессор. Вечером гляну.
З.Ы. Проц HiTool-ом поддерживается. Так что можно восстанавливать. Ссылка на загрузчик в статье есть. Если не будет получаться, могу помочь по удалёнке.
К сожалению Hitool не помог, обрывалась загрузка загрузчика. Помучился около получала в итоге плюнул и выпаял флешку и залил дамп. Все завелось, в приложение DMSS добавилось без проблем. Жаль конечно что Onvif нету и в регистратор Hikvision не добавить. А так ещё раз спасибо!
Пожалуйста! ONVIF нет, но есть RTSP и если регистратор сетевой, а не гибридный, то добавить можно. Правда запись будет только непрерывная, сделать по детекции движения не получится. Ну и управлять через регистратор тоже не выйдет.
Добрый день! Большое спасибо за статью! на днях как придет CH340G буду пробовать шить. Шить хочу сразу дамп через CH341A, так как есть опыт работы с ним. С Putty не сталкивался. Скажите что значит “Остановить загрузку нажатием клавиши *” нажать * на клаве где топ клавиши или что? (извиняюсь за тупой вопрос). И второе, если прошивать дамп на программаторе, то конфигурирование выполняется через Putty? Можно тут поподробнее?
Добрый день! Если есть опыт с дампами, то можно поправить серийник и MAC прямо в дампе. Я тоже снимал дамп посредством CH341A. Конечно же без выпаивания 🙂 и был один интересный момент. При подключении всех 8-ми лапок даже микруха не определялась и уже думал, что придётся паять, но вдруг случайно отвадился зажим с 8-й лапки и микросхема определилась! И не только определилась. но и считалась. Проверку правильности считывания делал – всё хорошо.
CH341A можно переключить в режим TTL, подключить к разъёму UART и сделать всё через Putty.
Здравствуйте, а когда будет будет статья про прошивку через uart камеры QVC-IPC-136W?
Привет! А надо? Вроде бы есть ведь даже видео. Хотя, вообще, если честно, есть такая мысль и камера такая есть уже. Даже две. И надо что-то с ними делать.
Конечно надо) Видео же которое я видел там с выпаиванием микросхемы что совсем не удобно. По uart намного удобнее и думаю многие со мной согласятся.
Вот это правильно! А то, почему-то, чаще говорят что-то типа: “Да мне проще микруху “сдуть”, чем в консоли ковыряться.” Не согласен. Тем более, что обычно в консоль лезть всё равно приходится даже после заливки дампа программатором. Да и вариант с UART-ом выглядит всяко изящнее.
Конечно, плюс паять далеко не все умеют и можно повредить элементы находящиеся рядом. А вот проводами подключиться уже практически любой сможет.
Твои слова да Богу в уши, как говорится!