После пары дней мучений приходится внось просить помощи(
Прошивка CISCO RV34X-v1.0.03.20 (
https://software.cisco.com/download/home/286287791/type/282465789/release/1.0.03.20)
Значит я выровнял UBI образ, но при его сборке прошивка становится невалидной. Дело не в MD5 хэшах, они в отдельных файлах и я их патчу + валидатор показывает разные ошибки для разных событий: на хэши он ругался отдельно и был быстро пофикшен.
Значит вот эти 2 команды показывают одинаковый результат(rootfs.ubi - то, что пакую я ; _openwrt... - оригинал):
ubireader_utils_info -r rootfs.ubi
ubireader_utils_info -r ../_openwrt-comcerto2000-hgw-rootfs-ubi_nand.img
Volume rootfs
alignment -a 1
default_compr -x zlib
fanout -f 8
image_seq -Q 1141170928
key_hash -k r5
leb_size -e 126976
log_lebs -l 5
max_bud_bytes -j 8388608
max_leb_cnt -c 1984
min_io_size -m 2048
name -N rootfs
orph_lebs -p 1
peb_size -p 131072
sub_page_size -s 2048
version -x 1
vid_hdr_offset -O 2048
vol_id -n 0
#ubinize.ini#
[rootfs]
vol_type=dynamic
vol_flags=autoresize
vol_id=0
vol_name=rootfs
vol_alignment=1
vol_size=76947456
Пакую я автоматом вот так(ubinize.cfg правильно выведен выше):
# cp fs/rootfs.ubi openwrt-comcerto2000-hgw-rootfs-ubi_nand.img - при таком варианте я юзаю свой образ
# cp _openwrt-comcerto2000-hgw-rootfs-ubi_nand.img openwrt-comcerto2000-hgw-rootfs-ubi_nand.img - при таком оригинальный образ
#!/bin/bash
/usr/sbin/mkfs.ubifs -x zlib -m 2048 -e 126976 -c 1984 -r rootfs/ rootfs.img
ubinize -o rootfs.ubi -p 131072 -m 2048 -s 2048 -O 2048 -Q 1141170928 ubinize.cfg
Ошибки в других этапах исключаются тем, что пакую я скриптом:
#!/bin/bash
build_md5sums()
{
md5=($(md5sum openwrt-comcerto2000-hgw-rootfs-ubi_nand.img))
echo 67edf56af0c462a9dfcbb878f7e7ed8c *RV34X-v1.0.03.20-2020-09-17-09-10-48-AM.img > md5sums_fw
echo 639d569e54ba558c5c06d303fd6b9b37 *md5sum_fw-rv340-img >> md5sums_fw
echo 8ec34a0ca7366a3aaf8903e7e0f4d2ab *md5sums_fw >> md5sums_fw
echo 64db77ff254fb2c661813ddd57ff0703 *openwrt-comcerto2000-hgw-rootfs-jffs2-128k.img >> md5sums_fw
echo 98ec0160997289cdf6c179ee2fb664e1 *openwrt-comcerto2000-hgw-rootfs-jffs2-256k.img >> md5sums_fw
echo a79531fd65ace77ae54b206c1d3bcaf4 *openwrt-comcerto2000-hgw-rootfs-jffs2-64k.img >> md5sums_fw
echo $md5 *openwrt-comcerto2000-hgw-rootfs-ubi_nand.img >> md5sums_fw
echo a817c5882b12fa27096d888dc4e28e00 *openwrt-comcerto2000-hgw-rootfs-ubi_nor.img >> md5sums_fw
echo 0c93195db0126b28da9a514fdfe42c42 *openwrt-comcerto2000-hgw-uImage.img >> md5sums_fw
echo 63d16034ff97a701ac7eb07868bd30c6 *openwrt-comcerto2000-hgw-vmlinux >> md5sums_fw
echo 23c491e463625f5e7b81ac6a7ba1dbe2 *preupgrade.gz >> md5sums_fw
echo fd60883a3d275902f0bc7cd54413ac68 *preupgrade_md5sum >> md5sums_fw
echo f0676e6e6f4a44740948296638e40d5f *root_avcsign.yaffs2 >> md5sums_fw
echo dc1c993abf77eb21ff23526c86c32902 *root_configcert.yaffs2 >> md5sums_fw
echo 6a8656ae8e7ad872d997d084023ba06b *root_license.yaffs2 >> md5sums_fw
echo ad39b7336a307d1d2bf27d428325a4f6 *root_webrootdb.yaffs2 >> md5sums_fw
echo 252821dc24122d34dc6f7ec09657a988 *rv340_fw_pack.sh >> md5sums_fw
echo 21eca34f9f3aeca8643930680cb6c861 *script.sh >> md5sums_fw
echo 3df09d36c19b51e514debaf41ea2633b *sha256sums >> md5sums_fw
echo ab2bca8161a5f229fc94d2236b031a33 *test.tgz >> md5sums_fw
echo c1b07e6045af5b8be62a9228e93e60a5 barebox-c2krv340.bin >> md5sums_fw
}
preupgrade_patch()
{
cd _preupgrade.extracted
if test -f 0.tar ; then rm 0.tar ; fi
tar cv preup* > 0.tar
cd ../
if test -f preupgrade; then rm preupgrade ; fi
mv _preupgrade.extracted/0.tar preupgrade
if test -f preupgrade.gz; then rm preupgrade.gz ; fi
gzip preupgrade
md5=($(md5sum preupgrade.gz))
echo $md5 > preupgrade_md5sum
}
firmwareName='RV34X-v1.0.03.20-2020-09-17-09-26-57-AM.img'
dstDir="_$firmwareName.extracted"
cd $dstDir
cd _40.extracted
cd _fw.extracted
cp _openwrt-comcerto2000-hgw-rootfs-ubi_nand.img openwrt-comcerto2000-hgw-rootfs-ubi_nand.img
#cp fs/rootfs.ubi openwrt-comcerto2000-hgw-rootfs-ubi_nand.img
build_md5sums
if test -f 0.tar ; then rm 0.tar ; fi
preupgrade_patch
tar cv bare* firm* img* md5* open* pre* > 0.tar
cd ../
if test -f fw; then rm fw ; fi
mv _fw.extracted/0.tar fw
if test -f fw.gz; then rm fw.gz ; fi
gzip fw
md5=($(md5sum fw.gz))
echo $md5 > md5sum_fw-rv340
###
preupgrade_patch
###
if test -f 0.tar ; then rm 0.tar ; fi
tar cv fw.gz md5sum_fw-rv340 preupgrade* > 0.tar
cd ../
if test -f 40; then rm 40 ; fi
mv _40.extracted/0.tar 40
if test -f 40.gz; then rm 40.gz ; fi
gzip 40
cd ../
if test -f $firmwareName; then rm $firmwareName ; fi
mkimage -A ARM -O linux -T kernel -C none -a 0 -e 0 -n "RV340 Firmware Package" -d _RV34X-v1.0.03.20-2020-09-17-09-26-57-AM.img.extracted/40.gz $firmwareName
Что делать?) Что прочитать ? Куда посмотреть ?) HELP!