Kamoder

Services

What runs on the camera, the ports it listens on, and how it is supervised.

All services are declared in anyka_rust/supervisor.toml and started by the supervisor in file order. Paths in it are relative to anyka_rust/.

ServiceDefaultListens onPurpose
wdt_feederon, critical—Feeds /dev/watchdog every second. Started first; the web UI cannot stop it.
lightson/tmp/kamoder-lights.sockOwns the IR-cut filter, IR and white LEDs, red/blue indicator and speaker amp. Day/night mode, persisted in etc/lights.json.
wifion—Keeps the station associated, applies wifi_ssid changes with rollback, and runs the recovery ladder.
sshdonTCP 2222Password-authenticated SSH (PBKDF2 hashes in etc/).
webonTCP 80Admin SPA and JSON API: login, services, Wi-Fi, PTZ, lights, users, reboot.
onvifonTCP 8000, UDP 3702ONVIF Profile S: device, media, PTZ and imaging (IR-cut), plus WS-Discovery. Owns the PTZ motor.
rtspoffTCP 554 /vs0RTSP 1.0, H.264 over TCP-interleaved or UDP, Digest auth with the ONVIF account.
snapshotoffTCP 3000jpeg_snapshot (EV200 SDK).

Supervisor

  • Restarts a service that exits, with exponential backoff.
  • Stops restarting after too many crashes in a window (per service max_restarts / restart_window_secs).
  • Exposes a control socket the web UI uses to list, start, stop and restart services. Critical services refuse to be stopped.

To change what runs, edit supervisor.toml on the card (enabled = false, args) and restart the stack with sh anyka_rust/init.sh --stop followed by sh Factory/config.sh.

Logs

Every service logs through tracing to anyka_rust/logs/<service>.log. The level is log_level in camera.conf (for example info,wifi=debug). Boot is logged to logs/boot.log and logs/init.log, and every call of the boot hook to /tmp/anyka_config_sh.log.

Metrics

Set metrics='textfile:/mnt/disc1/anyka_rust/metrics' and each service writes <service>.prom for node_exporter's textfile collector. All metric names start with kamoder_, for example kamoder_wifi_escalation_level or kamoder_lights_*.

Demos

The vendor SDK's demo programs are ported and shipped in bin/ for experiments: ai_demo, aenc_demo, venc_demo, md_demo, md_demo_v8, rtsp_demo and jpeg_snapshot. Run one with sh anyka_rust/run-on-camera.sh <demo> [args]. All but md_demo_v8 use the EV200 SDK, which does not match the AV100's video pipeline; md_demo_v8 uses the AV100's V8 SDK and is not yet tested on hardware.

On this page