148 lines
3.5 KiB
Markdown
148 lines
3.5 KiB
Markdown
|
|
# CLI Arguments
|
|||
|
|
|
|||
|
|
This page documents the CLI flags for the two main tools:
|
|||
|
|
|
|||
|
|
- `../jibo_automod.py` (installer/mod tool)
|
|||
|
|
- `../jibo_updater.py` (OS updater)
|
|||
|
|
|
|||
|
|
If you’re using launchers (`.sh`/`.bat`), they forward all arguments through.
|
|||
|
|
|
|||
|
|
## jibo_automod.py
|
|||
|
|
|
|||
|
|
### Modes (mutually exclusive)
|
|||
|
|
|
|||
|
|
- (no mode flag)
|
|||
|
|
- Full mod workflow (full eMMC dump, extract/modify/write `/var`).
|
|||
|
|
|
|||
|
|
- `--dump-only`
|
|||
|
|
- Only dump eMMC; don’t modify anything.
|
|||
|
|
|
|||
|
|
- `--write-partition FILE`
|
|||
|
|
- Write an already-prepared partition image to eMMC.
|
|||
|
|
- You must tell it where to write using `--start-sector`.
|
|||
|
|
|
|||
|
|
- `--mode-json-only`
|
|||
|
|
- Fast path:
|
|||
|
|
1) read GPT (small)
|
|||
|
|
2) read `/var` only (~500MB)
|
|||
|
|
3) modify `/var/jibo/mode.json`
|
|||
|
|
4) write back either a patch (default) or full `/var`
|
|||
|
|
|
|||
|
|
### Common options
|
|||
|
|
|
|||
|
|
- `--dump-path FILE`
|
|||
|
|
- Use an existing dump file instead of reading from the device.
|
|||
|
|
|
|||
|
|
- `--output FILE` / `-o FILE`
|
|||
|
|
- Output file for dumps.
|
|||
|
|
|
|||
|
|
- `--start-sector HEX`
|
|||
|
|
- Start sector for `--write-partition`.
|
|||
|
|
- Parsed with base autodetect (`0x...` works).
|
|||
|
|
- Default is `0x7E9022` (but the full/fast workflows usually compute the start sector from GPT).
|
|||
|
|
|
|||
|
|
- `--force-dump`
|
|||
|
|
- Re-dump even if a dump exists.
|
|||
|
|
|
|||
|
|
- `--rebuild-shofel`
|
|||
|
|
- Force rebuilding ShofEL (`make clean` then `make`).
|
|||
|
|
|
|||
|
|
- `--skip-detection`
|
|||
|
|
- Skip USB “is Jibo connected” checks.
|
|||
|
|
|
|||
|
|
- `--no-verify`
|
|||
|
|
- Skip verification read-back.
|
|||
|
|
|
|||
|
|
### Fast mode options
|
|||
|
|
|
|||
|
|
- `--full-var-write`
|
|||
|
|
- Only meaningful with `--mode-json-only`.
|
|||
|
|
- If set: write the full `/var` partition back (slower).
|
|||
|
|
- If not set: compute sector diffs and only write changed ranges (faster).
|
|||
|
|
|
|||
|
|
### Examples
|
|||
|
|
|
|||
|
|
- Full mod:
|
|||
|
|
- `python3 jibo_automod.py`
|
|||
|
|
|
|||
|
|
- Dump only:
|
|||
|
|
- `python3 jibo_automod.py --dump-only -o my_dump.bin`
|
|||
|
|
|
|||
|
|
- Use existing dump:
|
|||
|
|
- `python3 jibo_automod.py --dump-path jibo_work/jibo_full_dump.bin`
|
|||
|
|
|
|||
|
|
- Fast mode:
|
|||
|
|
- `python3 jibo_automod.py --mode-json-only`
|
|||
|
|
|
|||
|
|
- Write a prepared partition:
|
|||
|
|
- `python3 jibo_automod.py --write-partition var_partition.bin --start-sector 0x7E9022`
|
|||
|
|
|
|||
|
|
## jibo_updater.py
|
|||
|
|
|
|||
|
|
The updater assumes you already have SSH access to the robot.
|
|||
|
|
|
|||
|
|
### Required
|
|||
|
|
|
|||
|
|
- `--ip <host>` (alias: `--host`)
|
|||
|
|
- IP or hostname of your Jibo.
|
|||
|
|
|
|||
|
|
### Connection
|
|||
|
|
|
|||
|
|
- `--user <name>` (default `root`)
|
|||
|
|
- `--password <pass>` (default `jibo`)
|
|||
|
|
- `--ssh-timeout <seconds>` (default `15`)
|
|||
|
|
|
|||
|
|
### Release selection
|
|||
|
|
|
|||
|
|
- `--releases-api <url>`
|
|||
|
|
- API endpoint for Gitea releases.
|
|||
|
|
|
|||
|
|
- `--stable`
|
|||
|
|
- Ignore prereleases.
|
|||
|
|
|
|||
|
|
- `--tag <tag>`
|
|||
|
|
- Install a specific tag instead of “latest”.
|
|||
|
|
|
|||
|
|
### Archive layout
|
|||
|
|
|
|||
|
|
- `--build-path <relative/path>`
|
|||
|
|
- If the updater can’t find the `build/` folder automatically, specify where it is inside the extracted archive.
|
|||
|
|
|
|||
|
|
### Safety / UX
|
|||
|
|
|
|||
|
|
- `--state-file <path>`
|
|||
|
|
- Where it remembers the last applied version per host.
|
|||
|
|
|
|||
|
|
- `--force`
|
|||
|
|
- Re-download and re-install even if the local state says you’re already on that version.
|
|||
|
|
|
|||
|
|
- `--yes`
|
|||
|
|
- Don’t prompt for confirmation.
|
|||
|
|
|
|||
|
|
- `--dry-run`
|
|||
|
|
- Download/extract + connect, but don’t upload files and don’t touch mode.json.
|
|||
|
|
|
|||
|
|
### Returning to normal mode
|
|||
|
|
|
|||
|
|
- `--return-normal`
|
|||
|
|
- After update, set `/var/jibo/mode.json` back to `normal` (no prompt).
|
|||
|
|
|
|||
|
|
- `--no-return-normal`
|
|||
|
|
- Never prompt and never change mode back.
|
|||
|
|
|
|||
|
|
### Examples
|
|||
|
|
|
|||
|
|
- Update to latest:
|
|||
|
|
- `python3 jibo_updater.py --ip 192.168.1.50`
|
|||
|
|
|
|||
|
|
- Stable only:
|
|||
|
|
- `python3 jibo_updater.py --ip 192.168.1.50 --stable`
|
|||
|
|
|
|||
|
|
- Specific tag:
|
|||
|
|
- `python3 jibo_updater.py --ip 192.168.1.50 --tag v3.3.0`
|
|||
|
|
|
|||
|
|
- Dry run:
|
|||
|
|
- `python3 jibo_updater.py --ip 192.168.1.50 --dry-run`
|
|||
|
|
|
|||
|
|
More detail: [[06 - Updater (How It Works)]]
|