Files
JiboAutoMod/CONFIG_LOCATIONS.md
2026-03-21 22:10:13 +02:00

475 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# JiboOS V3.1 Config locations inventory (for SSH tooling)
This workspace is a filesystem tree under `build/`. Most paths below are **absolute paths as they exist on the robot**.
If youre using this repo as a staging image, the mapping is:
- Workspace path: `build/<ABS_PATH>`
- Robot path: `<ABS_PATH>`
Example: `build/usr/local/etc/jibo-jetstream-service.json` corresponds to `/usr/local/etc/jibo-jetstream-service.json` on-robot.
---
## Highest-level “what runs what”
### `/usr/local/etc/jibo-system-manager.json`
**Purpose:** Master orchestrator config. Defines the service startup order, executables, arguments (including which `-c /usr/local/etc/<service>.json` is used), environment variables, and some device-level settings.
**Why your tooling should care:** if you need to know **which process** consumes a config file, this is the authoritative mapping.
Notable sections:
- `SystemManager.service.services[]`
- `name`, `executable`, `modes.<mode>.arguments` (usually includes the config file path)
- `modes.<mode>.enabled` (turn a service on/off per mode)
- `SystemManager.skills.environment`
- `JIBO_HUB_SHIM_HOST` (host/port target for the hub shim)
- `JIBO_GQA_ENDPOINT` (HTTP endpoint used by the optional GQA shim)
- `credentials.path`: `/var/jibo/credentials.json` (runtime config; controls region selection in Jetstream)
- `wifi.*` (wpa_supplicant + DHCP client options)
- `time.*` (timezone/localtime paths and NTP sync)
**Apply/restart:** system-manager itself (how depends on your init/systemd on the robot). Most changes only take effect on service restart or reboot.
---
## Core robot service configs (`/usr/local/etc/*.json`)
These are the main knobs for the robots built-in services. Many follow this pattern:
- `WebCore.serverPort`: HTTP port for the service
- `<ServiceName>.registryPort`: service registry port (usually `8181`)
- `logging.*`: log levels / syslog routing
### `/usr/local/etc/jibo-service-registry.json`
**Purpose:** Service registry / management web endpoints.
- Ports: `8181` (`WebCore.serverPort`, `ServiceRegistry.registryPort`)
**Apply/restart:** restart `jibo-service-registry`.
### `/usr/local/etc/jibo-jetstream-service.json`
**Purpose:** Jetstream (hub client + streaming audio + wakeword/ASR pipeline glue).
Key knobs:
- `HubClient.override`: where Jetstream sends `/v1/listen` and friends.
- `hub_hostname`, `hub_port`
- Use this to point Jetstream to a **local or server-hosted hub shim**.
- `HubClient.listen_language`
- `HubClient.encoding_type` + `encoding-settings`: `OGG_OPUS` / `FLAC` settings
- `RecogHJ`, `HubAsr`: timing for SOS/EOS and max speech timeouts
**Apply/restart:** restart `jibo-jetstream-service`.
### `/usr/local/etc/jibo-asr-service.json`
**Purpose:** On-robot ASR service (WebSocket event stream + HTTP start/stop), logging, cloud/local STT selection.
Key knobs:
- `webCore.serverPort`: `8088`
- `AsrService.language`
- `AsrService.log_audio`, `log_text`, `log_path`, upload intervals/thresholds
- `AsrService.resident_task` / `resident_audio_channel`: default always-on hotphrase task (e.g. `audio_source_id":"alsa1"`)
- `AsrService.task_templates`: defines ASR pipelines
**Apply/restart:** restart `jibo-asr-service`.
Note: this file contains cloud credentials/keys in this build tree. Treat it as sensitive in your tooling (avoid echoing it into logs).
### `/usr/local/etc/jibo-tts-service.json`
**Purpose:** On-robot TTS voice + audio output.
Key knobs:
- `webCore.serverPort`: `8089`
- `TTSService.resourcePath`: voice resources
- `TTSService.alsaPlaybackDevice`: playback routing
- `voiceParams.*`: speed, volume, max chars, etc.
**Apply/restart:** restart `jibo-tts-service`.
### `/usr/local/etc/jibo-nlu-service.json`
**Purpose:** NLU service (local grammar/model parsing).
Key knobs:
- `webCore.serverPort`: `8787`
- `Service.nlu_data_dir`: NLU model data
- `Service.default_locale`
**Apply/restart:** restart `jibo-nlu-service`.
### `/usr/local/etc/jibo-audio-service.json`
**Purpose:** Audio routing/capture/playback device selection and audio processing thresholds.
Key knobs:
- `WebCore.serverPort`: `8383`
- `AudioService.alsaCaptureDevice`, `alsaPlaybackDevice`
- `AudioService.router*` latencies
- `AudioService.kinematic_model`: points to `/usr/local/etc/jibo-kinematic-model.json`
**Apply/restart:** restart `jibo-audio-service`.
### `/usr/local/etc/jibo-body-service.json`
**Purpose:** Low-level body control: serial devices, offsets, limits, battery thresholds, IMU calibration path.
Key knobs:
- `WebCore.serverPort`: `8282`
- `bodyBoard.*`: `/dev/ttyTHS0/1` devices, offsets, flipped flags, accel/vel limits
- `imu.driver.calibrationFile`: `/var/jibo/imu/imu-cal.json` (runtime file)
- `BodyService.kinematic_model`: points to `/usr/local/etc/jibo-kinematic-model.json`
**Apply/restart:** restart `jibo-body-service`.
### `/usr/local/etc/jibo-kinematic-model.json`
**Purpose:** Robot kinematic model (frame transforms, masses, inertias). Used by audio/body/LPS.
**Apply/restart:** restart consumers (at least `jibo-body-service`, `jibo-audio-service`, and `jibo-lps-service`).
### `/usr/local/etc/jibo-media-service.json`
**Purpose:** Media service camera configuration (CUDA/V4L2 device paths, capture params).
Key knobs:
- `WebCore.serverPort`: `7979`
- `MediaService.camera.*`: `/dev/video0`, `/dev/video1`, flips, AE/AWB tuning
**Apply/restart:** restart `jibo-media-service`.
### `/usr/local/etc/jibo-lps-service.json`
**Purpose:** LPS (Local Perception System) + internal media subsystem + visual awareness pipeline.
Key knobs:
- `WebCoreLPS.serverPort`: `8484`
- `CaptureSubsystem.camera_config_file`: `/usr/local/etc/lps/cameras.json`
- `EngineSubsystem.schemas.*`: `/usr/local/etc/lps/schemas/{normal,focused,minimal}.json`
- `EngineSubsystem.engine.state.entity_config_file`: `/usr/local/etc/lps/entityConfig.json`
- `EngineSubsystem.engine.state.geometry.*`: camera model params in `/var/jibo/lps/*.json` (runtime files)
**Apply/restart:** restart `jibo-lps-service`.
### `/usr/local/etc/lps/cameras.json`
**Purpose:** Camera device list + CUDA capture config + controls presets.
**Apply/restart:** restart `jibo-lps-service` (and anything using the same capture stack).
### `/usr/local/etc/lps/entityConfig.json`
**Purpose:** Entity tracking parameters (people/head tracking, confidence thresholds, trackers, etc.).
**Apply/restart:** restart `jibo-lps-service`.
### `/usr/local/etc/lps/schemas/normal.json`
### `/usr/local/etc/lps/schemas/focused.json`
### `/usr/local/etc/lps/schemas/minimal.json`
**Purpose:** LPS “schema” graphs: which detectors/actions run and at what cadence.
**Apply/restart:** restart `jibo-lps-service`.
### `/usr/local/etc/jibo-identity-service.json`
**Purpose:** Identity/face recognition engine + model paths.
Key knobs:
- `WebCore.serverPort`: `8489`
- `IdentityService.engine.identifier.*`: choose identifier type (deepid/eigenfaces/resnetfaceid) and model paths
- Storage path: `/var/jibo/identity/*` (runtime)
**Apply/restart:** restart `jibo-identity-service`.
### `/usr/local/etc/jibo-server-service.json`
**Purpose:** Cloud/server connection service + notifications.
- `WebCore.serverPort`: `8888`
- `NotificationSubsystem.serverURLSuffix`
**Apply/restart:** restart `jibo-server-service`.
### `/usr/local/etc/jibo-service-center-service.json`
**Purpose:** Service-center web UI/service.
- `WebCore.serverPort`: `9797`
**Apply/restart:** restart `jibo-service-center-service`.
### `/usr/local/etc/jibo-certification-service.json`
**Purpose:** Certification service.
- `WebCore.serverPort`: `9292`
**Apply/restart:** restart `jibo-certification-service`.
### `/usr/local/etc/jibo-system-monitoring-service.json`
**Purpose:** System health/storage monitoring + health log upload.
Key knobs:
- `WebCore.serverPort`: `4111`
- `SystemMonitoringService.storage.semantic`: path aliases used for reporting
- `health.upload.arguments`: uses `/var/jibo/credentials.json` (runtime)
**Apply/restart:** restart `jibo-system-monitoring-service`.
### `/usr/local/etc/jibo-test-capture-service.json`
**Purpose:** Camera capture tools service (debug/QA).
- `WebCore.serverPort`: `7979` (note: overlaps with `jibo-media-service.json` in this tree; only one should bind a given port at runtime)
**Apply/restart:** restart `jibo-test-capture-service`.
### `/usr/local/etc/jibo-test-capture.json`
**Purpose:** Test capture tool runtime behavior (recording toggles, lock counts, display/profiler options).
**Apply/restart:** whatever tool/runner loads it (not a standard service config; used by capture tooling).
### `/usr/local/etc/jibo-camera-calibrator.json`
**Purpose:** Camera calibration workflow + capture device selection. Writes calibration outputs into `/var/jibo/lps`.
**Apply/restart:** used by the calibrator tool; changes apply on next run.
### `/usr/local/etc/jibo-hub-shim.json`
**Purpose:** Robot-local hub shim config (for running the shim on the robot).
Key knobs:
- `listen.*`: bind/port/path for `/v1/listen`
- `asrService.baseUrl`: typically `http://127.0.0.1:8088` on-robot
**Apply/restart:** restart the hub-shim process (not a core Jibo service; depends on your deployment).
### `/usr/local/etc/jibo-sts.json`
**Purpose:** Placeholder config for secure-transfer (STS). In this tree it is currently empty.
**Apply/restart:** N/A (service may use defaults or other config sources).
---
## SSM / robot “mode” configuration (`/usr/local/etc/jibo-ssm/*.json`)
These files configure the Node-based SSM (service supervisor/skill launcher) and its ports per robot mode.
- `/usr/local/etc/jibo-ssm/jibo-ssm-normal.json`
- `/usr/local/etc/jibo-ssm/jibo-ssm-oobe.json`
- `/usr/local/etc/jibo-ssm/jibo-ssm-developer.json`
- `/usr/local/etc/jibo-ssm/jibo-ssm-int-developer.json`
Common knobs:
- `services.SkillsService.port` (HTTP port; typically `8779`)
- `services.DevShell.*` (developer ports: `8686/8989/9191`) (developer/int-developer)
- `services.WifiService.region` (e.g. `api`)
- `RegistryClient.host/port` (usually `127.0.0.1:8181`)
- `logging.namespaces` (fine-grained log routing)
**Apply/restart:** restart SSM / the Node process that loads these configs.
---
## Hub shim (server-hosted) config
This is for the PC/server side shim that emulates the hub `/v1/listen` endpoint.
Workspace source:
- `hub-shim/config.example.json` (template)
- `hub-shim/config.json` (local dev)
- `hub-shim/systemd/jibo-hub-shim.service` (service unit)
- `hub-shim/systemd/jibo-hub-shim.env.example` (env file template)
Server install locations (created by `hub-shim/install-server.sh`):
- `/opt/jibo-hub-shim/` (code)
- `/etc/jibo-hub-shim/config.json` (config)
- `/etc/jibo-hub-shim/jibo-hub-shim.env` (sets `JIBO_HUB_SHIM_CONFIG=/etc/jibo-hub-shim/config.json`)
- `/etc/systemd/system/jibo-hub-shim.service`
Key knobs in the shim config JSON:
- `listen.bindHost`, `listen.port`, `listen.path`
- `asrService.baseUrl`: robot ASR base URL (e.g. `http://<robot-ip>:8088` if shim runs off-robot)
- `asrService.audioSourceId`: commonly `alsa1` on-robot
- `asrService.timeoutMs`
- `gqaShim.enabled` + `gqaShim.ollama.*`: optional Ollama-backed “GQA shim” HTTP service
**Apply/restart:** `systemctl restart jibo-hub-shim` (server). For local dev: restart `node index.js ./config.json`.
---
## AI bridge (PC-side) configuration
### PC server (Python)
- `ai_bridge_server/server.py`
Config sources:
- CLI args: `--host`, `--port` (default run example uses `0.0.0.0:8020`)
- Env vars:
- `OLLAMA_URL` (default `http://127.0.0.1:11434/api/chat`)
- `OLLAMA_MODEL` (default `phi3.5`)
- `WHISPER_MODEL` (default `base`) (audio endpoint only)
**Apply/restart:** restart the Python process.
### Robot-side AI bridge client config
- `/opt/jibo/Jibo/Skills/@be/be/be/ai-bridge-config.json`
Key knobs:
- `enabled`
- `mode`: `TEXT` or `AUDIO`
- `serverBaseUrl`: your PCs bridge server URL (e.g. `http://<pc-ip>:8020`)
- ASR integration:
- `useAsrServiceStt`, `asrServiceHost`, `asrServicePort`, `asrAudioSourceId`, `asrTimeoutMs`, `asrAutoStart`
- Behavior:
- `wakeupChitchatPhrases[]`
- `followupEnabled`, `followupDelayMs`
- `aiForwardingAllowedSkills[]` gating
**Apply/restart:** restart the SkillsService / BE skill (or reboot).
Related dev-only override:
- `/opt/jibo/Jibo/Skills/@be/be/be/jibo-asr-service.local.json` (local-run ASR config variant)
---
## Skills menu / content configs (skill-layer “settings”)
These are not OS-level services, but they are **configuration surfaces** for skill UI/menu behavior.
- `/opt/jibo/Jibo/Skills/@be/menu-entries.d/*.json`
- Defines top-level menu entries/submenus (e.g. `childrenDir` points at a skill folder containing `menuEntry.json`).
- `/opt/jibo/Jibo/Skills/*/menuEntry.json`
- Declares skill menu metadata (title/hidden/etc.).
- `/opt/jibo/Jibo/Skills/@be/be/menu/menus/*.json`
- Defines button menus (labels/icons/utterances + hit area polygon).
**Apply/restart:** restart SkillsService / reload the menu skill.
---
## Init scripts and env-tunable configs (`/etc/init.d/*`)
These scripts are often the real place where **ports and file paths** are chosen, via environment variables.
### `/etc/init.d/S04jibo-asr-service`
- Launches: `/usr/local/bin/jibo-asr-service -c /usr/local/etc/jibo-asr-service.json`
- PID file: `/var/run/jibo-asr-service.pid`
- Log: `/tmp/jibo-asr-service.log`
### `/etc/init.d/S02jibo-skills-logd`
Skills UDP log daemon.
Env vars:
- `JIBO_LOGD_HOST` (default `127.0.0.1`)
- `JIBO_LOGD_PORT` (default `15140`)
- `JIBO_LOGD_FILE` (default `/tmp/jibo-skills.log`)
### `/etc/init.d/S03jibo-skills-logpanel`
Skills web log panel.
Env vars:
- `JIBO_LOGPANEL_BIND` (default `0.0.0.0`)
- `JIBO_LOGPANEL_PORT` (default `15150`)
- `JIBO_LOGD_FILE` (shared logfile path)
### `/etc/init.d/S21firewall`
Firewall rules (iptables). Not JSON, but it is a major “settings surface”.
- Always allows SSH port `22`
- Also explicitly allows SkillsService panel `8779` and log panel `15150`
- Opens additional ports based on the current mode via `/usr/bin/jibo-getmode`
**Apply:** run the init script (restart) or reboot.
---
## Runtime-created or runtime-edited config files (referenced by the above)
These are not present in this build tree, but the services above reference them. Your SSH tooling will often want to read/edit these too.
- `/var/jibo/credentials.json`
- Used for: Jetstream `region-settings` selection; system health upload credentials.
- `/var/jibo/imu/imu-cal.json`
- Used for: BodyService IMU calibration.
- `/var/jibo/lps/CameraModelParamsL.json`
- `/var/jibo/lps/CameraModelParamsR.json`
- `/var/jibo/lps/InterCameraTransform.json`
- Used for: LPS geometry.
- `/var/etc/timezone`, `/var/etc/localtime`
- Used for: system timezone.
---
## Quick port index (useful for “is my edit live?” checks)
From configs in this tree:
- Service registry: `8181`
- Body: `8282`
- Audio: `8383`
- Jetstream: `8090`
- ASR: `8088`
- TTS: `8089`
- NLU: `8787`
- Identity: `8489`
- LPS: `8484` (and internal media `8486`)
- Media: `7979`
- Server service: `8888`
- System manager: `8585`
- System monitoring: `4111`
- Service center: `9797`
- Certification: `9292`
- Skills service: `8779` (SSM)
- Skills logd: UDP `15140`
- Skills log panel: `15150`
- Hub shim (this project): `9000` (server-side shim)
- AI bridge server (PC): `8020`
---
## Suggested conventions for your editor tool
- Always read/parse JSON with comment tolerance disabled (these are strict JSON files).
- Treat these keys as “high risk” and avoid accidentally printing them:
- Anything containing `appkey`, `key`, `credential`, `password`, `token`.
- After edits:
- Restart only the owning service (see sections above).
- Prefer `system-manager` / SSM restart only when necessary.