Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

Recuperar Cámara IP que ya no enciende tras actualizar el firmware

BocaDePez
BocaDePez

Hola, tengo una camara IP china y hace unos días me dio por actualizar el firmware pero metí el que no era y ya no volvió a encender.

Me puse en contacto con el fabricante para ver si era posible recuperarla metiendo el firmware adecuado en el slot de memoria SD, pero me dijo que esta camara no soporta este metodo.

Buscando por internet he visto como se conectan a este tipo de camaras por un puerto COM y aunque no es la misma, me compre el adaptador USB y he conseguido conectarme.

La web donde he sacado la idea es esta:

felipe.astroza.cl/hacking-hi3518-based-ip-camera/

Y al encender la camara me aparece en putty lo siguiente:

U-Boot 2010.06 (Apr 14 2015 - 03:05:00)

Check spi flash controller v350... Found
Spi(cs1) ID: 0xC8 0x40 0x18 0xC8 0x40 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"GD25Q128"
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
16384 KiB hi_sfc at 0:0 is now current device

## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux-3.0.8
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1527540 Bytes = 1.5 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 3.0.8 (root@localhost.localdomain) (gcc version 4.4.1 (Hisilicon_v                                                                             100(gcc4.4-290+uclibc_0.9.32.1+eabi+linuxpthread)) ) #3 Tue Apr 14 03:16:36 HKT                                                                              2015
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: hi3518
Memory policy: ECC disabled, Data cache writeback
AXI bus clock 200000000.
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 11176
Kernel command line: mem=44M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfsty                                                                             pe=jffs2 mtdparts=hi_sfc:512K(boot),1536K(kernel),14M(rootfs)
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 44MB = 44MB total
Memory: 40788k/40788k available, 4268k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
    vmalloc : 0xc3000000 - 0xfe000000   ( 944 MB)
    lowmem  : 0xc0000000 - 0xc2c00000   (  44 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .init : 0xc0008000 - 0xc001f000   (  92 kB)
      .text : 0xc001f000 - 0xc0393000   (3536 kB)
      .data : 0xc0394000 - 0xc03abae0   (  95 kB)
       .bss : 0xc03abb04 - 0xc03bc890   (  68 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:32 nr_irqs:32 32
sched_clock: 32 bits at 100MHz, resolution 10ns, wraps every 42949ms
Calibrating delay loop... 218.72 BogoMIPS (lpj=1093632)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Serial: AMBA PL011 UART driver
uart:0: ttyAMA0 at MMIO 0x20080000 (irq = 5) is a PL011 rev2
console [ttyAMA0] enabled
uart:1: ttyAMA1 at MMIO 0x20090000 (irq = 5) is a PL011 rev2
uart:2: ttyAMA2 at MMIO 0x200a0000 (irq = 25) is a PL011 rev2
bio: create slab <bio-0> at 0
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: Calling CRDA to update world regulatory domain
Switching to clocksource timer1
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.16)
msgmni has been set to 79
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered (default)
io scheduler cfq registered
Spi id table Version 1.22
Spi(cs1) ID: 0xC8 0x40 0x18 0xC8 0x40 0x18
SPI FLASH start_up_mode is 3 Bytes
Spi(cs1):
Block:64KB
Chip:16MB
Name:"GD25Q128"
spi size: 16MB
chip num: 1
3 cmdlinepart partitions found on MTD device hi_sfc
Creating 3 MTD partitions on "hi_sfc":
0x000000000000-0x000000080000 : "boot"
0x000000080000-0x000000200000 : "kernel"
0x000000200000-0x000001000000 : "rootfs"
Fixed MDIO Bus: probed
himii: probed
usbmon: debugfs is not available
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
hiusb-ehci hiusb-ehci.0: HIUSB EHCI
hiusb-ehci hiusb-ehci.0: new USB bus registered, assigned bus number 1
hiusb-ehci hiusb-ehci.0: irq 15, io mem 0x100b0000
hiusb-ehci hiusb-ehci.0: USB 0.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
hiusb-ohci hiusb-ohci.0: HIUSB OHCI
hiusb-ohci hiusb-ohci.0: new USB bus registered, assigned bus number 2
hiusb-ohci hiusb-ohci.0: irq 16, io mem 0x100a0000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
TCP cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
lib80211: common routines for IEEE802.11 drivers
registered taskstats version 1
▒usb 1-1: new high speed USB device number 2 using hiusb-ehci
VFS: Mounted root (jffs2 filesystem) on device 31:2.
Freeing init memory: 92K

            _ _ _ _ _ _ _ _ _ _ _ _
            \  _  _   _  _ _ ___
            / /__/ \ |_/
           / __   /  -  _ ___
          / /  / /  / /
  _ _ _ _/ /  /  \_/  \_ ______
___________\___\__________________

[RCS]: /etc/init.d/S00devs
[RCS]: /etc/init.d/S01udev
udevd (279): /proc/279/oom_adj is deprecated, please use /proc/279/oom_score_adj                                                                              instead.
[RCS]: /etc/init.d/S80network
ADDRCONF(NETDEV_UP): eth0: link is not ready
sd
sd
/lib/libhichip.so
/lib/libAPILib.so
/lib/libNetLib.so
mtutil7601Usta: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 m                                                                             od_unload ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/mtutil7601Usta.ko': invalid module fo                                                                             rmat
mt7601Usta: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_u                                                                             nload ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/mt7601Usta.ko': invalid module format
mtnet7601Usta: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mo                                                                             d_unload ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/mtnet7601Usta.ko': invalid module for                                                                             mat
extalarm: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unl                                                                             oad ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/extalarm.ko': invalid module format
wdt: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unload A                                                                             RMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/wdt.ko': invalid module format
encript: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unlo                                                                             ad ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/encript.ko': invalid module format
relay: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unload                                                                              ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/relay.ko': invalid module format
reset: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unload                                                                              ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/reset.ko': invalid module format
hi_rtc: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unloa                                                                             d ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/hi_rtc.ko': invalid module format
rled: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unload                                                                              ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/rled.ko': invalid module format
ircut: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unload                                                                              ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/ircut.ko': invalid module format
saradc: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unloa                                                                             d ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/saradc.ko': invalid module format
rs485: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unload                                                                              ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/rs485.ko': invalid module format
light: version magic '3.4.35 mod_unload ARMv5 p2v8 ' should be '3.0.8 mod_unload                                                                              ARMv5 '
insmod: can't insert '/mnt/mtd/ipc/modules/light.ko': invalid module format

(none) login: mmz_start: 0x82e00000, mmz_size: 18M

Y ahi se queda sin poder hacer nada, pero en el arranque indica que se pulse una tecla para cancelarlo y si lo haces puedes insertar comandos y he puesto help y me muestra lo siguiente:

U-Boot 2010.06 (Apr 14 2015 - 03:05:00)

Check spi flash controller v350... Found
Spi(cs1) ID: 0xC8 0x40 0x18 0xC8 0x40 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"GD25Q128"
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
hisilicon #
hisilicon # mkdir /mnt/nfs
Unknown command 'mkdir' - try 'help'
hisilicon # 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
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
getinfo - print hardware information
go      - start application at address 'addr'
help    - print command description/usage
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)
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
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor version

Decir que no tengo conocimientos de linux, pero no se si seria posible de alguna forma cargarle el firmware adecuado que es este:

cd.suneyes.hk/VNew/en/doc/V7.1.4.5.1-20170707.rar

BocaDePez
BocaDePez

Prueba a subirla por tftp a ver si suena la flauta

rbetancor
1

La cámara está viva ... y los errores que te da en la primera captura, son relacionados a que no puede cargar los módulos que controlan el hardware de la propia cámara ... y probablemente se queda esperando a que algún dispositivo esté 'en linea' para seguir.

Lo que ves cuando cancelas la carga, es el shell del cargador de arranque.

Sino tienes conocimientos de linux ... es complicado explicarte los pasos, pero básicamente necesitas arrancar el sistema en modo single y seguir los pasos de el script init que use esa cámara, a excepción de la carga de los módulos, con que consigas cargar y configurar el interfaz de red y el servicio web ... podrás volver a entrar y cargar la firmware adecuada.

Otra opción, es que por TFTP desde el cargador del U-BOOT puedas mandarle la firmware nueva ... pero dudo que sea tan fácil, las firmware suelen ser imagenes squasfs comprimidas ... tienen sus pasos a seguir antes de grabarse en la boot-rom.

🗨️ 13
BocaDePez
BocaDePez

Hay montones de routers que cuando falla el arranque se ponen en modo tftp, les subes el firm y listo. Pero esta es china ... 😂

🗨️ 1
rbetancor

El UBOT le permite descargar un fichero por TFTP ... es probable que pueda recuperar la cámara, montando un server TFTP y cargando el fichero desde el UBOOT

BocaDePez
BocaDePez

He encontrado esta web que aunque no es la misma marca supongo que sera similar.

ipcamtalk.com/threads/dahua-ipc-unbricki…-tftp.16474/

El problema es que configuro la red con los comandos:

setenv ipaddr

setenv gatewayip

setenv netmask

setenv serverip

Y cuando voy a hacer la prueba del ping me sale esto:

hisilicon # ping $ serverip

ping - send ICMP ECHO_REQUEST to network host

Por lo que entiendo que no se configura la red. Desde el PC hago un ping a la direccion que le asigno y tampoco responde

🗨️ 10
rbetancor

esos setenv no te valen de nada si luego no se ejecuta el script que levanta la red ... puedes hacer un config a pelo de la interfaz

ip link set eth0 up

ip addr add 192.168.1.100/24 dev eth0

ip ro add default via 192.168.1.1

🗨️ 9
BocaDePez
BocaDePez

No reconoce el comando IP

hisilicon # ip link set eth0 up
Unknown command 'ip' - try 'help'
🗨️ 8
rbetancor
🗨️ 7
BocaDePez
BocaDePez
🗨️ 6
rbetancor
🗨️ 5
BocaDePez
BocaDePez
🗨️ 4
rbetancor
🗨️ 3
BocaDePez
BocaDePez
🗨️ 2
vukits
vukits

yo apuesto por orden tftp.

¡animos!

🗨️ 1
BocaDePez
BocaDePez

si, tftp puede ser la solución.

BocaDePez
BocaDePez

Si lo haces por hobby pues vale.. pero si quieres recuperar la cámara a solo para NO comprar otra..

🗨️ 1
BocaDePez
BocaDePez

Lo hago por intentar recuperar la cámara. Si estuviera totalmente muerta pues lo dejaba, pero como medio carga, pues hay q intentarlo.

Supongo que tiene que ser relativamente fácil (si se sabe hacer) cargarle los archivos correctos.

Este tipo de cámaras chinas son baratas, pero está en concreto es algo mas cara ya que es ptz con zoom óptico de exterior.

Si no se puede pues nada, pero no sé pierde nada en investigar un poco