hisilicon-cv200: build 18 sensor drivers from openhisilicon source#2042
Merged
Conversation
Bumps HISILICON_OPENSDK_VERSION from 45b17cc to cd1c21d (latest main on github.com/OpenIPC/openhisilicon, includes all the cv200 sensor work landed in PRs #75..#80). Switches all hi3516cv200 sensors that have source in openhisilicon from binary blobs (shipped via hisilicon-osdrv-hi3516cv200/files/sensor/) to source builds (compiled by hisilicon-opensdk and installed via HISILICON_OPENSDK_SENSORS_hi3516cv200). The cv200 sensor list grows from 1 (omnivision_ov2710 only) to 18: aptina_9m034 omnivision_ov9712 smartsens_sc1135 soi_jxf22 aptina_ar0230 omnivision_ov9732 smartsens_sc2035 soi_jxf23 ar0130 omnivision_ov9750 smartsens_sc2135 soi_jxh42 omnivision_ov2710 omnivision_ov9752 smartsens_sc2235 sony_imx222 omnivision_ov2718 panasonic_mn34222 Deletes 17 binary .so blobs from general/package/hisilicon-osdrv-hi3516cv200/files/sensor/ for the 17 sensors with source (ov2710 was already absent — built from source in the previous opensdk pin). Also drops libsns_ov9750_v2.so which was a stale variant superseded by the source-built libsns_ov9750.so. The corresponding INSTALL lines in hisilicon-osdrv-hi3516cv200.mk are removed; only sensors without source remain as binary installs (ar0237, gc1034, gc2023, imx122, imx291, imx323_i2c_dc_v1, jxh62, jxh65, ov2735, sc1145, sc1235, plus the imx323_i2c_dc compat symlink). Verified: built openhisilicon's libraries/ tree at the new pin against the cached cv200 musleabi toolchain — all 18 sensor .so files produced, ARMv5 EABI5 soft-float (matching the camera ABI). Real-hardware testing: jxf22 was end-to-end verified on hi3518ev200 hardware in openhisilicon PR #79 (deployed via direct .so swap, RTSP streamed clean). The other 17 sensors are CI-built but not hardware-tested from this firmware change — they ship identical artifacts to the prior individual openhisilicon PR builds. Net change: 17 binary blobs deleted (every build now reproducible for those sensors), every cv200 build now compiles them from source.
This was referenced May 5, 2026
widgetii
added a commit
that referenced
this pull request
May 7, 2026
Expands HISILICON_OPENSDK_SENSORS_hi3516cv500 from 3 sensors
(imx307, imx335, imx415) to 20 — every cv500 sensor that has source
in the openhisilicon repo at the current pin (680085e).
galaxycore_gc2053 omnivision_os05a_2L sony_imx307
omnivision_os04b10 omnivision_os08a10 sony_imx307_2L
omnivision_os05a omnivision_ov12870 sony_imx327
omnivision_ov2775 omnivision_ov9284 sony_imx327_2L
panasonic_mn34220 primesensor_ps5260_2L sony_imx335
smart_sc4210 sony_imx335_ForCar
sony_imx390
sony_imx415
sony_imx458
Deletes 20 binary blobs from
general/package/hisilicon-osdrv-hi3516cv500/files/sensor/ — every
source-built libname has an exactly-matching binary blob (perfect
overlap), so the binary-deletion count exactly mirrors the list
expansion. The osdrv .mk uses files/sensor/*.so glob, so blob
deletion is sufficient — no .mk edit needed.
Five binary blobs without source counterparts remain (intentional):
libsns_imx290.so libsns_imx307_2l_slave.so
libsns_imx307_i2c_lvds.so libsns_imx334.so
libsns_imx377.so
Verified: all 20 source-built sensors compile cleanly with the cached
cv500 musleabi toolchain (arm-linux-musleabi-gcc 13.3.0). ELF target
ARMv5 EABI5 soft-float, matching the platform's ABI.
Tracks OpenIPC/openhisilicon#82. Same pattern as #2042 (cv200) and
INSTALL_TARGET_CMDS block at hisilicon-opensdk.mk:250.
widgetii
added a commit
that referenced
this pull request
May 8, 2026
Adds HISILICON_OPENSDK_SENSORS_hi3516cv100 with 17 sensors — every
cv100 sensor that has source in the openhisilicon repo at the
current pin (680085e):
aptina_9m034 ov_9712 soi_jxh42
aptina_ar0130 ov_9712+ sony_icx692
aptina_ar0330 pana34031 sony_imx104
aptina_mt9p006 pana34041 sony_imx122
himax_1375 pixelplus_3100k sony_imx138
soi_h22 sony_imx236
Wires the cv100 INSTALL_TARGET_CMDS block to install them via the
standard sensor foreach. The block was previously kernel-modules-
only.
Deletes 11 binary blobs from
general/package/hisilicon-osdrv-hi3516cv100/files/sensor/ — every
source-built libname that exact-matches a binary blob:
libsns_9m034.so libsns_imx138.so libsns_mt9p006.so
libsns_icx692.so libsns_imx236.so libsns_ov9712.so
libsns_imx104.so libsns_mn34041.so libsns_ov9712_plus.so
libsns_imx122.so libsns_po3100k.so
Nineteen binary blobs without exact-match source counterparts
remain (intentional). Variants of source-built sensors with bus/
resolution suffixes (libsns_ar0130_720p, libsns_imx138_i2c_dc,
libsns_jxh42_i2c, libsns_mn34031_720p, libsns_ov9712_i2c_dc) are
preserved as binary alongside the source-built unsuffixed versions
because the cv100 .ini configs reference these specific filenames.
Sensors with no source at all (ar0140, ar0330_1080p, gc1004ok,
imx222_spi_dc, imx225_*, ov2710, ov9732, sc1035_*) also stay.
Naming peculiarities preserved as-is (source uses platform
convention libsns_<model>; binary blobs use legacy non-standard
names that .ini files reference): libsns_hm1375 (source) vs
libsns_himax1375.so (binary, .ini); libsns_h22 (source) vs
libsns_soih22.so (binary, .ini). Both binary versions stay; the
source-built versions ship alongside.
The cv100 osdrv .mk uses files/sensor/*.so glob, so blob deletion
is sufficient — no osdrv .mk edit needed.
Tracks OpenIPC/openhisilicon#82. Closes the per-platform sweep
(after #2042 cv200, #2052 v101, #2053 cv500, #2054 ev200+gk7205,
widgetii
added a commit
that referenced
this pull request
May 8, 2026
…isilicon source
Expands HISILICON_OPENSDK_SENSORS_hi3516ev200 and the matching
gk7205v200 list (which inherits via $(HISILICON_OPENSDK_SENSORS_hi3516ev200)
since gk7205v200 is a symlink to hi3516ev200 in the openhisilicon
sensor tree) from 3 sensors (imx307, imx335, h63) to 30 — every
ev200/gk7205 sensor that has source in the openhisilicon repo at
the current pin (680085e):
aptina_ar0237 omnivision_os02g10 sony_imx290
bt656 omnivision_os05a sony_imx307
galaxycore_gc2053 omnivision_ov2718 sony_imx307_2L
galaxycore_gc2053_ForCar smart_sc2231 sony_imx327
galaxycore_gc4023 smart_sc2235 sony_imx327_2L
galaxycore_gc4653_2L smart_sc223a sony_imx335
galaxycore_gc5603 smart_sc3235 sony_imx335_2L
imagedesign_mis2008 smart_sc3335 sony_imx335_fpv
soi_f37 smart_sc3336 superpix_sp2305
soi_h63 smart_sc4236
smart_sc500ai
Deletes 10 binary blobs from
general/package/hisilicon-osdrv-hi3516ev200/files/sensor/ — the ones
whose libnames overlap exactly with our source-built libnames. Five
binary blobs without source counterparts remain (intentional):
libsns_f22.so libsns_f23.so
libsns_sc2232h.so libsns_sc2239.so
libsns_sc2315e.so
The hi3516ev200 osdrv .mk uses files/sensor/*.so glob, so blob
deletion is sufficient — no .mk edit needed.
Deletes 25 binary blobs from
general/package/goke-osdrv-gk7205v200/files/sensor/ for the same
reason. The goke .mk uses explicit per-blob INSTALL lines, so this
commit also rewrites the sensor INSTALL block to keep only the
remaining binary-only sensors (sc200ai, sc2232h, sc2239, sc223a_4l,
sc2335) with a comment explaining the source-built sensors are now
installed by hisilicon-opensdk.
Files retained as binary blobs in goke (no source available):
libsns_f23.so libsns_f23_dc.so
libsns_gc1054.so libsns_sc200ai.so
libsns_sc2232h.so libsns_sc2239.so
libsns_sc223a_4l.so libsns_sc2335.so
Tracks OpenIPC/openhisilicon#82. Same pattern as #2042 (cv200),
generic else branch in hisilicon-opensdk.mk:272 that ev200 and
gk7205v200 both fall through to.
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Switches all hi3516cv200 sensors that have source code in openhisilicon from binary blobs to source-built drivers. Bumps
HISILICON_OPENSDK_VERSIONfrom45b17cctocd1c21d(latestmain, includes the work landed in OpenIPC/openhisilicon PRs #75–#80).The cv200 sensor list grows from 1 (ov2710 only) to 18:
Plus
ar0130.Reproducibility
Every cv200 build now compiles those 18 sensors from C source. 17 binary
.soblobs deleted fromgeneral/package/hisilicon-osdrv-hi3516cv200/files/sensor/(ov2710 was already missing — already built from source in the previous opensdk pin). Plus the legacylibsns_ov9750_v2.soblob, which was a stale variant superseded by the source-builtlibsns_ov9750.so.Sensors without source code remain as binary blobs (intentional per the request — only delete blobs we have source for):
Verification
HISILICON_OPENSDK_VERSIONtriggered a fresh fetch of openhisilicon atcd1c21dintooutput/build/hisilicon-opensdk-cd1c21d/.make CHIPARCH=hi3516cv200 -C libraries allfrom the openhisilicon source against the cached cv200 musleabi toolchain — all 18 sensor.sofiles produced cleanly (ARMv5 EABI5 soft-float, matching the camera ABI).Real-hardware test
JXF22 was end-to-end verified on a real hi3518ev200 camera in openhisilicon PR #79 — built standalone, deployed via direct
.soswap, RTSP streamed clean with no encoder timeouts. The other 17 sensors ship binary-identical artifacts to those individual openhisilicon PR builds; they're CI-build-tested here but not hardware-tested from this firmware PR (different physical sensor hardware would be needed for each).Pre-existing kernel build issues in this branch's tree (rtl8188eu / usb gadget compat warnings tripping
-Werror) prevented running a fullmake BOARD=hi3516cv200_liteend-to-end locally; the sensor-build verification was done by running just the userspace build stage ofhisilicon-opensdkagainst the new pin. CI should exercise the full build path.Test plan
Build (hi3516cv200_lite)job stays greenoutput/target/usr/lib/sensors/ends up with the 18 source-built.sofiles plus the 11 still-binary blobs🤖 Generated with Claude Code