Releases: themactep/thingino-firmware
Releases · themactep/thingino-firmware
buildroot-dl-cache
update_cache-2026-04-19 script to display hidden backchannel sdp sections
buildroot-dl-cache
update_cache-2026-04-12 raptor: update hashes (LTO, -Bsymbolic, compy static)
buildroot-dl-cache
update_cache-2026-04-06 workflow: toolchain fragment is deprectated
firmware-2026-04-06
Changes in this release:
- 0400131 wifi: fix wifi_supplicant shut down
- 26248df Makefile: add PRISTINE=1 flag to skip user settings
- d2df23e thingino-uhttpd: fix SIGSEGV in strptime due to musl NULL tzname musl's strptime calls strlen(tzname[0]) when processing the %Z directive, but musl's __tzname[] is zero-initialized and remains NULL until tzset() is called. uhttpd's uh_file_date2unix() uses %Z when parsing the If-Modified-Since HTTP header, so any browser request for a static file triggers the path: strptime() -> strlen(NULL) -> SIGSEGV. The crash was observed as a do_page_fault #2 SIGSEGV sent to uhttpd: epc offset 0x6c190 = strlen+0x1c (inside NULL deref) ra offset 0x78d3c = strptime+0x730 (bal strlen call site) Fix: remove %Z from the strptime format string. HTTP dates are always UTC, and timegm() already treats the parsed struct tm as UTC, so %Z is both unnecessary and dangerous on musl.
- 6395847 wifi-aic8800: restore CRLF line endings in slim-down patch The patch applies to source files with CRLF line endings. The file was previously committed with LF-only, breaking patch application at build time. .gitattributes already marks *.patch as -text to prevent future conversion. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- f642ecf git: treat patches as binaries, no automatic pre-commit correction.
- 45617b1 package/thingino-cloner: add host-zlib dependency
- 4e0dc6c package/thingino-cloner: add host-libusb dependency CMake configure fails in CI with 'libusb-1.0 not found' because the runner doesn't have libusb dev headers installed. Building host-libusb via Buildroot makes the package self-contained and CI-environment-agnostic. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
firmware-2026-03-16
Changes in this release:
- 2f53dc1 busybox: enable strings applet
- 0598a56 thingino-libwebsockets: bump libwebsockets to 4.5.2 Make the libwebsockets version override unconditional so package builds use 4.5.2 even without selecting BR2_PACKAGE_THINGINO_LIBWEBSOCKETS directly. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- 783b664 libwebsockets: add netlink sign-conversion patch Add 0002-fix-netlink-sign-conversion.patch to the 4.5.2 global patch set so the netlink signedness fixes apply in non-override builds. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- ddfe07c cameras: fix white light gpio definition for aoqee c1
- 10b298a init: read data directly from uboot env
- a0f2cef remove patches obsoleted by newer buildroot version
- 11f7ff3 makefile: do not chmod buildroot
- 275c849 buildroot: update to 2026.02 Update buildroot submodule from 2025.11.x to 2026.02 (tag: 2026.02, commit 52ee2f5644da5389634b2465f1dc31deb5a4807c). Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- a8c5cff webui: layout tweaks
- 36b106b docs: send2gphotos
- 0eccc84 docs: kernel 4.4
- 16ed6e8 docs: shared host directory
- e5f4313 docs: save agent's thought process for future reference
- 0861af4 formatting
- 30f0ba9 busybox: remove strings applet
- 507ef9b copilot: extend instructions
- 8fbc83c package/ingenic-sdk: update to 688d857 Update ingenic-sdk from 249f859 to 688d857 Hash change: 249f859b18589666ee16ff5328e0fd90a227119c -> 688d8570647c21f2ed075dd6bf553484c0b66712 Changelog: 8e74d4e: add sc2336p sensor driver for t31 (ported from t23) 688d857: add IQ file for sc2336p sensor for t31
- 55abf66 package/thingino-onvif: update to 8fc2bd7 Update thingino-onvif from 8d2df21 to 8fc2bd7 Hash change: 8d2df21e9f040f31861dc64dbecc804e06b5fb0f -> 8fc2bd78b14373896e000dedd5ff3b2ea0d35438 Changelog: 435bbc0: ONVIF backchannel: use ch0 URI directly, remove profile URL fallback 8fc2bd7: add libtomcrypt artefacts to make clean
- 669676c makefile: formatting
- a559f30 webui: add support for thingino.json to info.cgi
- e040e69 live555: patch onvif backchannel support for non-complient clients
- 8d61213 docs: add onvif specs
- 8be013f docs: add onvif specs
- 5ec8e56 cameras: another round of env cleanup
- 67a881f webui: reorganize files; use short option for launching mqttsub daemon
- 96aeee7 copilot: extend instructions with overrides and basic rules
- 9a5d3b9 mosquitto: add a preliminary mqtt subscription service with webui configuration
- 1cef366 mosquitto: add mbedTLS broker support Rewrite mosquitto broker to use mbedTLS instead of OpenSSL for TLS, matching the mbedTLS backend already used by the client library. - 0002-broker-mbedtls.patch: full broker mbedTLS port - New src/net_mbedtls_broker.c/h: per-listener TLS context using mbedtls_ssl_config, srvcert, pkey, ca_chain; BIO callbacks over raw sockets; certificate CN extraction for logging - src/net.c: guard OpenSSL-specific code with WITH_TLS_OPENSSL - src/security_default.c: add WITH_TLS_MBEDTLS cert/key loading path - src/Makefile: add net_mbedtls_broker.o and tls_mbedtls.o for mbedtls - All other broker sources: ifdef guards for OpenSSL vs mbedTLS paths - mosquitto-override.mk: when broker+mbedtls, exclude apps/mosquitto_ctrl and apps/mosquitto_passwd from build (both require OpenSSL) Broker is opt-in via BR2_PACKAGE_THINGINO_MOSQUITTO_BROKER=y in defconfig. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- 6e3ab62 webui: formatting
- 677f522 httpd-ssl: fix indentation
- 3899018 fixes to the second sensor handling
- e58241d prudunt: move docs and test to prudynt repo
- e2ebcf4 portal: make it work with uhttpd
- ff98b35 webui: make ui buttons more responsive, update state immediately on chanage, reverify with heartbeats
- 580193c webui: fix json-config-admin.cgi send_json response format Replace non-standard HTTP/1.1 status line and broken Content-Length header with correct CGI Status: header, matching the pattern used by other CGI scripts. This fixes the 502 Bad Gateway error on the config-admin.html page.
- 7fed752 prudynt-t: add daynight pitch-black startup fix docs and tests Add documentation and a host-runnable test suite for the pitch-black startup bug fix in the prudynt-t day/night algorithm. docs/DAYNIGHT_PITCH_BLACK_STARTUP_FIX.md Describes the four bugs (TC-2/3/4/8b), their root causes, the three fixes applied (hysteresis decay, 2-confirm initial mode, fallback timeout), timing impact table, and how to run the tests. tests/test_daynight_algo.cpp Self-contained C++17 simulation of DayNightWorker's simple-gain loop with 10 test cases (21 assertions) covering all bug and fix scenarios. Build and run on the host with: g++ -std=c++17 test_daynight_algo.cpp -o test_daynight_algo && ./test_daynight_algo Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- 1fdf6b1 uhttpd: increase CGI workers from 2 to 20, connections from 50 to 100 -n 2 allowed only 2 simultaneous CGI instances. With json-heartbeat.cgi (and potentially other SSE streams) permanently holding slots, regular CGI requests like pan/tilt motor commands had no available worker and would queue indefinitely, appearing as 'pending' in the browser. Increase -n from 2 to 20 to accommodate persistent SSE connections (heartbeat, motor-stream, timegraph) plus concurrent API requests. Increase -N from 50 to 100 to match the higher concurrency. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- d4f5b81 webui: add Connection: close to all remaining CGI response headers All CGI scripts that output HTTP responses without Content-Length were missing Connection: close, causing fetch requests to hang indefinitely under uhttpd (which uses HTTP/1.1 keep-alive by default). Covers all response patterns: - heredoc-style send_json() functions (firmware-reset, info, config-, tool-, etc.) - printf-style header blocks (login, session-status, api-key, logout, etc.) - echo-style headers (json-prudynt, json-telegrambot, ctl-telegrambot, restart-prudynt, etc.) - inline one-liner printf headers (json-motor-params, json-prudynt-save, json-send2, etc.) - redirect responses (restore, reboot, run) dl2.cgi is exempt as it already sets Content-Length. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- 9b8a23f webui: add Connection: close to CGI json_header responses uhttpd uses HTTP/1.1 keep-alive by default. Without Content-Length or Connection: close, uhttpd cannot determine when a CGI response body ends, causing fetch requests to hang in pending state indefinitely. Add Connection: close to json_header() in all JSON CGI scripts so uhttpd knows to close the connection after the response, signalling the end of the response body to the client. Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
- 8ce01dd refactor video storage garbage collector
- 5044122 webserver: switch to uhttpd with ssl support (not enforced)
- d195a87 thingino-uhttpd: disable CGI script timeout (-t 0) to fix SSE streams uhttpd's -t flag sets script_timeout: a hard wall-clock timer started at CGI process spawn. With -t 30, uhttpd kills every CGI after 30 seconds regardless of I/O activity. SSE endpoints (json-heartbeat.cgi, json-motor-stream.cgi, json-timegraph-stream.cgi) are long-lived streaming processes that must run until the client disconnects. The 30-second kill caused a 30-second disconnect/reconnect loop in the browser's EventSource after the earlier fix removed the duplicate Connection header (which had caused a 10-second loop via Keep-Alive: timeout=10 misinterpretation). Set -t 0 to disable script_timeout. proc.c checks script_timeout > 0 before arming the timer, so 0 safely disables it for all CGI scripts.
- ec367d2 webui: remove Connection: keep-alive from SSE CGI headers uhttpd already adds Connection: Keep-Alive + Keep-Alive: timeout=10 for all HTTP/1.1 keepalive requests. The CGI scripts were also setting Connection: keep-alive, creating duplicate Connection headers. Chrome interprets the duplicate as listing keep-alive as a hop-by-hop header, making Keep-Alive: timeout=10 apply to the SSE stream itself. This causes EventSource connections to be closed after 10 seconds, firing onerror and reconnecting in a loop. Remove Connection: keep-alive from json-heartbeat.cgi, json-motor-stream.cgi, and json-timegraph-stream.cgi.
- b73c975 thingino-webserver: add busybox httpd config fragment When BR2_PACKAGE_THINGINO_WEBSERVER_BUSYBOX is selected, inject a BusyBox kconfig fragment enabling all required httpd features: CGI, basic auth, MD5 auth, ranges, proxy, gzip, etag, last-modified, date, ACL, URL encoding, error pages, and script interpreter support. Fragment is appended via BUSYBOX_KCONFIG_FRAGMENT_FILES in busybox-httpd-override.mk, included from thingino-overrides.mk.
- 5aa1866 thingino-webserver: add busybox httpd config fragment When BR2_PACKAGE_THINGINO_WEBSERVER_BUSYBOX is selected, inject a BusyBox kconfig fragment enabling all required httpd features: CGI, basic auth, MD5 auth, ranges, proxy, gzip, etag, last-modified, date, ACL, URL encoding, error pages, and script interpreter support. Fragment is appended via BUSYBOX_KCONFIG_FRAGMENT_FILES in busybox-httpd-override.mk, included from thingino-overrides.mk.
- 417196e thingino-httpd-ssl: switch cert generation to ECDSA, add IP SAN The preferred_ciphers list in httpd-ssl.c is ECDSA-only (ECDHE_ECDSA_*). Generating an RSA cert caused alert 40 (handshake_failure) immediately - no cipher could be negotiated. Switch mbedtls-certgen call to ECDSA P-256 (-s 256 -t ecdsa) to match. Also auto-detect the primary IPv4 and pass -i to include an IP SAN, consistent with the uhttpd cert gen fix.
- 3af214d add httpd-ssl package
- 135d40c webserver: install httpd-ssl proxy along with busybox httpd
- 8bc5a66 httpd-ssl: fix path to service file
- 6458515 mbedtls-certgen: add SAN + Ba...
firmware-2026-03-09
Changes in this release:
- c6041d6 package/thingino-onvif: update to 8d2df21 Update thingino-onvif from b9a9b8a to 8d2df21 Hash change: b9a9b8a368ecb19acfdc7047e6753a5c8193dce8 -> 8d2df21e9f040f31861dc64dbecc804e06b5fb0f Changelog: 8d2df21: fix: restore correct snapshot URLs reverted by ccd0d17
- cdb0990 package/prudynt-t: update to d8e9707 Update prudynt-t from a37ad5d to d8e9707 Hash change: a37ad5d6205abaf2f4602f295128abc72a5a7291 -> d8e97072b6e45fece965ee6f4954ce9d0874f4fb Changelog: d8e9707: framesource: allow 1 buffer on memory-constrained devices
- 9a41efc package/prudynt-t: update to a37ad5d Update prudynt-t from 48104af to a37ad5d Hash change: 48104af430b48df13c678048b06669b97c776a81 -> a37ad5d6205abaf2f4602f295128abc72a5a7291 Changelog: a37ad5d: audio: use monotonic counter-based PTS for AAC RTSP streams
- ab95935 motion: do not limit stop run
- 80da651 cameras: add Wansview Q6 variant (T21N, OV2735B, RTL8188FTV)
- e88fe8f webui: remove .small class from timelapse recorder form subtitle
- 8113300 cameras: remove unused gpio data from uboot environment
- 68771e8 makefile: add missing default value to isp freq parameter
- 51b7be3 webui: use soc app to get the soc family
- 458005f sysupgrade: enforce fail-safe reboot
- 3c7961e docs: add notes on mosquitto mbedtls bug fix
- b08bc6f prudunt: move docs and test to prudynt repo
- f3c7e80 package/thingino-onvif: update to b9a9b8a Update thingino-onvif from 20bcff8 to b9a9b8a Hash change: 20bcff82ff019671d07b5f623cee8f9b75c23b91 -> b9a9b8a368ecb19acfdc7047e6753a5c8193dce8 Changelog: 16554fe: add ONVIF media1 backchannel (AudioOutputConfiguration) to profiles 9562ec5: Fix cat() num param for GetProfile_AOC.xml: 8->10 (5 pairs) bbae3f0: use direct urls for snapshots per channel. 307ae69: add authentication challenge header on error 401 ccd0d17: extend with support of 25.12 specs 87bd5e5: update onvif spec set 9868ece: update test suite with new functionality 12b7618: update existing wsdl files to 25.12, add missing ones e0f9e85: clean up a816fc2: correct message id format 9827189: use SetHomePositionResponse in SetHomePosition as per specs 983ec28: add documentation on motion detection events b9a9b8a: Merge branch 'local-3b347677e6adf1d516459b0f07e47b'
- f1ea445 prudynt: remove custom audio settings from wyze v3 cameras for better audio quality
- a7ccf5c prudynt: adjust default audio settings to higher sampling bitrate and slightly higher default audio level
- 2ea49f6 Sonoff B1P: simplify WLAN GPIO
- 615d60c cameras: add Hugolog E5 (T31L, SC2336P, ATBM6012BX)
- 562cff0 Add BR_THINGINO_MOTORS to Vanhua H33 (#1096)
- edab715 package/faac: update to f7ae97b Update faac from edc0246 to f7ae97b Hash change: edc02462e529b23539d932681fc0f96120e4708e -> f7ae97b3ec40694de07e4866838f8b186ab694f3 Changelog: f7ae97b: optimize MDCT by removing conditional branches and hoisting logic (#72)
- f35154a copilot: add onboadding instructions
- b0adae7 do not use uboot environment settings in linux
- 9669abb Add GNCC P5 profile config files (#1094) Add fully functional profile config files for gncc_p5_t23n_sc3332_atbm6012bx
- 222b975 Telegram motion enable (#1093) * add shortcuts to motion to enable/disable Allow easy commandline control of motion detection.
The 'set' routine also modifies the config file to make it persistent so it can survive a power blip and come back rearmed. This might be an option.
I happen to like seeing the json return output, however corking it might be another option. * add arm/disarm motion detection commands to telegrambot Requires updated motion script with the shortcuts.
- 79de037 faac: use fast math to save power (#1091) * makefile: do not pad empty extras, flash_eraseall in sysupgrade cleans entire partition * package/faac: update to edc0246 Update faac from 64fc541 to edc0246 Hash change: 64fc54142912088eecabaa159339768eca30f3d6 -> edc02462e529b23539d932681fc0f96120e4708e Changelog: 33558e6: CI: add native MSVC build and fix Windows compatibility (#66) 081d81d: remove dead code (#65) 0622a3a: optimize FFT reordering by combining real and imaginary passes (#68) a5abf5e: optimize FFT performance (#70) 07fb0b4: ci: update GitHub Actions and add Dependabot configuration (#74) 0a01417: Bump the actions group with 2 updates (#75) d3a9c22: remove redundant defines (#76) 4f74d18: make faacgui usable again (#77) c5c142d: report library version on version mismatch 407db12: maintain library SONAME version 0.0.0 ab58250: Merge branch 'master' of https://github.com/knik0/faac c79fd73: build both static and shared library by default 779a803: properly declare symbol visibility as hidden ad7e4f0: refactor quantizer for portable C and extensible SIMD dispatch (#71) edc0246: optimize memory allocation and unify MDCT implementation (#73) * faac: use fast math to save power --------- Co-authored-by: Paul Philippov paul@themactep.com Co-authored-by: Paul Philippov themactep@gmail.com
- 7991f04 package/faac: update to edc0246 Update faac from 64fc541 to edc0246 Hash change: 64fc54142912088eecabaa159339768eca30f3d6 -> edc02462e529b23539d932681fc0f96120e4708e Changelog: 33558e6: CI: add native MSVC build and fix Windows compatibility (#66) 081d81d: remove dead code (#65) 0622a3a: optimize FFT reordering by combining real and imaginary passes (#68) a5abf5e: optimize FFT performance (#70) 07fb0b4: ci: update GitHub Actions and add Dependabot configuration (#74) 0a01417: Bump the actions group with 2 updates (#75) d3a9c22: remove redundant defines (#76) 4f74d18: make faacgui usable again (#77) c5c142d: report library version on version mismatch 407db12: maintain library SONAME version 0.0.0 ab58250: Merge branch 'master' of https://github.com/knik0/faac c79fd73: build both static and shared library by default 779a803: properly declare symbol visibility as hidden ad7e4f0: refactor quantizer for portable C and extensible SIMD dispatch (#71) edc0246: optimize memory allocation and unify MDCT implementation (#73)
- a9412a7 add auth check to json-telegrambot.cgi (#1090)
- e68b55e remove onvif-simple-server package in favour of customized thingino-onvif fork
- e2afaf2 remove long broken legacy prudynt package
- 601fa5d webui: clean up
- 0f4a3d5 webui: rework network configuration form to support new wifi configuration
- 3eb94f2 webui: add more space on top of the screen. fix alert bar dismiss on click.
- cdecf34 Add Date email header to send2email (#1085) This prevents email clients (i. e. Thunderbird) from often showing the received date instead of the actual send date.
- 1b64b4f makefile: do not pad empty extras, flash_eraseall in sysupgrade cleans entire partition
- 1fcb1d8 thingino config: remove unused parameters
- ccc577a webui: remove redundant example config
- fce9d1a webui: remove outdated mjpeg tools
- 2e75d65 prudynt: default to autosized osd pool
- 641612b extend ignoring of selected camera flags in git
- 641c456 webui: fallback assets for offline/isolated mode
- af5756a wpa_supplicant: refactor to reuse global variables
- 2c67234 wifi: clean up
- 215034b do not reconfigure network in ap mode
- 86d07ec wifi: fix access point mode
- 6c41620 wifi: refactor wireless configuration. merge ap mode with the rest of wlan
- ed72332 eufy T8410: flip tilt (#1081)
- 360044f cameras: add o-kam qc3 variant with aic8800dc wifi module
- bb0fe98 do not dump environment
- de801af makefile: add run target to run compiled binaries with qemu
- d356d0e onvif: start onvif discovery daemon on every non-loopback network interface
- 77060f8 add virtual thingino-ssl package
firmware-2026-03-02
Changes in this release:
- d6baa86 jooan w8u: adjust isp direct mode
- 1f53401 remove unused $SENSOR variable
- 377a57c cameras: add okam qc3 t23dl variant
- 2ad11ae jooan w8u: move to supported
- d31560c faac: bump. switch to single precision and use upstreamed DRM patch (#1077)
- 487e0d3 jooan w8u: lower isp clock to 200mhz
- a41e967 ffmpeg: clean up package
- 5d486cd edison wk1mpx: no need for wifi module in env
- 7f283b5 Check pt fix smartnvr build (#1075)
- d44eff0 telegrambot: do not welect web ui package
- 9c1615d ffmpeg: fix version variable usage to build 8.0.1 instead of 6.1.4
- 50c9d16 package/ingenic-lib: update to 9a70bb8 Update ingenic-lib from 8172ef3 to 9a70bb8 Hash change: 8172ef3fa0249aba8178f060ad3e2d82e8f19346 -> 9a70bb8562dbc32303349c92ec6ecf26a7b74b61 Changelog: 9a70bb8: Add A1 1.7.0
- 7d32c91 Fix tilt for wuuk and vanhua (#1070) Co-authored-by: Josh at WLTechBlog wltechblog@wanderlounge.net
- 720c271 bump lightnvr version (#1062) * bump lightnvr to 0.26.1 * bump
- 0a6dbb8 camera: add experimantal iget_c5pt_t41lq_gc4023_jl1101 (#1067) * camera: add experimantal iget_c5pt_t41lq_gc4023_jl1101 * camera: add experimantal iget_c5pt_t41lq_gc4023_jl1101 --------- Co-authored-by: Lukáš Mojžíš lukas.mojzis@grenames.cz
- 77daa36 edison wk1mpx: tidy up config
- f61709a jooan w8u: toggle wifi gpio to activate module
- c80e434 wifi: fix connection to hidden ssid (continued)
- 0934ca0 wifi: fix connection to hidden ssid
- caf6eb4 webui: remove httpd proxy, read token from onvif requests
- daceafc makefile: define qstrip macro if not defined
- 6a0e2e4 wording
- 04b2a85 use correct payload to check for dhcp time zone data
- 6e5b25d dts: add iGET C5PT (#1063) Co-authored-by: Lukáš Mojžíš lukas.mojzis@grenames.cz
- 2271e8f clean up
- 9e165fc cameras: sort and deduplicate defcondig parameters
- 4189b14 Update Buildroot documentation formatting
- b66c9e5 package/thingino-onvif: update to 20bcff8 Update thingino-onvif from 86a11ce to 20bcff8 Hash change: 86a11ce4249167e60c842e0431ba1accb438db5f -> 20bcff82ff019671d07b5f623cee8f9b75c23b91 Changelog: 20bcff8: Add ONVIF Media1 backchannel (#4)
- 3bf4f43 package/prudynt-t: update to 642116d Update prudynt-t from 6566b90 to 642116d Hash change: 6566b9029c3f846282ebeb3b9ef2f98deaae312b -> 642116d92db8ec0eab3d1044d8d6e0a4fc330d78 Changelog: 4fcc0c4: fix parser flow when NO_TUNING is defined 642116d: improve hal: correct h265 support; add missing t10
- 058b163 webui: generate a random api key on boot if it does not exist
- 1de5575 sysupgrade: add sync and enforce reboot in case watchdog reboot fails
- b13729e cameras: remove gpio settings already migrated from env to json configs
- ecf9cd8 cameras exp: configs clean up; remove pure modules; sort defconfigs params
- 3717762 use compilation timestamp from os-release as a fallback date and time
- d10a41a ensure ${DL_DIR} exists before bind-mounting it to prevent permission issues (#1061) Co-authored-by: Lukáš Mojžíš lukas.mojzis@grenames.cz
- 4d7a556 ingenic lib: add definition for sdk 1.3.0
- 1cd85dc cameras: add edison wk1mpx t20 variant with jxh62 image sensor (#1051) Co-authored-by: Lukáš Mojžíš lukas.mojzis@grenames.cz
- 19fbe50 webui: fix file permissions
firmware-2026-02-23
Changes in this release:
- 3bf4f43 package/prudynt-t: update to 642116d Update prudynt-t from 6566b90 to 642116d Hash change: 6566b9029c3f846282ebeb3b9ef2f98deaae312b -> 642116d92db8ec0eab3d1044d8d6e0a4fc330d78 Changelog: 4fcc0c4: fix parser flow when NO_TUNING is defined 642116d: improve hal: correct h265 support; add missing t10
- 058b163 webui: generate a random api key on boot if it does not exist
- 1de5575 sysupgrade: add sync and enforce reboot in case watchdog reboot fails
- b13729e cameras: remove gpio settings already migrated from env to json configs
- ecf9cd8 cameras exp: configs clean up; remove pure modules; sort defconfigs params
- 3717762 use compilation timestamp from os-release as a fallback date and time
- d10a41a ensure ${DL_DIR} exists before bind-mounting it to prevent permission issues (#1061) Co-authored-by: Lukáš Mojžíš lukas.mojzis@grenames.cz
- 5b2e3a1 package/ingenic-sdk: update to 249f859 Update ingenic-sdk from 8c79b17 to 249f859 Hash change: 8c79b177452a74c9a7c8bd5c3e4bdc1df292333a -> 249f859b18589666ee16ff5328e0fd90a227119c Changelog: 29dcab6: add sensor IQ files for T41 platform harvested from stock fw 249f859: formatting
- b0b20bb package/nino: update to 1a0ee53 Update nino from 08fd839 to 1a0ee53 Hash change: 08fd8390fbcd0d832fb629516e44272f47d1babd -> 1a0ee5315423a0f24b71ec96d8bdcc5eda53ee5b Changelog: 1a0ee53: Fix helpinfo on loading state crash
- b62536b buildroot: ditch reproducible builds
- 53ceb2a dhcp ntp: fix logic of ntp server override
- 88e944d cameras exp: add quotes to sensor values
- 43f0d7c Add initial user configuration files
- 2e6005e move user-specific configuration to users/, move overlay files directly to overlay/
- 4a83fc0 gncc gc2: remove deprecated gpio settings from env, sort defconfig entries
- 607d49c makefile: quote sensor name values per kconig requirements, strip them later for sendor model
- 1f96255 package/thingino-onvif: update to 3b34767 Update thingino-onvif from 0e72593 to 3b34767 Hash change: 0e72593682ca1bac254a0c03c8b6a4c48df75122 -> 3b347677e6adf1d516459b0f07e47b18377252ec Changelog: 3b34767: use in-url api key to authenticate on the snapshot endpoint
- 3ef05af webui: accept token as a GET parameter
- 492f096 uboot: add dependency on host-uboot-tools for mkimage
- 8bcbab0 libwebsockets: add explicit dependency on mbetls
- a21311e streamer: better clean up
- 4192b78 streamer: hide extra configuration until the package is selected
- 4b55747 streamer: rename opus package dependency
- 064ff1d uniflasher: erase entire partition before flashing new data
- 2f4478a makefile: read keypress without an extra enter
- 573785c wifi ap: remove custom header
- 2ef0d32 wifi ap: rename wpa supplicant configuration file
- ccdc1e8 prudynt: add default settings for scheduled photosensing
- 23a2415 prudynt: add modular configuration
- ba31287 joona w3u: clean up and formatting
- 2171fae wifi: refactor disable_timeline script, move it from overlay to wifi package
- f083feb udhcpc: add missing time zone filename variable
- 6504ba9 webui: remove h.265 support from t21 soc
- e662fbe linux: apply patch directly to kernel 3.10 to avoid conflicts with 4.4
- ec6a7ff sysupgrade: self-contained colored echo; dynamic offset calculation; cleanup
- 9f62f23 webui: fix typo on send to ntfy test handing
- ed45ba7 webui: add prudynt config saving script
- 715e1dc makefile: remove invalid select. bar is handled in uboot
- 5b5a4a4 makefile: add config variables for t23 sdk 1.3.0
- 4851648 makefile: organize selects
- 9f57f27 portal: merge captive portal to global wifi package. store wireless configuration in wpa config
- d08e428 webui: correct files installation
- 75b806d package/prudynt-t: update to bfe39ad Update prudynt-t from 3c8e835 to bfe39ad Hash change: 3c8e8350cffbf5f66856e1a8902fbc22711f8895 -> bfe39ad3ce4af7c4593fb377f1bf6adf8d1eb972 Changelog: 835fca2: prudunt: verbose logging aroung AAC encoder f0c89a9: prudynt: remove excessive logging in audio buffer 50b0d0e: prudynt: wait for sensor initialization to complete d9d0e00: adjust .gitignore 84fa818: init daynight algo in an undetermined mode, do not assume day or night 3f400cc: try to recover failing AAC encoding 90ac6cc: implement modular design. disable unwanted components as needed. 3dbe563: extend hal to add missing prototypes bfe39ad: add time schedule configuration for photosensing
- 987d1dd package/lightnvr: update to 791f5ac Update lightnvr from 41fa993 to 791f5ac Hash change: 41fa993c9b253dc19aab5c083619ef9f8e99fcf8 -> 791f5ac332fb0dca7c98a9323b7fe03b0f207e8f Changelog: 8801a37: health check improvements for libuv server 791f5ac: 0.25.1
- 7126a5d package/jsonpath: update to e5a07f4 Update jsonpath from f4fe702 to e5a07f4 Hash change: f4fe702d0e8d9f8704b42f5d5c10950470ada231 -> e5a07f468508f5e599723373445d442623ece70d Changelog: afe72ad: main: usage spell fixes e5a07f4: main: defer processing until options are processed
- 51cb5b8 package/ingenic-sdk: update to 8c79b17 Update ingenic-sdk from 77f3a57 to 8c79b17 Hash change: 77f3a5784873718e6222c8f49b706a9149c7b792 -> 8c79b177452a74c9a7c8bd5c3e4bdc1df292333a Changelog: 3f48188: add gc1084 sensor driver for t23 472b2b1: formatting 78d0cf5: media bus format compatibility layer for kernel 3.10 and 4.4 c068e06: hardcode old kernel color format for now 327a248: add IQ file for GC5603 sensor (from CamHi) 8c79b17: sensor IQ files for T41 from WUUK Y0110 doorbell firmware dump
- 9f57766 package/ingenic-lib: update to 8172ef3 Update ingenic-lib from 98b6f0d to 8172ef3 Hash change: 98b6f0d5b6abf5b91e48c74d398101776c3df5ae -> 8172ef3fa0249aba8178f060ad3e2d82e8f19346 Changelog: 9e4945b: T23: add 1.3.0 libs cc7c118: add prj007 libs 3c6bfef: t40: add 1.3.1 libs 8172ef3: t41: add 1.2.5 libs
- 25df07a odhcp6c: patch for modern cmake
- 119efa1 formatting
- 2e67a3c udhcpc: split scripts per option, remove dependency on shared common
- a43c407 makefile: refactor partition sizes calculation
- f1adcbd makefile: cleanup and formatting
- ad5bd31 makefile: respect explicitly provided CAMERA variable
- d1470be makefile: remove deprecated module configs parsing
- 25a8f30 buildroot: give thingino tree a proper name
- 63ac723 makefile: strip quotes from sensor models and sensor parameters
- c779184 adjust .gitignore
- f1e710d mosquitto: do not prefer openssl over mbedtls
- ba2b024 mosquitto: hide mosquitto options unless enabled
- 2f59b03 webui: chnages to wireless network configuration create wpa_supplicant directly
- 82ceba3 webui: more granular data selection for daynight status in heartbeat info
- 4107d80 webui: correct parameter name for wlan ap status
- 6b1f19c webui: add soc family to camera runtime config
- b164e5c webui: controls for time controlled photosensing schedule
- 7289192 webui: correct links to reset actions
- b3aff25 webui: read wlan ap status from thingino.json
- 664fb20 webui: layout tweaking
- 1d580a5 webui: add controls to ignore the timezone supplied by dhcp server
- 5958c75 webui: formatting
- 3cd33d0 webui: drop symlink, it's created from .mk file
- ef621f6 webui: clean up
- b9fea7e webui: refactor form data decoding
- c7d16a6 bump lightnvr (#1055) * bump lightnvr * lightnvr depends on go2rtc * check pt
- a4013ef makefile: strip kernel suffix from image id for ota upgrade
- 8e5dd3d webui: dynamically populate streamer options by soc
- 7640551 fix reset overlay/firmware in webui (#1053)
- 6aebe04 webui: add a link to photosensing config page to daynight dropdown
- 3e7f769 fixed S01rsyslogd in /etc/init.d to allow remote logging at boot (#1046) amazing. thank you.
- 4fbf6a4 Add support for the PY25Q256HB, a 32MB flash seen in newer Personal Pan Cam cameras (#1044)
firmware-2026-02-16
Changes in this release:
- 4b6a6bc docker: expand path to download directory if it's a symlink
- 148ba6f libcurl: reenable telnet support (needed for send2termbin)
- 15b7655 clean up
- d5c3c9c add libuv to smartnvr dependencies
- d4fb1ab webui: prefer navigation bar links over tabs
- 808ca6b webui: correct wording in subtitles
- 3399cc0 update readme
- 546d7a4 add a script to validate and fix json files in cameras/
- c017b3b restore github workfow from oldmaster
- e3ef897 fix invalid json syntax
firmware-2026-02-11
Changes in this release:
- 50aa532 add libuv to smartnvr dependencies
- 8184560 webui: correct wording in subtitles
- 46e24e8 update readme
- b635e73 add a script to validate and fix json files in cameras/
- 7c43396 fix invalid json syntax (#1040)
- 367dd0b builder: use host network with docker
- 9a072bf ignore container produced artefacts
- de684ff package/lightnvr: update to 72865cf Update lightnvr from bff86d1 to 72865cf Hash change: bff86d1c9f23da72db87f83cd200278adaa74d53 -> 72865cf2a3b7ee2470af1fb48397f60e50c891f7 Changelog: 9878720: Migrate off mongoose to libuv (#83) 1481247: bug fix for HLS 9035836: bug fix for HLS 2445f52: bug fix for HLS 002b2ef: Rework shutdown/restart buttons. c737b8e: refine go2rtc shutdown sequencing b24182a: refine go2rtc shutdown sequencing fb19931: refine go2rtc shutdown sequencing b1030c4: refine go2rtc shutdown sequencing 98bf9aa: iterate on restart button. 62051cf: refine restart sequencing e0509f5: refine restart sequencing 18d27fc: Optimize shutdown sequencing f5816e9: Optimize shutdown sequencing; new retro theme 74efc5f: DRY the theme config 8d158b5: DRY the theme config 994e8c1: DRY the theme config ccb6b2e: Fix HTTP/2 bug 511e2e9: Fix favicon (generate one for now). 745f66d: Fix HTTP/2 bug 555bbb7: Fix HTTP/2 bug b3510e2: 0.20.2 13d3d93: try to fix integration tests eae9036: try to fix playwright login fa6a156: remove cruft ad63536: remove cruft 94c7bad: Fallback to migration issue affecting playwright f619ac5: Fallback to migration issue affecting playwright 8d351af: avoid proxying go2rtc a36b656: prep 0.20.3 a397be0: prep 0.20.3 aa678cc: Fix go2rtc routing in deployed container e1be248: Check pt e09796e: Add /api/ice-servers endpoint for TURN configuration d9b0f76: Check pt b794acb: try fixing integration tests cc59aa8: try fixing integration tests. 779c8cd: try fixing integration tests 2663864: iterate on integration tests 2f963b4: Update integration test pipeline. ce82fdc: Update integration test pipeline. 6453f18: Add diagnostic logging to integration tests to debug startup failures c304b9b: Remove accidentally committed submodules and untracked files 0428792: Update .gitignore to exclude local development directories 7728377: Remove frigate and prudynt-t submodules from git index afa8208: Fix stream delete API 75be945: Fix: Respect HTTP keep-alive in file serving c23ba1e: try fixing integration tests c6184c3: Convert off old hard coded migrations. 98cc8af: Fix playwright test runner 2b43e8d: Fix playwright test runner 0263887: Improvements to user management. 865ea37: Add test cleanup to prevent stream accumulation 99451e3: Restart lightNVR in container fix 6e36fb0: Add socket timeouts to go2rtc API client dc67889: Remove redundant go2rtc_sync_streams_from_database() call on stream add f1f2bdb: Optimize add stream d82da10: Non blocking delete stream b1bc6a7: Check if the listener handler is closed during restarts etc 15c0a00: HLS dts bugfix 88de102: iterate on remaining failing tests 52f5e2f: Fix: Skip re-registering streams already registered with go2rtc fd88384: libuv safety c211192: ONVIF discovery ux improvements. 5debbd1: Add optional TOTP MFA (Two-Factor Authentication) support (#84) 8e46048: Fix missing migrations f678d42: Fix missing migrations 72865cf: Fix missing migrations