tplink-kasa-kc110: register for CI, ship vendor OV2735 libsns (fix no video), ultimate majestic#108
Open
moontwister wants to merge 3 commits into
Open
tplink-kasa-kc110: register for CI, ship vendor OV2735 libsns (fix no video), ultimate majestic#108moontwister wants to merge 3 commits into
moontwister wants to merge 3 commits into
Conversation
PR OpenIPC#99 added the TP-Link Kasa KC110 device profile (devices/hi3518ev200_ultimate_tplink-kasa-kc110/) but never added the platform to the build matrix, so the image is never built or published — it is absent from the nightly releases and from manifest.flat. Per the repo's own "Adding a new device" step 6, the matrix is the only build registry. Add the missing entry next to the sibling hi3518ev200_ultimate board so the KC110 image is built and released like every other device. The device profile is already complete and build-ready: the defconfig sets BR2_PACKAGE_KC110_BOARD_SUPPORT=y and SoC hi3518ev200; customizer.sh pins isp.sensorConfig to /etc/sensors/ov2735_mipi_1080p.ini (the file added by OpenIPC/firmware#2155), sets the IR-cut/backlight GPIO pins, and points the upgrade URL at the matching <device>-nor.tgz release asset. Build-verified locally (./builder.sh hi3518ev200_ultimate_tplink-kasa-kc110 against firmware HEAD): builds clean; rootfs.squashfs 6180KB / 8192KB NOR (~2MB headroom); ov2735_mipi_1080p.ini, ptz, gpio-motors and S94pinmux-pan-ir are present in the rootfs and the wrong DVP template ov2735_i2c_1080p.ini is correctly excluded. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The device defconfig set BR2_OPENIPC_VARIANT="ultimate" but omitted BR2_OPENIPC_MAJESTIC, so it fell back to the "lite" default (general/Config.in). All stock *_ultimate firmware defconfigs set BR2_OPENIPC_MAJESTIC="ultimate"; this aligns the device with its declared variant. Note: this is a variant-consistency fix, NOT a fix for the no-video problem. On-hardware testing (hi3518ev200 + OV2735) showed the device produces no video with BOTH the lite and the ultimate majestic — the sensor i2c writes abort, so the OV2735 never streams. The majestic variant is therefore not the cause; that issue is separate and not addressed here. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0816188 to
a099b8f
Compare
OpenIPC's opensdk libsns_ov2735.so does not drive the OV2735 on this board: the sensor i2c init aborts and the sensor never streams (MIPI detects no valid frame, VENC never encodes, /image.jpg hangs). This was isolated and hardware-proven by a bidirectional, single-variable swap on the live camera: with opensdk's libsns -> no video; swapping in the vendor libsns -> instant 1080p (verified against both firmware HEAD and the 2026-06-17 release, so it is the sole cause, independent of the kernel/opensdk version). Ship the vendor libsns_ov2735.so as a device-overlay payload (the documented pattern for a sensor lib the SoC osdrv does not correctly provide). It loads cleanly against OpenIPC's libisp / lib_hiae, so no other files are needed. Scoped to this device's overlay -> cannot affect other boards. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Three changes to the KC110 device profile added in #99, so the device builds, gets published, and actually produces video. The built image was hardware-verified on a KC110 (streams 1080p out-of-the-box).
1. Register the device for CI
The platform was never added to the
master.ymlbuild matrix — the only build registry (per Adding a new device step 6) — so no KC110 image is ever built or published (absent from the nightly releases andmanifest.flat).2. Ship the vendor OV2735 libsns — fixes no video
OpenIPC's opensdk
libsns_ov2735.sodoes not drive this OV2735: the sensor i2c init aborts (hi_i2c_wait_txfifo_notfull/hi_i2c_abortprocess) and the sensor never streams — MIPI detects no valid frame, VENC stays idle,/image.jpghangs.This ships the vendor
libsns_ov2735.so(from the device's stock firmware, same provenance as the rest of the HiSilicon stack) as a device-overlay payload — the documented pattern for a sensor lib the SoC osdrv doesn't correctly provide. It loads cleanly against OpenIPC'slibisp/lib_hiae, so no other files are needed, and it is scoped to this device's overlay (cannot affect other boards).Hardware-proven by a bidirectional, single-variable swap on a live KC110: opensdk libsns → no video; vendor libsns → instant 1080p — on both firmware HEAD and the 2026-06-17 release.
3. Select the
ultimatemajestic variant (consistency)The defconfig set
BR2_OPENIPC_VARIANT="ultimate"but omittedBR2_OPENIPC_MAJESTIC, so it fell back to thelitedefault (general/Config.in). All stock*_ultimatedefconfigs set it; this aligns the device with its declared variant.Device builds clean (rootfs 6440 KB / 8192 KB NOR).