Сразу скажу, в камерах IP и их восстановлении я разбираюсь всего два дня.
Камера бренда MISECU маркировка на камере MI-XM-629EBP-AI-50
Плата с модулем камере имеет маркировку BLK16EV3-0235P-38x38
Микроконтроллер на камере: Hi3516ERBCV300
Еще таких (но рабочих) есть 8 штук, но я не очень понял как посмотреть их прошивку, так как при подключении к тем камерам по айпи попадаю на регистратор, видимо потому что он подключен. И прошивка там такая: V4.03.R11.C6380202.12201.140000.0000001 (притом что они не все прям одинаковые, это видно по функционалу)
Вроде как номер прошивки камер идет после R11
Сломанная камера не пингуется, лампочка Ethernet porta не моргает, а просто горит.
Подключился к плате по уарту, считал с нее всякое, лог загрузки:
Help:System startup
Uncompress Ok!
U-Boot 2016.11-g2fc5f58-dirty (Dec 06 2019 - 14:43:31 +0800)hi3516ev300
Relocation Offset is: 0771b000
Relocating to 47f1b000, new gd at 47edaef0, sp at 47edaed0
SPI Nor: eFlashType: 24.
Flash Name: XM_XT25F64B-S{0xB4017), 0x800000.
@hifmc_spi_nor_probe(), XmSpiNor_ProtMgr_probe(): OK.
@XmSpiNor_enableQuadMode(), Quad was Disabled, SRx: [2, 0x0].
CONFIG_CLOSE_SPI_8PIN_4IO = y.
read->iftype[0: STD, 1: DUAL, 2: DIO, 3: QUAD, 4: QIO]: 1.
Current level[6], lock_level_max:7.
at xm_get_locked_range() sr:0x18, level:6.
lk[6 => 0x400000]
SRx val: {[1, 0x38], [1, 0x0], [0, 0x0], [0, 0x0]}.
In: serial
Out: serial
Err: serial
Net: eth0
Hit ctrl+c to stop autoboot: 0
@do_spi_flash_probe() flash->erase_size:65536
device 0 offset 0x40000, size 0x550000
SF: 5570560 bytes @ 0x40000 Read: OK
srcAddr 0x43000000, dstAddr 0x42000000
created_inode 0x47edb810
find_squashfs_file: name bin, start_block 0, offset 2063, type 1
find_squashfs_file: name boot, start_block 0, offset 2247, type 1
read inode: name boot, sb 0, of 2247, type 1
find_squashfs_file: name uImage, start_block 0, offset 2095, type 2
read inode: name uImage, sb 0, of 2095, type 2
write_file: regular file, blocks 30
len 1925936
### FS load complete: 1925936 bytes loaded to 0x42000000
## Booting kernel from Legacy Image at 42000000 ...
Image Name: Linux-4.9.37
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1925872 Bytes = 1.8 MiB
Load Address: 40008000
Entry Point: 40008000
Loading Kernel Image ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Bdinfo:hisilicon # ?
? - alias for 'help'
base - print or set address offset
bdinfo - print Board Info structure
bitwait - bit compare and wait for equal
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
clearenv- clear env partition.
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
dcache - enable or disable data cache
ddr - ddr training function
dispaddr- display the value of 'addr'
dispenv - display the value of 'env_var'
dispver - display the uboot version
editenv - edit environment variable
env - environment handling commands
erase - erase FLASH memory
exit - exit script
false - do nothing, unsuccessfully
flinfo - print FLASH memory information
flwrite - SPI flash sub-system
getinfo - print hardware information
go - start application at address 'addr'
gzwrite - unzip and write memory to block device
help - print command description/usage
icache - enable or disable instruction cache
loadb - load binary file over serial line (kermit mode)
loadx - load binary file over serial line (xmodem mode)
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on ahelddress range
md - memory display
mii - MII utility commands
mm - memory modify (auto-incrementing address)
mw - memory write (fill)
nm - memory modify (constant address)
part - disk partition related commands
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
pxe - commands to get and boot from pxe files
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
sleep - delay execution for some time
squashfsload- fsload - load binary file from a filesystem image
sysboot - command to get and boot from syslinux files
test - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
true - do nothing, successfully
unzip - unzip a memory region
version - print monitor, compiler and linker version
waitus - wait for n us
printenv:hisilicon # bdinfo
arch_number = 0x00001F40
boot_params = 0x40000100
DRAM bank = 0x00000000
-> start = 0x40000000
-> size = 0x08000000
eth0name = eth0
ethaddr = 00:12:31:6f:0f:de
current eth = eth0
ip_addr = 192.168.1.10
baudrate = 115200 bps
TLB addr = 0x47FF0000
relocaddr = 0x47F1B000
reloc off = 0x0771B000
irq_sp = 0x47EDAEE0
sp start = 0x47EDAED0
Early malloc usage: 70 / 2000
По жизненному опыту знаю что нельзя все подряд тыкать) С линуксом оч поверхостно. Знаю что он есть. Иногда вводил команды из гугла ))hisilicon # printenv
NID=0x0251
appCloudExAbility=b+JfXoJ0qZk=
appNetIP=0xE258A8C00x00FFFFFF0x0158A8C0
baudrate=115200
bootargs=init=linuxrc mem=${osmem} console=ttyAMA0,115200 root=/dev/mtdblock1 rootfstype=squashfs mtdparts=hi_sfc:0x40000(boot),0x2E0000(romfs),0x420000(user),0x40000(web),0x30000(custom),0x50000(mtd)
bootcmd=setenv setargs setenv bootargs ${bootargs};run setargs;sf probe 0;sf read 43000000 40000 550000;squashfsload;bootm 0x42000000
bootdelay=0
bootfile="uImage"
da=mw.b 0x42000000 ff 1000000;tftp 0x42000000 u-boot.bin.img;sf probe 0;flwrite
dc=mw.b 0x42000000 ff 1000000;tftp 0x42000000 custom-x.cramfs.img;sf probe 0;flwrite
dd=mw.b 0x42000000 ff 1000000;tftp 0x42000000 mtd-x.jffs2.img;sf probe 0;flwrite
de=mw.b 0x42000000 ff 1000000;tftp 0x42000000 u-boot.env.img;sf probe 0;flwrite
dl=mw.b 0x42000000 ff 1000000;tftp 0x42000000 logo-x.cramfs.img;sf probe 0;flwrite
dr=mw.b 0x42000000 ff 1000000;tftp 0x42000000 romfs-x.cramfs.img;sf probe 0;flwrite
du=mw.b 0x42000000 ff 1000000;tftp 0x42000000 user-x.cramfs.img;sf probe 0;flwrite
dw=mw.b 0x42000000 ff 1000000;tftp 0x42000000 web-x.cramfs.img;sf probe 0;flwrite
ethact=eth0
ethaddr=00:12:31:6f:0f:de
gatewayip=192.168.1.1
ipaddr=192.168.1.10
netmask=255.255.0.0
osmem=51M
serverip=192.168.1.107
stderr=serial
stdin=serial
stdout=serial
tk=tftp 0x42000000 uImage;setenv setargs setenv bootargs ${bootargs};run setargs;bootm 0x42000000
ua=mw.b 0x42000000 ff 1000000;tftp 0x42000000 upall_verify.img;sf probe 0;flwrite
up=mw.b 0x42000000 ff 1000000;tftp 0x42000000 update.img;sf probe 0;flwrite
ver=U-Boot 2016.11 (Oct 29 2018 - 16:06:38)
verify=n
Environment size: 1667/65532 bytes
U-Boot 2016.11-g2fc5f58-dirty (Dec 06 2019 - 14:43:31 +0800)hi3516ev300
arm-himix100-linux-gcc (Heterogeneous Compiler&Codesign V100R002C00B003) 6.3.0
GNU ld (GNU Binutils) 2.29
Ну понятно что нужно забэкапить прошивку с нее на всякий, но по этому форуму я понял что у этого U-boot нету возможности сохранять на фтп. Тут есть только возможность загрузиться с фтп командой tftpboot.
Но даже если забить на сохранение дампа прошивки, все ровно я не знаю че туда залить и где взять прошивку, и самое главное а для чего искать прошивку? Я уже написал продавцу на али (покупал не я) я просто написал ему с просьбой дать прошивку. Не уверен что даст.
Буду рад всем советам.