sigmastar-osdrv-infinity6c missing sc430ai sensor module
The TP-Link Tapo C120 uses a sc430ai sensor. Not sure where to get the updated sigmastar SDK, will attempt to use the ones extracted from factory firmware for now though.
@mcd1992 I'm now trying to extract sc430ai ko files from Tapo C120. Have you extract it?
I did but was never able to load them correctly. I forget the details but the .ko shipped by tplink had all the modules linked into 1 so it complained about symbols. And unloading all the openipc ones and attempting to load the tplink one caused a kernel panic.
I tried to extract the sc430ai.ko and the sensor config file (extention is bin) from c120 rootfs and copy them to proper path as I expected and build the firmware and run flash writing but I got the segmentation error.
- sc430ai sensor config file squashfs-root/config/auto_detect_sensor/default_isp/sc430ai_MIPI/isp_default_day.bin
- I'm not sure the sensor config bin file is correct or not.
- sc430ai ko file squashfs-root/config/auto_detect_sensor/modules/sc430ai_MIPI.ko
** I tried to copy them to
** Update sigmastar-osdrv-infinity6c/files/script/load_sigmastar to support sc430ai.
set_sensor() { case $SENSOR in gc4653|imx335|imx415|os04a10|sc4336p|sc401ai|sc430ai|sc501ai|sc830ai|sc850sl)
...
}
$(TARGET_DIR)/etc/sensors/sc430ai.bin $(TARGET_DIR)/lib/modules/5.10.61/sigmastar/sensor_sc430ai_mipi.ko
OpenIPC: Sensor assigned - sc430ai
8<--- cut here ---
Unable to handle kernel NULL pointer dereference at virtual address 00000009
pgd = 7e6d0037
[00000009] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT THUMB2
Modules linked in: drv_ms_cus_sc430ai_MIPI_tp_ww(PO+) mi(PO) 8188fu(O) cfg80211 exfat(O)
CPU: 0 PID: 646 Comm: insmod Tainted: P O 5.10.61 #2
Hardware name: SStar Soc (Flattened Device Tree)
PC is at DrvSensorSPIAttach+0x2/0x28 [mi]
LR is at DrvRegisterSensorDriverEx+0xcf/0x150 [mi]
pc : [
I tried to copy related .so files and mi.ko, esp32.ko from above path of extracted squashfs-root to target path and it worked without segmentation fault but I got sdk init error.
Can anyone help us?
squashfs-root/config/auto_detect_sensor/default_isp/sc430ai_MIPI/isp_default_day.bin -> firmware/general/package/sigmastar-osdrv-infinity6c/files/sensor/configs/sc430ai.bin squashfs-root/config/auto_detect_sensor/modules/sc430ai_MIPI.ko -> firmware/general/package/sigmastar-osdrv-infinity6c/files/kmod/sensor_sc430ai_mipi.ko squashfs-root/config/venc_fw/chagall.bin -> firmware/general/package/sigmastar-osdrv-infinity6c/files/sensor/firmware squashfs-root/config/iqfile/isp_api.xml -> firmware/general/package/sigmastar-osdrv-infinity6c/files/sensor/firmware squashfs-root/lib/modules/5.10.61/mi.ko -> firmware/general/package/sigmastar-osdrv-infinity6c/files/kmod squashfs-root/lib/modules/5.10.61/esp32.ko -> firmware/general/package/sigmastar-osdrv-infinity6c/files/kmod squashfs-root/usr/lib/*.so -> firmware/general/package/sigmastar-osdrv-infinity6c/files/lib
Starting ntpd: OK Starting dropbear: OK Starting crond: OK Loading vendor modules... OpenIPC: Sensor assigned - sc430ai Starting majestic: OK
Welcome to OpenIPC
13:51:04 < majestic> [ main] main@237 Majestic Lite for SigmaStar, version master+73701aa, built on 2025-04-16 13:51:04 < majestic> [watchdog] watchdog_start@94 Detected SSTAR Watchdog 13:51:04 < majestic> [watchdog] watchdog_start@115 Watchdog timeout set to 10 seconds 13:51:04 < majestic> [ httpd] start_web_server@371 Set server path: /var/www 13:51:04 < majestic> [ httpd] new_http_server@359 HTTP server started on 0.0.0.0:80 13:51:04 < majestic> [ main] init_sdk@66 Loading main configuration: /etc/majestic.yaml 13:51:04 < majestic> [ sdk] start_sdk@1537 Initializing Sigmastar SDK, mi_sys_version_3.011 13:51:05 < majestic> [ sdk] mi_snr_get_resolution@505 Sensor index 0: 2688x1520@30fps 13:51:05 < majestic> [ log] printf@292 [isp] failed to ioctl 0xc02c6923!(I/O error) 13:51:06 < majestic> [ sdk] mi_venc_create_chn@1004 Channel 0: 2688x1520@20fps 13:51:06 < majestic> [ sdk] mi_venc_create_chn@1005 - [H264, 4096Kb, RC1, GOP20] 13:51:06 < majestic> [ sdk] mi_venc_create_chn@1069 - [minQp: 12, maxQp: 48, qpDelta: -4, slice: 0] 13:51:06 < majestic> [ sdk] mi_venc_create_jpeg@902 Channel 2: 2688x1520@5fps 13:51:06 < majestic> [ sdk] mi_venc_create_jpeg@903 - [JPEG, Q50, 4900Kb] 13:51:07 < majestic> [ sdk] mi_isp_get_file@148 Load isp file /etc/sensors/sc430ai.bin 13:51:07 < majestic> [ log] printf@292 [MAJOR]: ispversion(0) in sdk, ispversion(1) in binfile. 13:51:07 < majestic> [ log] printf@292 [MINOR]: ispversion(0) in sdk, ispversion(2) in binfile. 13:51:07 < majestic> [ puts] ooooops,SDK & iqbinfile major version is not match. 13:51:07 < majestic> [ puts] warning warning!!!SDK & iqbinfile minor version is not match. 13:51:07 < majestic> [ log] printf@292 ******************** Load api bin Fail - ERROR CODE (0xffffffff) ******************** 13:51:07 < majestic> [ sdk] start_sdk@1604 Error loading isp file 13:51:07 < majestic> [ sdk] mi_isp_set_image@235 Cannot set color to gray 13:51:07 < majestic> [ sdk] start_sdk@1608 Error setting isp parameters 13:51:07 < majestic> [ rtsp] rtsp_init@28 RTSP server started on port 554
@asyncbridge I think you're heading to the right direction, it has to be driver issue and it seems to be the Linux kernel version (or driver version) mismatch with the other drivers that are existing in OpenIPC for the SSC337 SoC
I have Tapo C120 (EU) v1.0 which should have the same sensor as yours I'll try installing OpenIPC into it as well
Earlier I've successfully added the driver for SC3336 sensor into OpenIPC https://github.com/OpenIPC/firmware/pull/1825 but that was easy and worked immediately without any version mismatch
@asyncbridge I am currently experimenting on the same board, slightly different SoC and another sensor, but I face the nearly the exact error message. Could you send me your .ko file please? I like to compare a few values to mine.