Восстановление IP камеры PD21-M2

Опубликовано: 2019-3-15 10:00

    Попались в руки 2 IP камеры Polyvision PD21-M2-B2.8-IP не рабочие. Просто не включались. Попробовал восстановить, ведь full HD IP камеры на дороге не валяются.

2019-03-15

    Плата небольшая, всё как у китайцев - дешево и сердито.

2019-03-15

    Бегло пробежался по плате после подачи напряжения в поисках этого самого напряжения и оказалось, что один из диодов (маркировка s4) был в обрыве, замени на другой, со старой материнской платы, чуть большего размера.

2019-03-15

    Теперь после подачи напряжения блок питания стал уходить в защиту, очевидно, что где-то короткое замыкание, в цепи питания после заменённого диода. Мысли были разные, возможно что сгорел проц или память... В поисках истины подключил другой бп, который в защиту уходил не хотя, и тактильным способом обнаружил нагревающийся керамический конденсатор. Он был в коротком замыкании. Его ёмкость уже не определить, впаял просто похожий по размером, с той же донорской материнской платы. В результате на LAN порту, появилась активность и камера ожила... Но адреса её не знаю, никакие ip сканеры не могут её увидеть, софт для поиска камер так же не видел её...

2019-03-15

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

2019-03-15

    Подключался по UART с помощью USB-UART свистка на микросхеме ch340. На али стоит в районе 50р.

2019-03-15

    И удача снова на моей стороне, камера грузится, и пытается работать, но пока к ней не подключиться никак, кроме UART...

U-Boot 2010.06-svn (Mar 27 2014 - 10:49:35)

DRAM:  256 MiB
Check spi flash controller v350... Found
Spi(cs1) ID: 0xEF 0x40 0x18 0x00 0x00 0x00
Spi(cs1): Block:64KB Chip:16MB Name:"W25Q128B"
envcrc 0x317b012d
ENV_SIZE = 0x3fffc
In:    serial
Out:   serial
Err:   serial
Press Ctrl+C to stop autoboot
CFG_BOOT_ADDR:0x58080000
16384 KiB hi_sfc at 0:0 is now current device

### boot load complete: 1973968 bytes loaded to 0x82000000
### SAVE TO 80008000 !
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   linux
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1973904 Bytes = 1.9 MiB
   Load Address: 80008000
   Entry Point:  80008000


load=0x80008000,_bss_end=808293d8,image_end=801e9e90,boot_sp=807971d8
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

    Но на этом вывод в терминал заканчивался... дальше была абсолютная тишина. Но если во время загрузки успеть нажать на CTRL+C, то можно попасть в U-Boot и прошить девайс с помощью TFTP. Этим я и занялся...

U-Boot 2010.06-svn (Mar 27 2014 - 10:49:35)

DRAM:  256 MiB
Check spi flash controller v350... Found
Spi(cs1) ID: 0xEF 0x40 0x18 0x00 0x00 0x00
Spi(cs1): Block:64KB Chip:16MB Name:"W25Q128B"
envcrc 0x317b012d
ENV_SIZE = 0x3fffc
In:    serial
Out:   serial
Err:   serial
Press Ctrl+C to stop autoboot
hisilicon #

    По команде printenv можно увидеть переменные окружения, в которых есть команды прошивки девайса...

bootcmd=fload;bootm 0x82000000
bootdelay=1
baudrate=115200
bootfile="uImage"
da=mw.b 0x82000000 ff 1000000;tftp 0x82000000 u-boot.bin.img;sf probe 0;flwrite
du=mw.b 0x82000000 ff 1000000;tftp 0x82000000 user-x.cramfs.img;sf probe 0;flwrite
dr=mw.b 0x82000000 ff 1000000;tftp 0x82000000 romfs-x.cramfs.img;sf probe 0;flwrite
dw=mw.b 0x82000000 ff 1000000;tftp 0x82000000 web-x.cramfs.img;sf probe 0;flwrite
dl=mw.b 0x82000000 ff 1000000;tftp 0x82000000 logo-x.cramfs.img;sf probe 0;flwrite
dc=mw.b 0x82000000 ff 1000000;tftp 0x82000000 custom-x.cramfs.img;sf probe 0;flwrite
up=mw.b 0x82000000 ff 1000000;tftp 0x82000000 update.img;sf probe 0;flwrite
ua=mw.b 0x82000000 ff 1000000;tftp 0x82000000 upall_verify.img;sf probe 0;flwrite
tk=mw.b 0x82000000 ff 1000000;tftp 0x82000000 uImage; bootm 0x82000000
dd=mw.b 0x82000000 ff 1000000;tftp 0x82000000 mtd-x.jffs2.img;sf probe 0;flwrite
ipaddr=192.168.1.10
serverip=192.168.1.107
netmask=255.255.255.0
bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock1 rootfstype=cramfs mtdparts=hi_sfc:512K(boot),5M(romfs),7424K(user),1536K(web),256K(custom),256K(logo),1280K(mtd)
ethaddr=00:12:12:61:6d:85
HWID=8043420003610426
appVideoStandard=PAL
appSystemLanguage=Russian
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06-svn (Mar 27 2014 - 10:49:35)

    Но для прошивки нужно запустить на ПК сервер TFTP, я запустил первый попавшийся TFTPd64 by Ph. Jounin. В нём нужно выбрать сетевой интерфейс, на котором будет висеть протокол TFTP и папку, из которой будут отдаваться файлы прошивки. Прошивку я нашел на сайте Polyvision, но просто так её не прошить. Сначала нужно её распаковать, хоть расширение у неё .bin, на самом деле это обычный .zip архив. После распаковки будут доступны файлы прошивки разделов памяти. Я просто положил их в папку с TFTPd64, т.к. по умолчанию сервер будет отдавать файлы именно от туда.

    Официальная прошивка камеры

General_HZXM__PD21_M2_IPC_HI3516C_50H20L_RT3070_V4.02.R11.Nat.OnvifS.20160615_ALL.bin

    TFTP сервер

tftpd64.464.zip

    Начнём прошивать... Для начала нужно настроить U-Boot на приём информации по TFTP, для этого нужно установить ip адрес сервера и камеры. Команда sip 192.168.0.5 - устанавливает адрес сервера (т.е. адрес моего ПК), команда lip 192.168.0.10 - устанавливает адрес камеры, хорошо, чтобы они были в одной сети с ПК. (по умолчанию адрес камеры 192.168.1.10, и адрес сервера 192.168.1.107). Теперь мы готовы шить камеру.

    Сначала выберем SPI память, которую будем шить

hisilicon # sf probe 0

    Теперь загрузим в ОЗУ файл прошивки user-x.cramfs.img

hisilicon # tftp 0x82000000 user-x.cramfs.img

    И, наконец, прошьем её в SPI память

hisilicon # flwrite

    Теперь нужно повторить 2 последних пункта для других cramfs образов (romfs-x.cramfs.img, web-x.cramfs.img, logo-x.cramfs.img, custom-x.cramfs.img) и выполнить сброс камеры.

    Команда tftp загружает файл заданный в её параметре по адресу 0x82000000 в оперативную память для последующей прошивки в последовательную память (из ОЗУ в ПЗУ). Адрес не нужно менять, только название файла. Flwrite будет записывать файл из ОЗУ с адреса 0x82000000 в пзу (spi память) в те адреса, которые указаны внутри образов cramfs.img, поэтому таким образом нельзя шить не cramfs.img файлы, иначе есть риск убить загрузчик, и тогда придется прошивать SPI память с помощью программатора.

    После прошивки имеет смысл сбросить настройки камеры следующим образом. Это очистка раздела mtd, который находится в конце флешки.

hisilicon # sf probe 0
hisilicon # sf erase 0xec0000 0x140000
hisilicon # reset

    Важно не промахнуться с адресами, как их вычислить можно почитать в следующем документе

Сброс пароля на видеорегистраторе NBD6904T-F через UART.pdf

    После перезагрузки можно будет зайти на вэб интерфейс камеры по адресу 192.162.1.10 и производить настройки камеры.

    Таким образом я восстановил 2 камеры, неисправности были абсолютно одинаковые.

Внимание! Копирование, в том числе частичное, запрещено!

Теги: Ремонт Восстановление камера ip поливижн polyvision camera rebirth firmware прошивка uart

vfiuchcikicshuusrch.ddns.net
Карта Сайта