Hi @n95k. I'm facing the same issue with the DVR that I'm working on. The manufacture is the same as yours.
The steps are below:
$ sudo unzip General_General_AHB8004R-MH_V4.03.R11.7601.Nat.OnvifC.20190926.bin
Archive: General_General_AHB8004R-MH_V4.03.R11.7601.Nat.OnvifC.20190926.bin
inflating: custom-x.cramfs.img
inflating: InstallDesc
inflating: logo-x.cramfs.img
inflating: romfs-x.cramfs.img
inflating: u-boot.bin.img
inflating: user-x.cramfs.img
inflating: web-x.cramfs.img
$ file romfs-x.cramfs.img
romfs-x.cramfs.img: u-boot legacy uImage, linux, Linux/ARM, OS Kernel Image (gzip), 3481600 bytes, Thu Sep 26 03:12:37 2019, Load Address: 0x00050000, Entry Point: 0x00430000, Header CRC: 0x050D9A23, Data CRC: 0x0525E509
$ dd bs=1 skip=64 if=romfs-x.cramfs.img of=romfs-x.cramfs
3481600+0 records in
3481600+0 records out
3481600 bytes (3,5 MB, 3,3 MiB) copied, 405,923 s, 8,6 kB/s
$ file romfs-x.cramfs
romfs-x.cramfs: Squashfs filesystem, little endian, version 4.0, 3481434 bytes, 217 inodes, blocksize: 262144 bytes, created: Thu Sep 26 03:12:37 2019
$ sudo unsquashfs romfs-x.cramfs
Parallel unsquashfs: Using 4 processors
184 inodes (197 blocks) to write
created 50 files
created 33 directories
created 0 symlinks
created 0 devices
created 0 fifos
The result was:
squashfs-root/
Inside the squashfs-root/, we have:
total 16
drwxrwx--- 1 root vboxsf 4096 set 26 2019 ./
drwxrwx--- 1 root vboxsf 4096 dez 16 17:32 ../
drwxrwx--- 1 root vboxsf 0 set 26 2019 bin/
drwxrwx--- 1 root vboxsf 0 set 26 2019 boot/
drwxrwx--- 1 root vboxsf 0 abr 24 2010 dev/
drwxrwx--- 1 root vboxsf 4096 fev 7 2018 etc/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 home/
drwxrwx--- 1 root vboxsf 4096 set 26 2019 lib/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 mnt/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 opt/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 proc/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 root/
drwxrwx--- 1 root vboxsf 0 set 26 2019 sbin/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 share/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 slv/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 sys/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 usr/
drwxrwx--- 1 root vboxsf 0 abr 20 2010 var/
After edit the /etc/init.d, I made the squashfs:
$ mksquashfs squashfs-root/ custom-x.cramfs
If I compare the romfs-x.cramfs before edit and after, I can see the diference on inodes number:
--> Before unsquashfs and edit:
$ file romfs-x.cramfs
romfs-x.cramfs: Squashfs filesystem, little endian, version 4.0, 3481434 bytes, 217 inodes, blocksize: 262144 bytes, created: Thu Sep 26 03:12:37 2019
--> After the squashfs and edit
$ file romfs-x.cramfs
romfs-x.cramfs: Squashfs filesystem, little endian, version 4.0, 3833358 bytes, 83 inodes, blocksize: 131072 bytes, created: Thu Dec 17 01:14:53 2020
Then i made the image whit edited romfs:
$ mkimage -A arm -O linux -T kernel -n "linux" -e 0x00430000 -a 0x00050000 -d romfs-x.cramfs romfs-x.cramfs.img
Image Name: linux
Created: Wed Dec 16 17:30:40 2020
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 3833856 Bytes = 3744.00 KiB = 3.66 MiB
Load Address: 00050000
Entry Point: 00430000
After upload the DVR by TFTP and u-boot command, the download was executed perfectly.
But, after the reset, the process stops and an infinite loop with u-boot start and fail became my actual situation.
It can be solved if I reload the original romfs-x.cramfs.img file.
What am I doing wrong in the image repack process?
Thanks in advance.