Install Xyrom OS on Raspberry Pi 4B GUI Edition
Full Xyrom OS with desktop GUI shell — optimised for Raspberry Pi 4B, SunFounder PiDog, and 7" touchscreen displays.
Latest release: Xyrom OS 2026 V.1.1 · ARM64 · 1.3 GB compressed · 19 Jun 2026 · Live-tested on hardware ✓
🆕 What's new in v2026-V1
- Screen crash fix — Chromium GPU process no longer crashes on Pi4 vc4-kms-v3d driver (disabled
--use-angle=gles + --in-process-gpu)
- ~18s faster boot — removed
rc.local sleep 5, disabled NetworkManager-wait-online and raspi-config services
- 📷 Camera tab — live MJPEG stream from Pi Camera (CSI) or USB webcam in the Xyrom OS GUI dashboard
- Camera stream v2 — fast CAPTURE-only device scan; no more 60s+ hang on Pi4 ISP codec nodes
- Camera interface enabled —
camera_auto_detect=1 + dtoverlay=imx219 baked into config.txt
- PiDog safe-start — staged servo spin-up prevents brownout reboot when all 12 servos fire simultaneously
- SSH tunnel service —
autossh systemd service with -R 2200:localhost:22 baked in for remote access
⬇ Xyrom OS — Raspberry Pi 4B Image
Flash-ready .img.gz · No login required · Direct download
SHA256 9de8facd7848a9b4fea704c0249942ebdc05da1c31fc80194cd9ee8b27ea6c1f
xyromos-v2026-V1.1-rpi4-arm64.img.gz
🧩 Requirements
| Board | Raspberry Pi 4 Model B (2 GB, 4 GB, or 8 GB recommended) |
| Display | Any HDMI monitor or 7" touchscreen — HDMI and DSI both auto-detected. Tested with 52Pi EP-0177 (1024×600) and GeekPi 7" DSI. |
| Storage | microSD card ≥ 16 GB (Class 10 / A2 recommended) or USB 3.0 drive ≥ 16 GB |
| Power | USB-C 5V / 3A (official Raspberry Pi PSU recommended — especially with PiDog servos) |
| Camera | Optional — Pi Camera Module V2 (IMX219, CSI ribbon) or any USB webcam. config.txt pre-configured for imx219. |
| Network | Optional — Xyrom OS installs and runs 100 % offline |
| Flash host | Any PC / Mac / Linux with SD card reader or USB port |
📋 Step 1 — Verify the download
After downloading, confirm the file is intact:
sha256sum -c xyromos-v2026-V1.1-rpi4-arm64.sha256
Expected output: xyromos-v2026-V1.1-rpi4-arm64.img.gz: OK
💾 Step 2 — Flash the image
Option A — Recommended
🍓 Raspberry Pi Imager
- Download Raspberry Pi Imager (free, Windows / macOS / Linux).
- Click Choose OS → scroll down → Use custom image.
- Select
xyromos-v2026-V1.1-rpi4-arm64.img.gz.
- Click Choose Storage → select your SD card or USB drive.
- Click Write and wait for verification to complete.
Option B
🔥 Balena Etcher
- Download balenaEtcher.
- Flash from file → select the
.img.gz (Etcher decompresses automatically).
- Select your SD card / USB drive as target.
- Click Flash!
Option C — Linux / macOS terminal
⌨ Command line (dd)
gunzip -c xyromos-v2026-V1.1-rpi4-arm64.img.gz | \
sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
⚠ Replace /dev/sdX with your actual device. Verify with lsblk first — writing to the wrong disk will destroy data.
🔌 Step 3 — Assemble the hardware
- Insert the flashed SD card (or plug USB drive into a blue USB 3.0 port).
- Connect your display — HDMI or DSI. Both are pre-configured. For HDMI use port 1 (closest to USB-C power) unless you have a specific reason for port 2.
- Camera (optional): Seat the Pi Camera V2 ribbon cable into the CSI connector — silver contacts face toward the USB ports. Lock the latch firmly.
- If using a SunFounder PiDog, ensure the Robot HAT is seated and battery is connected but not yet switched on.
- Connect power last (USB-C 5V/3A).
🖥 Display — what's pre-configured
This image ships with both HDMI ports and DSI pre-configured in config.txt:
hdmi_cvt=1024 600 60 — 52Pi EP-0177 7" HDMI (both ports)
dtoverlay=vc4-kms-v3d + dtoverlay=goodix — DSI + Goodix touch
gpu_mem=128 — GPU memory allocation for GUI
camera_auto_detect=1 + dtoverlay=imx219 — Pi Camera V2 ready
🚀 Step 4 — First boot
- Power on the Raspberry Pi 4B.
- First boot: filesystem expands automatically — takes ~30–45 seconds total to desktop (improved from previous versions).
- The Xyrom OS GUI shell launches automatically in fullscreen kiosk mode.
- The activation wizard starts on-screen — enter your license key to proceed.
💡 Xyrom OS runs 100 % offline. No internet is required for installation, first boot, or activation. Connect to a network only for cloud features or online license verification.
🔑 Step 5 — Activation
- In the GUI wizard, tap Get Started.
- Enter your license key (format:
TIER-ORGID-XXXXXXXX) and your Organisation ID.
- Set your Robot ID (e.g.
pidog-001) — used to identify this device in the portal.
- Tap Activate. Activation works online or offline — if no network, a 30-day grace token is issued automatically.
- Once complete the robot dashboard launches. You're live.
🎓 No license key? Visit
license.xyromos.com to get one, or tap
Evaluate in the wizard for a 30-day free trial.
📷 Camera setup (Pi Camera V2 / IMX219)
The camera interface is pre-enabled. Once physically connected, the camera stream starts automatically on boot.
- Power off. Open the CSI latch on the Pi. Insert the Pi Camera V2 ribbon cable — silver contacts face toward the USB ports. Press latch down firmly. Do the same on the camera end.
- Power on. The
xyrom-camera service starts and streams on http://<pi-ip>:7001/stream.
- In the Xyrom OS GUI, tap the 📷 Camera tab in the top nav to view the live feed.
📌 USB cameras also work out-of-the-box — plug in and the stream auto-detects. No config change needed.
🖥 Display config reference
If your screen is backlit but blank, the Pi is booting fine — it's a resolution mismatch. Pull the SD card, open bootfs/config.txt on any PC, and find/replace the relevant block below.
📌 Pi 4 has two micro-HDMI ports. Port 1 (closest to USB-C power) = no suffix. Port 2 (next to USB-A) = needs :1 on every setting. This is the most common cause of blank screen.
| Display | config.txt settings |
52Pi EP-0177 7" HDMI · 1024×600 ✓ pre-configured |
Port 1: hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt=1024 600 60 6 0 0 0
hdmi_drive=2
disable_overscan=1
Port 2: hdmi_force_hotplug:1=1
hdmi_group:1=2
hdmi_mode:1=87
hdmi_cvt:1=1024 600 60 6 0 0 0
hdmi_drive:1=2
disable_overscan:1=1
|
GeekPi / RPi 7" DSI ribbon · 800×480 |
dtoverlay=vc4-kms-v3d
dtoverlay=rpi-ft5406
display_lcd_rotate=0
Set display_lcd_rotate=2 if display is upside-down. |
Waveshare 7" DSI Goodix touch · 1024×600 |
dtoverlay=vc4-kms-v3d
dtoverlay=goodix
display_lcd_rotate=0
|
1080p HDMI monitor 1920×1080 |
Port 1: hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=82
hdmi_drive=2
|
720p HDMI 1280×720 |
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=85
hdmi_drive=2
|
4K HDMI 3840×2160 · 30Hz |
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=97
hdmi_drive=2
|
🛠 Troubleshooting
| Symptom | Fix |
| Backlit but blank screen | Pi is booting fine — resolution mismatch or wrong HDMI port. See display table above. Port 2 requires :1 suffix on every config line. |
| Screen goes blank during use | Fixed in v2026-V1 (GPU crash fix). If still happening: SSH in and check /var/log/xyromos/gui.log for GPU errors. |
| Black screen, no backlight (DSI) | Check ribbon cable orientation — silver contacts face down toward board. Try display_lcd_rotate=2 if upside-down. |
| Touch not responding | USB touch: try a different USB port and reboot. DSI Goodix: verify dtoverlay=goodix,interrupt=4,reset=17 in config.txt. |
| No camera feed | Check CSI ribbon is fully seated at both ends — silver contacts toward USB ports. Verify camera_auto_detect=1 in config.txt. Run libcamera-hello via SSH to test. |
| PiDog reboots on stand-up | Power surge from servos. Fixed in v2026-V1 (safe-start). Ensure 5V/3A PSU. Separate servo power supply recommended for heavy motion. |
| GUI doesn't launch | SSH in: ssh xyrom@xyromos-robot.local → run journalctl -u xyrom-runtime -n 50 and cat /var/log/xyromos/gui.log |
| Boot still slow after flash | v2026-V1 saves ~18s. First boot is slower (filesystem expand). Subsequent boots should reach desktop in ~25–30s. |
| No boot from USB drive | Enable USB boot first via SD card: sudo rpi-eeprom-update then reboot. |
| SHA256 mismatch | Re-download — file corrupted in transit. Try wget https://xyromos.com/download/releases/v2026-V1.1/xyromos-v2026-V1.1-rpi4-arm64.img.gz |
🔒 SSH access
SSH is enabled by default. Connect with:
ssh xyrom@<device-ip>
# Default password: xyromos (change immediately with: passwd)
Find the device IP on your router, or use mDNS: ssh xyrom@xyromos-robot.local
📦 What's included in v2026-V1
- Xyrom OS runtime — Python 3.11, agent orchestration, adapter framework
- Chromium kiosk GUI shell — robot operator dashboard, Camera tab, Map view, Dev mode
- 📷 Camera stream service — MJPEG on port 7001, auto-detects CSI + USB cameras
- SunFounder PiDog adapter — Robot HAT I2C, 12-servo control, IMU, sonar, brownout-safe init
- HDMI (52Pi / any) + DSI (GeekPi / Waveshare / official) display support
- Hardware adapters: Unitree, LimX, Luxonis, KUKA, ABB, Fanuc, UR, Doosan + more
- Reverse SSH tunnel service (autossh) — remote access via xyromos.com relay
- Offline-first — all GUI assets bundled, no CDN dependencies
- Auto-expanding rootfs on first boot
- Systemd-managed services with watchdog + auto-restart
📥
Previous versions and other platform images (RPi5, x86, Jetson, BeagleBone) are available at
license.xyromos.com with an active license.
← Back to all platforms