GPX-Pro upgrade procedure
GPX-32 Pro / GPX-8 Pro — Firmware & SLSWebControls Upgrade Procedure (CLI + FTP)
Applies to: GPX Pro 32 and GPX Pro 8 (Lantronix XPort‑Pro / Evolution OS platform) Purpose: Load a new firmware release onto the XPort‑Pro and replace the on‑device SLSWebControls WebGUI so it matches the new firmware, preserving the GPX configuration. Method: CLI over Telnet / SSH for device operations + WinSCP over FTP in active mode for file transfer. Web Manager is not used in this procedure.
1. What's being replaced
Each GPX Pro is built on a Lantronix XPort‑Pro running Evolution OS. Three things live on the module's filesystem:
- Firmware — the operational code, an Evolution
.romzimage. The filenames differ per model:- GPX‑8 Pro:
gpx8_xport_pro.romz - GPX‑32 Pro:
gpx32_xport_pro.romz
.romzby FTP is itself the trigger — the unit writes it and reboots automatically. - GPX‑8 Pro:
- SLSWebControls (WebGUI) — the GPX web application, served from a folder named
httpin the root of the filesystem. The package is a full web tree — the foldersapp,config,content,controllers,directives,fonts,scripts,services,views, plus root files such asindex.html,manifest, andfavicon.ico. Its entire contents go into/http. - GPX configuration — held in
.jsonfile(s) in the root of the filesystem (e.g.automation.json,GPX-channels.json,gpx.json,mqtt.json,ntp.json,PING-channels.json,schedules.json,scripts.json,smtp.json,SNMP-channels.json,users.json). A format erases these, so they are backed up first and restored after the firmware update.
Version‑match rule: always pair the SLSWebControls set with the firmware release it was built for. Mismatched web files against firmware is the most common cause of a broken GPX web UI after an upgrade.
What
formatkeeps vs. loses: the format operation preserves the XPort‑Pro configuration settings (IP address, FTP state, serial/tunnel config — these live in the module's permanent memory) but destroys all files on the filesystem, which includes/httpand the root.jsonGPX config. That's why only the.jsonfiles need backing up and restoring — the IP address is unaffected.
2. Prerequisites
- [ ] Correct firmware image for the model (
gpx8_xport_pro.romzorgpx32_xport_pro.romz). - [ ] The matching SLSWebControls package for that release (unzipped, ready to upload).
- [ ] GPX IP address and admin credentials (factory default
admin/PASS, or your configured values). - [ ] CLI access over Telnet or SSH to the GPX.
- [ ] WinSCP installed. Avoid the Windows
ftp.execommand‑line client — it does not support active mode, which this device needs. - [ ] A wired connection on the same subnet.
3. Order of operations
Enable FTP (if needed) → back up .json config → format the filesystem → upload the new firmware (auto‑reboot) → create /http, upload the new WebGUI, and restore the .json config → reload via CLI → verify → disable FTP.
Firmware is loaded before the WebGUI: the firmware upload reboots (and can reorganize) the filesystem, so the web files and config are loaded afterward, where nothing overwrites them.
4. Phase 0 — Enable the FTP server if needed (CLI)
The GPX ships with FTP disabled in some builds. Open a Telnet or SSH session to the GPX (telnet <gpx-ip> lands at the > prompt), then enable it:
enable configure ftp state enable write exit exit
write commits the change to permanent memory so FTP stays enabled through the reboots in this procedure. (It's turned back off in the final phase.)
5. Phase 1 — Back up the GPX configuration (WinSCP)
- Open WinSCP → New Site:
- File protocol: FTP · Encryption: No encryption
- Host name:
<gpx-ip>· User name:admin· Password: your password - Advanced → Connection → FTP → turn Passive mode OFF (use active mode).
- Set the transfer mode to Binary (Options → Preferences → Transfer, or the toolbar) to avoid any newline translation on the embedded filesystem.
- Connect. In the root of the filesystem, download every
.jsonfile to a safe folder on your workstation. Grab them all — the exact set varies by unit (see the examples in §1). Leave thehttpfolder alone for now.
6. Phase 2 — Format the filesystem (CLI)
In the CLI:
enable filesystem format
format prints a warning and asks two questions — answer them as shown:
This command will destroy all files on the filesystem but preserve the configuration settings. Are you sure you want to format the filesystem (yes/no)? yes Do you want to back out (yes/no)? no Formatting...
Do not power‑cycle during the format. When the filesystem prompt returns, exit back out:
exit exit
(You'll create the http folder in Phase 4, after the firmware reboot.)
7. Phase 3 — Upload the firmware (WinSCP)
- Reconnect WinSCP (FTP, active mode, Binary transfer — mandatory for the
.romz). - Upload the model‑correct image to the root of the filesystem:
- GPX‑8 Pro →
gpx8_xport_pro.romz - GPX‑32 Pro →
gpx32_xport_pro.romz
- GPX‑8 Pro →
- On completion the GPX writes the image and reboots automatically — the FTP session will drop. Do not power off, reset, or interrupt the unit while it is writing. Allow a few minutes before reconnecting.
8. Phase 4 — Create /http, upload the WebGUI, and restore the config (CLI + WinSCP)
Once the unit is back up after the firmware reboot:
4a — Create the web root (CLI). (format preserves the config, so FTP should still be enabled; if it isn't, re‑run Phase 0 first.)
enable filesystem mkdir http exit exit
(The folder name is lowercase http.)
4b — Upload the WebGUI (WinSCP). Reconnect (FTP, active, Binary), enter /http, and upload the entire contents of the unzipped SLSWebControls package — all top‑level folders (app, config, content, controllers, directives, fonts, scripts, services, views) and all root files (index.html, manifest, favicon.ico, etc.). WinSCP transfers folders recursively.
- Upload the contents into
/http(i.e./http/index.html,/http/app/…) — not a nested/http/SLSWebControls/folder.
4c — Restore the config (WinSCP). Upload the saved .json file(s) back into the filesystem root (the root — not /http).
Verify the layout in WinSCP or the CLI (filesystem → ls): the root holds the .json files plus the http directory, and /http holds the web tree.
9. Phase 5 — Reload the GPX (CLI)
Restored .json config is applied on the next boot, so reboot from the CLI:
enable reload
The GPX restarts with the new firmware, the new SLSWebControls, and the restored configuration.
10. Phase 6 — Verify
- Reachable: reconnect to the GPX over Telnet/SSH.
- Firmware version: CLI →
enable→device→show— confirm the new release. - Web UI: browse to the GPX, hard‑refresh (clear cache), and confirm the SLSWebControls pages load and behave consistently with the new firmware.
- Config: confirm the GPX settings match the restored
.json(IP, channels, users, schedules, etc.).
11. Phase 7 — Disable the FTP server (CLI)
Once everything is verified and operational, turn FTP back off:
enable configure ftp state disable write exit exit
write makes the disabled state permanent.
12. Recovery notes
- Web UI blank or partial: re‑create
/httpand re‑upload the matching SLSWebControls (Phase 4); verify all folders transferred (ls/show tree). .jsonconfig wrong or missing: re‑upload the saved.jsonto the filesystem root (Phase 4c) andreload(Phase 5).- FTP won't connect: confirm the WinSCP session is in active mode and that FTP is enabled on the device (Phase 0). The Windows
ftp.execlient will not work here.
Quick‑reference sequence
| # | Phase | Where | Key commands / action |
|---|---|---|---|
| 0 | Enable FTP (if needed) | CLI | enable → configure → ftp → state enable → write |
| 1 | Back up config | WinSCP (FTP active, binary) | download all root *.json |
| 2 | Format | CLI | enable → filesystem → format (yes, then no) |
| 3 | Upload firmware | WinSCP | put gpx8_xport_pro.romz or gpx32_xport_pro.romz to root (auto‑reboots) |
| 4 | WebGUI + config | CLI + WinSCP | mkdir http → put package contents into /http → put saved *.json to root |
| 5 | Reload | CLI | enable → reload |
| 6 | Verify | CLI / browser | firmware version + web UI + config |
| 7 | Disable FTP | CLI | enable → configure → ftp → state disable → write |
Reminders: WinSCP FTP in active mode; binary transfer for every upload; format asks two prompts (yes, then no); firmware before WebGUI; never interrupt power during a format or firmware write; use the model‑correct .romz.