You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On every hi3516cv500-family image (kernel 7.0.0, hisilicon-opensdk), all 45 open_*.ko modules are present twice:
/lib/modules/7.0.0/hisilicon/ — hand-installed by HISILICON_OPENSDK_INSTALL_TARGET_CMDS in general/package/hisilicon-opensdk/hisilicon-opensdk.mk (the cv500 branch installs open_*.ko verbatim);
/lib/modules/7.0.0/updates/ — installed a second time by buildroot's kernel-module infrastructure (modules_install with INSTALL_MOD_STRIP=1).
Each tree is ~5.4 MB uncompressed. The copies are near- but not byte-identical (strip differences), so squashfs cannot deduplicate them — roughly 1.7 MB of compressed rootfs wasted on each of the four boards (hi3516av300_lite/_neo, hi3516cv500_lite, hi3516dv300_lite). Numbers are from the sizes.hi3516av300-neo.json asset of nightly-20260831-bebd80a (also visible in firmware-explorer).
load_hisilicon for this family drives everything through modprobe open_*, so depmod's search order resolves each name to exactly one tree and the other is dead weight. The hisilicon/ copy exists for vendor-name alignment on the older families; on cv500 the names in updates/ are already the open_* names the load script asks for, so the hand-install may have been redundant from birth.
Candidate fixes, in preference order:
Drop the cv500 hand-install and let updates/ serve modprobe (verify on hardware which tree depmod currently resolves — cf. the xm530 case where depmod preferred the vendor copy, xm530: autoload the SD card driver at boot #2315).
If both paths must keep existing, make the copies byte-identical so squashfs dedups them.
Needs a cv500-family board to verify boot + stream before touching — which is why this is an issue and not part of the PR that found it (#2346's size regression on hi3516av300_neo was fixed by pruning the consumer-less libsvpruntime.so/libnnie.so instead).
On every hi3516cv500-family image (kernel 7.0.0, hisilicon-opensdk), all 45
open_*.komodules are present twice:/lib/modules/7.0.0/hisilicon/— hand-installed byHISILICON_OPENSDK_INSTALL_TARGET_CMDSingeneral/package/hisilicon-opensdk/hisilicon-opensdk.mk(the cv500 branch installsopen_*.koverbatim);/lib/modules/7.0.0/updates/— installed a second time by buildroot's kernel-module infrastructure (modules_installwithINSTALL_MOD_STRIP=1).Each tree is ~5.4 MB uncompressed. The copies are near- but not byte-identical (strip differences), so squashfs cannot deduplicate them — roughly 1.7 MB of compressed rootfs wasted on each of the four boards (
hi3516av300_lite/_neo,hi3516cv500_lite,hi3516dv300_lite). Numbers are from thesizes.hi3516av300-neo.jsonasset of nightly-20260831-bebd80a (also visible in firmware-explorer).load_hisiliconfor this family drives everything throughmodprobe open_*, so depmod's search order resolves each name to exactly one tree and the other is dead weight. Thehisilicon/copy exists for vendor-name alignment on the older families; on cv500 the names inupdates/are already theopen_*names the load script asks for, so the hand-install may have been redundant from birth.Candidate fixes, in preference order:
updates/serve modprobe (verify on hardware which tree depmod currently resolves — cf. the xm530 case where depmod preferred the vendor copy, xm530: autoload the SD card driver at boot #2315).Needs a cv500-family board to verify boot + stream before touching — which is why this is an issue and not part of the PR that found it (#2346's size regression on
hi3516av300_neowas fixed by pruning the consumer-lesslibsvpruntime.so/libnnie.soinstead).