84 lines
2.5 KiB
Markdown
84 lines
2.5 KiB
Markdown
# Windows Support
|
||
|
||
This repo supports Windows, but there are two separate “Windows” stories:
|
||
|
||
1. **Running the Python scripts on Windows** (launchers: `.bat`)
|
||
2. **Actually talking to the Jibo over USB in RCM mode** (drivers + build tools)
|
||
|
||
The USB/RCM part is the trickiest.
|
||
|
||
## Launchers
|
||
|
||
- Installer: `../jibo_automod.bat`
|
||
- Runs `python ../jibo_automod.py %*`
|
||
- Warns if not Administrator.
|
||
|
||
- Updater: `../jibo_updater.bat`
|
||
- Prefers `../.venv/` Python if present.
|
||
- Else prefers `py -3`.
|
||
|
||
- GUI: `../jibo_gui.bat`
|
||
- Same Python resolution approach.
|
||
|
||
## Environment setup helper
|
||
|
||
- `../windows_setup.bat` helps install dependencies via MSYS2 and explains Zadig.
|
||
|
||
It installs (via MSYS2):
|
||
|
||
- MinGW gcc/make
|
||
- libusb
|
||
- ARM toolchain (`arm-none-eabi-gcc`) for payload builds
|
||
|
||
## USB driver requirement (RCM mode)
|
||
|
||
When Jibo is in RCM mode it enumerates as NVIDIA APX (`0955:7740`).
|
||
|
||
On Windows you typically need to replace its driver with WinUSB:
|
||
|
||
- Use Zadig and install WinUSB for the “APX” device.
|
||
|
||
Without this, ShofEL won’t be able to talk to the device.
|
||
|
||
## Editing mode.json on Windows
|
||
|
||
Linux can mount the ext filesystem image and edit `/var/jibo/mode.json` normally.
|
||
|
||
Windows usually can’t mount the ext image easily, so `../jibo_automod.py` tries alternative methods:
|
||
|
||
1. **debugfs (recommended)**
|
||
- If `debugfs.exe` is available on PATH, the tool can edit the file inside the ext filesystem image safely.
|
||
- Install via MSYS2:
|
||
- `pacman -S --needed e2fsprogs`
|
||
|
||
2. **Raw in-place patch (last resort)**
|
||
- The tool searches the partition image bytes for JSON patterns and overwrites them without changing length.
|
||
- This can fail if the on-disk JSON format differs or if there’s no safe padding space.
|
||
|
||
If you’re on Windows and you’re seeing warnings about raw edits or the tool can’t find patterns, installing `debugfs` is the best fix.
|
||
|
||
## WSL option
|
||
|
||
Another workable approach is to use WSL2 and follow the Linux path.
|
||
|
||
Caveat: you still need USB passthrough into WSL (which can be non-trivial depending on your setup).
|
||
|
||
## Common Windows failure modes
|
||
|
||
- Device not detected / can’t open USB:
|
||
- Wrong driver (use Zadig -> WinUSB)
|
||
- Not Administrator
|
||
- Cable is charge-only
|
||
|
||
- Build failures:
|
||
- Missing MSYS2 packages
|
||
- ARM toolchain missing (payload `.bin` files won’t build)
|
||
|
||
- mode.json edit failures:
|
||
- Install `e2fsprogs` and ensure `debugfs` is on PATH
|
||
|
||
## Related docs
|
||
|
||
- Installer workflow: [[01 - Installer (How It Works)]]
|
||
- CLI flags: [[03 - CLI Arguments]]
|