Skip to content

tplink-kasa-kc110: register for CI, ship vendor OV2735 libsns (fix no video), ultimate majestic#108

Open
moontwister wants to merge 3 commits into
OpenIPC:masterfrom
moontwister:kc110-ci-matrix
Open

tplink-kasa-kc110: register for CI, ship vendor OV2735 libsns (fix no video), ultimate majestic#108
moontwister wants to merge 3 commits into
OpenIPC:masterfrom
moontwister:kc110-ci-matrix

Conversation

@moontwister

@moontwister moontwister commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

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.yml build 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 and manifest.flat).

2. Ship the vendor OV2735 libsns — fixes no video

OpenIPC's opensdk libsns_ov2735.so does 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.jpg hangs.

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's libisp/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 ultimate majestic variant (consistency)

The 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 defconfigs set it; this aligns the device with its declared variant.

Device builds clean (rootfs 6440 KB / 8192 KB NOR).

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>
@moontwister moontwister changed the title master.yml: register hi3518ev200_ultimate_tplink-kasa-kc110 for CI tplink-kasa-kc110: register for CI and select the ultimate majestic variant Jun 27, 2026
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>
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>
@moontwister moontwister changed the title tplink-kasa-kc110: register for CI and select the ultimate majestic variant tplink-kasa-kc110: register for CI, ship vendor OV2735 libsns (fix no video), ultimate majestic Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant