Восстановление прошивки IP-камеры
Восстановление прошивки IP-камеры
Имеется такая камера
http://ru.aliexpress.com/item/1920X1080 ... 46738.html" onclick="window.open(this.href);return false;
Китайцы прислали новую прошивку, при прошивке камера загнулась. Теперь при подаче питания сетевой интерфейс поднимается на несколько секунд, потом камера ребутится.
Подключился к ней через RS-232 (с помощью переходника USB-UART). Видно, что U-Boot живой, он пытается поднять ядро линукса и на этом обламывается, после чего перезагружает машинку:
U-Boot 2010.06-svn (Mar 27 2014 - 10:49:35)
DRAM: 256 MiB
Check spi flash controller v350... Found
Spi(cs1) ID: 0xC2 0x20 0x18 0xC2 0x20 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"MX25L128"
envcrc 0x41719712
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 ERROR<ffffffff> !
## Booting kernel from Legacy Image at 82000000 ...
Image Name: linux
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1885200 Bytes = 1.8 MiB
Load Address: 80008000
Entry Point: 80008000
load=0x80008000,_bss_end=808293d8,image_end=801d4410,boot_sp=807971d8
Loading Kernel Image ... OK
OK
Starting kernel ...
data abort
pc : [<80008af8>] lr : [<80007fff>]
sp : 801d5408 ip : 0000001c fp : 801d5424
r10: 80007fff r9 : ffffffff r8 : 80000100
r7 : 00001f40 r6 : 7c006fed r5 : 7ff87ffd r4 : 801d43e0
r3 : 00001f40 r2 : 801e5428 r1 : 801d5428 r0 : 80008000
Flags: nzCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
resetting ...
... и все повторяется...
На нажатие Ctrl+C не реагирует. Может быть, из u-boot'а просто выпилено все лишнее, в том числе и системное меню?
Далее. Имеется вторая точно такая же камера. Она абсолютно рабочая, трудится в поте лица.
К ней можно подключиться через telnet рутом (пароль xmhdipc).
Вот что видно в папке bin:
# ls
BurnHWID dvrHelper iptunnel netinit setuidgid
[ echo kill netstat sh
[[ env killall ping sleep
arping envdir killall5 ping6 softlimit
ash envuidgid linux32 pkill sv
beep false linux64 printenv test
btools himc ln ps top
busybox himd logger pwd touch
cat himd.l login rm true
chmod himm ls rmdir tty
chpst hush mkdir rtcwake udevd
cp ip mkfifo runsv udevinfo
cttyhack ipaddr mknod runsvdir udevstart
date iplink mount script udpsvd
dmesg iproute msh scriptreplay umount
dumpleases iprule mv setarch
Вот распечатка систем инфо:
**********************************************************************
| SYSTEM INFO
| ID: 8043420003610426
| product type: 50H20L
| video channel: 1
| audio channel: 1
| alarm in: 2
| alarm out: 0
| forward video chip: MT9P006
| DSP chip: HI3516C
| analog audio mode: voice codec
| talkback: voice codec
| back video chip: no chip
| store interface: SDIO
| matrix surpport: No
| wireless interface: USB
| hardware encode: encode chip
| hardware version: 1
| video_interface: BNC
| net_interface: Ethernet
| hardware info len: 8
**********************************************************************
Нет ли возможности слить прошивку с работающей камеры, не выпаивая флешку?
Задача - получить дамп для заливки во флешку неживой камеры (через программатор, естественно).
И нельзя ли сделать этот образ на основе .bin файла прошивки (это zip архив, внутри которого несколько .img файлов)?
http://ru.aliexpress.com/item/1920X1080 ... 46738.html" onclick="window.open(this.href);return false;
Китайцы прислали новую прошивку, при прошивке камера загнулась. Теперь при подаче питания сетевой интерфейс поднимается на несколько секунд, потом камера ребутится.
Подключился к ней через RS-232 (с помощью переходника USB-UART). Видно, что U-Boot живой, он пытается поднять ядро линукса и на этом обламывается, после чего перезагружает машинку:
U-Boot 2010.06-svn (Mar 27 2014 - 10:49:35)
DRAM: 256 MiB
Check spi flash controller v350... Found
Spi(cs1) ID: 0xC2 0x20 0x18 0xC2 0x20 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"MX25L128"
envcrc 0x41719712
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 ERROR<ffffffff> !
## Booting kernel from Legacy Image at 82000000 ...
Image Name: linux
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1885200 Bytes = 1.8 MiB
Load Address: 80008000
Entry Point: 80008000
load=0x80008000,_bss_end=808293d8,image_end=801d4410,boot_sp=807971d8
Loading Kernel Image ... OK
OK
Starting kernel ...
data abort
pc : [<80008af8>] lr : [<80007fff>]
sp : 801d5408 ip : 0000001c fp : 801d5424
r10: 80007fff r9 : ffffffff r8 : 80000100
r7 : 00001f40 r6 : 7c006fed r5 : 7ff87ffd r4 : 801d43e0
r3 : 00001f40 r2 : 801e5428 r1 : 801d5428 r0 : 80008000
Flags: nzCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
resetting ...
... и все повторяется...
На нажатие Ctrl+C не реагирует. Может быть, из u-boot'а просто выпилено все лишнее, в том числе и системное меню?
Далее. Имеется вторая точно такая же камера. Она абсолютно рабочая, трудится в поте лица.
К ней можно подключиться через telnet рутом (пароль xmhdipc).
Вот что видно в папке bin:
# ls
BurnHWID dvrHelper iptunnel netinit setuidgid
[ echo kill netstat sh
[[ env killall ping sleep
arping envdir killall5 ping6 softlimit
ash envuidgid linux32 pkill sv
beep false linux64 printenv test
btools himc ln ps top
busybox himd logger pwd touch
cat himd.l login rm true
chmod himm ls rmdir tty
chpst hush mkdir rtcwake udevd
cp ip mkfifo runsv udevinfo
cttyhack ipaddr mknod runsvdir udevstart
date iplink mount script udpsvd
dmesg iproute msh scriptreplay umount
dumpleases iprule mv setarch
Вот распечатка систем инфо:
**********************************************************************
| SYSTEM INFO
| ID: 8043420003610426
| product type: 50H20L
| video channel: 1
| audio channel: 1
| alarm in: 2
| alarm out: 0
| forward video chip: MT9P006
| DSP chip: HI3516C
| analog audio mode: voice codec
| talkback: voice codec
| back video chip: no chip
| store interface: SDIO
| matrix surpport: No
| wireless interface: USB
| hardware encode: encode chip
| hardware version: 1
| video_interface: BNC
| net_interface: Ethernet
| hardware info len: 8
**********************************************************************
Нет ли возможности слить прошивку с работающей камеры, не выпаивая флешку?
Задача - получить дамп для заливки во флешку неживой камеры (через программатор, естественно).
И нельзя ли сделать этот образ на основе .bin файла прошивки (это zip архив, внутри которого несколько .img файлов)?
Re: Восстановление прошивки IP-камеры
А может быть, у кого-то есть дамп с платформы 50H20L? Пусть даже не для этой камеры, главное, чтобы поднять ее, а дальше можно будет прошить штатно.
Может быть, для этого подойдет дамп и с другой платформы на проце HI3516?
Может быть, для этого подойдет дамп и с другой платформы на проце HI3516?
Re: Восстановление прошивки IP-камеры
если есть программатор, слейте с рабочей камеры дамп
Re: Восстановление прошивки IP-камеры
Это понятно, для этого нужны лишние действия, плюс камера работает, ее нужно отключать и снимать.
Я думал, может можно собрать дамп для заливки из файлов .img прошивки.
Я думал, может можно собрать дамп для заливки из файлов .img прошивки.
Re: Восстановление прошивки IP-камеры
На работающей камере в каталоге /boot лежит файл uImage размером 3064516.
Интересно, можно ли его как-то использовать?
Интересно, можно ли его как-то использовать?
Re: Восстановление прошивки IP-камеры
Короче, с рабочей камеры сливаем прошивку и шьем в дефектную:
1. mkdir /var/test
2. mount -o username=*****,password=***** //192.168.1.100/test /var/test
3. cp /dev/mtdblock* /var/test
4. Собираем файлы mtdblock* в один файл (например, командой copy /b)
5. Выпаиваем флешку из мертвой камеры (у меня 8-ногая SPI микросхема MX25L12835F).
6. Шьем полученный файл во флешку
7. Припаиваем обратно.
При выпаивании случилась небольшая беда.
Видимо, из-за плохого качества платы отвалилась площадка под ногу SIO#3 микросхемы. Напрочь.
Как выяснилось, эта нога опциональная и в данной камере не используется.
Прошить без нее тоже можно, отключив проверку корректности подключения пинов.
1. mkdir /var/test
2. mount -o username=*****,password=***** //192.168.1.100/test /var/test
3. cp /dev/mtdblock* /var/test
4. Собираем файлы mtdblock* в один файл (например, командой copy /b)
5. Выпаиваем флешку из мертвой камеры (у меня 8-ногая SPI микросхема MX25L12835F).
6. Шьем полученный файл во флешку
7. Припаиваем обратно.
При выпаивании случилась небольшая беда.
Видимо, из-за плохого качества платы отвалилась площадка под ногу SIO#3 микросхемы. Напрочь.
Как выяснилось, эта нога опциональная и в данной камере не используется.

Прошить без нее тоже можно, отключив проверку корректности подключения пинов.
Re: Восстановление прошивки IP-камеры
Можно и не выпаивать. Используйте это http://ru.aliexpress.com/item/1PCS-Prog ... 67821.html" onclick="window.open(this.href);return false;
- Sonya
- Специалист
- Сообщения: 1313
- Зарегистрирован: 12 авг 2014, 15:24
- Откуда: Сергиев Посад
- Контактная информация:
Re: Восстановление прошивки IP-камеры
Класс, вот уж не думал, что в камере есть модуль самбы! Голову себе сломал, как туда флешку вкрячить, чтобы бэкап перекинуть... А тут всё элементарно.alfptz писал(а): 2. mount -o username=*****,password=***** //192.168.1.100/test /var/test
Спасибо за подсказку. Уже сделал дампы, есть мысль выложить их в соседней теме.
Re: Восстановление прошивки IP-камеры
Встречал похожий вариант, но ваш лучше. Мне не понятно некоторые моменты, я Linux пока плохо знаю, можете пояснить.alfptz писал(а):Короче, с рабочей камеры сливаем прошивку и шьем в дефектную:
1. mkdir /var/test
2. mount -o username=*****,password=***** //192.168.1.100/test /var/test
1. Директория создается в камере или на компьютере?
2. Сетевой каталог примонтировался к камере или к компьютеру?
3. Mtdblock* копируются в файлы с каким расширением?
Re: Восстановление прошивки IP-камеры
1. В камере
2. В камере монтируется сетевой каталог с компьютера
3. Без расширения они. mtdblock0, mtdblock1 и т. д.
2. В камере монтируется сетевой каталог с компьютера
3. Без расширения они. mtdblock0, mtdblock1 и т. д.
Re: Восстановление прошивки IP-камеры
А как из под telnet прошить камеру залитым на нее файлом прошивки?
Уже спрашивал у Sonya по поводу этого на другом форуме... у самого идея только такая - "mtd -r write file.bin firmware". Однако пока не было времени попробовать.
Уже спрашивал у Sonya по поводу этого на другом форуме... у самого идея только такая - "mtd -r write file.bin firmware". Однако пока не было времени попробовать.
Re: Восстановление прошивки IP-камеры
Выяснил, что из-под telnet mtd блоки (камера от juan - HI3518C+AR0130, на борту Linux 3.0.
прошиваются таким образом:
# flashcp -v mtdblock3 /dev/mtd3
Erasing block: 4/4 (100%)
Writing kb: 248/256 (96%)
Verifying kb: 248/256 (96%)
Выложите кто-нибудь по отдельности mtdblock0-mtdblock7 от платформы 53H13. Хочу довести дело до конца не выпаивая flash-память.

# flashcp -v mtdblock3 /dev/mtd3
Erasing block: 4/4 (100%)
Writing kb: 248/256 (96%)
Verifying kb: 248/256 (96%)
Выложите кто-нибудь по отдельности mtdblock0-mtdblock7 от платформы 53H13. Хочу довести дело до конца не выпаивая flash-память.