Releases: devwithzachary/LinuxOnVita
Release list
1.3.0
LinuxOnVita v1.3.0 - Turnkey Graphical Desktop, Debug Bootstrapper & Alpine 3.24
LinuxOnVita v1.3.0 is a major milestone release bringing a lightweight, memory-optimized graphical desktop environment to the PlayStation Vita framebuffer, an on-device bootstrapper debug mode, an upgraded base container to Alpine Linux v3.24, and critical baremetal loader stability fixes.
🖥️ Turnkey Graphical Desktop (alpine-desktop)
- Lightweight IceWM Environment: Runs directly on the Vita framebuffer (
/dev/fb0) via X11 (Xfbdev/Xorgfbdev) with zero 3D GPU acceleration required, consuming only ~25 MB RAM. - Handheld Analog Mouse Emulation (
vita-input-mapper --desktop):- Left stick controls 360-degree pointer movement with dynamic non-linear acceleration and a sub-pixel fractional accumulator for pixel-perfect precision on checkboxes, icons, and menus.
- Right stick controls vertical and horizontal scrolling (
REL_WHEEL/REL_HWHEEL) with displacement scaling. - Ergonomic button mapping: Cross (✕) and R-Trigger for Left Click, Circle (○) and L-Trigger for Right Click, Square (□) for Middle Click, Start for Application Menu, and Select for Escape.
- Touchscreen & Display Integration: Native touchscreen support with automatic coordinate calibration (
0 1920 0 1080), direct touch pointer events, and long-press right-click emulation (EmulateThirdButton). Consolefbkeyboardautomatically suspends during desktop sessions. - Calibrated Proportional Typography (96 DPI): Pre-configured standard 96 DPI display scaling with tuned IceWM theme overrides and GTK settings (
Sans 9) for clean readability on the 960x544 screen. - Bundled Handheld Application Suite:
- Welcome & Control Guide (
vita-desktop-welcome): Tabbed documentation for controller inputs, system telemetry, APK package management, and startup preferences. - Web Browser (
badwolf): Lightweight WebKitGTK-based browser supporting modern HTML5, CSS3, and JavaScript within a handheld memory footprint. - Task Manager (
xfce4-taskmanager/taskmanager): Full-featured GTK process monitor displaying real-time CPU and memory utilization graphs. - On-Screen Keyboard (
matchbox-keyboard/toggle-keyboard): Floating virtual keyboard (layer: OnTop) that hovers above full-screen windows without carving or shrinking the 960x544 desktop workspace. - File Manager (
pcmanfm): Fast tabbed file manager for managing files, removable storage, and desktop icons. - Text Editor (
leafpad/mousepad): Modern text editor with syntax highlighting and line numbering. - Terminal Emulator (
sakura): Multi-tabbed GTK terminal with customizable fonts and direct native CLI access forapkpackage management. - Image Viewer (
feh): Lightweight image viewer for photos and screenshots. - Reboot to VitaOS (
vita-reboot): Safe filesystem synchronization and direct reboot back to Sony VitaOS LiveArea with confirmation protection.
- Welcome & Control Guide (
🔍 Bootstrapper Debug Mode & Diagnostic Logger (LinuxOnVita.vpk)
- Dedicated Debug Mode (
[SQUARE]): Added a dedicated Debug Mode boot option in the bootstrapper VPK based on GitHub Issue #12 to trace, display, and record every step of the Linux bootloader handover. - Granular Step-by-Step Reporting: Inspects system firmware version, hardware model identification (
PCH-1000,PCH-2000Slim, orDolcePSTV), physical Sony memory card MSIF presence, storage mount statuses (ux0:,uma0:,xmc0:,imc0:), file integrity, and exact byte sizes forzImage, DTBs,payload.bin, andbaremetal-loader.skprx. - Persistent Boot Logging (
boot_debug.log): Writes all boot events with synchronous disk flushing (sceIoSyncByFd) toux0:data/LinuxOnVita/boot_debug.log(with fallback tour0:), surviving hard hangs and freezes. - Built-in On-Screen Log Viewer (
[SELECT]): Scrollable viewer in the VPK main menu allowing users to inspect previous boot logs directly on the console screen without needing a PC or file manager.
📦 Alpine Linux v3.24 & Kernel Namespaces
- Alpine 3.24 Upgrade: Upgraded base container from Alpine 3.20 to stable Alpine Linux v3.24 (
alpine-minirootfs-3.24.2-armv7.tar.gz) with automatic repository migration for existing containers. - System V IPC & Security Namespaces: Enabled
CONFIG_SYSVIPC=y,CONFIG_USER_NS=y,CONFIG_SECCOMP=y, andCONFIG_SECCOMP_FILTER=yin the kernel, enabling MIT-SHM shared memory acceleration in X11 applications and modern container compatibility.
🛠️ Hardware & System Diagnostics (vita-diagnostics)
- Created on-device diagnostic program (
vita-diagnostics/vita-diag) to troubleshoot Wi-Fi connection and SD card mounting issues. - Automatic storage candidate probing across
exfat,vfat, andext4with recommended mount commands. - Wi-Fi RF scanning, authentication state analysis, and gateway ping connectivity testing.
- Privacy Protection: Automatically redacts Wi-Fi passwords (
psk="[REDACTED_FOR_PRIVACY]") across all logs. - Dual storage export: Saves reports to
/mnt/ux0/,/mnt/ur0/, and/tmp/.
🐛 Bug Fixes & Stability Improvements
- Baremetal Loader Standby Handover (Issue #12): Fixed an issue where launching Linux on PS Vita Slim (PCH-2000) or certain firmware versions caused an immediate black screen by intercepting both
SCE_SYSCON_RESET_TYPE_POWEROFFandSCE_SYSCON_RESET_TYPE_SUSPENDinbaremetal-loader.skprx. - Syscon Analog Stick Sampling (
vita-buttons): Fixed a payload length calculation bug for Syscon command0x180, restoring analog stick input reporting in Linux. - Blockdev Re-Mount Errors: Replaced legacy mount checks with
/proc/mountsvalidation across system services, eliminating/dev/vita/ur0: Can't open blockdeverrors. - OpenSSH Daemon Stability: Replaced disruptive daemon restarts in
S45wifiwith non-destructive status checks, preserving active SSH sessions on DHCP lease renewals. - Clean exFAT Unmounting: Added filesystem synchronization steps to
/etc/inittabbefore and after service shutdown to eliminate unmount warnings on reboot.
📥 Installation & Updating
First-Time Installation:
- Download
LinuxOnVita.vpkbelow and transfer it to your PS Vita via VitaShell. - In VitaShell, highlight
LinuxOnVita.vpkand press CROSS (✕) to install. - Launch LinuxOnVita from LiveArea.
- Select your Sony Memory Card partition (
ux0:,xmc0:, oruma0:) and press CROSS (✕) to install the bundled Linux files. - Press CROSS (✕) to boot straight into Linux!
Updating from an Earlier Version:
- Install the new
LinuxOnVita.vpkin VitaShell. - Launch the app and press TRIANGLE (△) to update/refresh the Linux files (
<mount>/linux/) on your memory card with the new v1.3.0 kernel and loaders. - Press CROSS (✕) to boot into Linux, or press SQUARE (□) to boot in Debug Mode.
1.2.0
LinuxOnVita v1.2.0 - Fullscreen DOOM, SD2Vita Hardware Power, ZRAM Swap & Complete User Guide
LinuxOnVita v1.2.0 transforms the PlayStation Vita into a fully interactive, memory-safe, and standalone handheld Linux computer running Linux 6.12. This release introduces edge-to-edge fullscreen DOOM scaling, hardware-level SD2Vita power and high-speed bus negotiation, compressed ZRAM swap to eliminate out-of-memory crashes, model-aware display backlight controls, and a comprehensive end-user guide.
🌟 What's New in v1.2.0
🎮 Fullscreen 960x544 Framebuffer DOOM (vita-doom)
- Native Fullscreen Scaling: Overhauled
fbdoom's display engine to scale 320x200 DOOM edge-to-edge across the entire 960x544 PlayStation Vita screen by default. - Zero-Copy High-Speed Blitter: Implemented direct memory mapping (
mmap) of/dev/fb0with optimized 3x horizontal pixel unrolling, precomputed 32-bit palette lookups, and scanline row caching (< 0.6ms frame blit time). - Controller Exit Confirmation & Quick Shortcut: Mapped Cross (✕) and Triangle (△) to confirm menu prompts (
key_menu_confirm) and Circle (○) to cancel (key_menu_abort). Added universalSTART + SELECTinstant exit shortcut. - Fixed Exit Loop Bug: Added stale evdev queue draining upon resumption in
vita-input-mapperandfbkeyboard, eliminating the issue where exiting DOOM replayed queued keystrokes and immediately restarted the game. - Custom Aspect Ratios: Supports
vita-doom -aspectfor 4:3 pillarbox (725x544) andvita-doom -integerfor 2x centered windowing (640x400).
💾 SD2Vita Game Card Power & High-Speed Support
- Hardware Power Initialization: Added Syscon command
0x888power-on invocation during boot so the physical Game Card slot receives full 3.3V VCC. - Pervasive Pad Signalling: Configured pad voltage register
0xE3100124for 3.3V signalling and enabledcap-sd-highspeedin thesdif1Device Tree node. - Automatic SD2Vita Auto-Mounting: Automatically detects microSD partitions on boot, creates
/dev/vita/ux0, and mounts storage to/mnt/ux0.
🧠 Compressed ZRAM Swap & Memory Safety (vita-swap)
- Zero-Latency RAM Compression: Enabled in-kernel LZ4 ZRAM swap (
CONFIG_ZRAM=y,CONFIG_ZSMALLOC=y), expanding effective usable RAM from 512MB to ~768MB - 1GB. - OOM Elimination: Prevents Linux Out-Of-Memory (OOM) crashes during heavy tasks such as Alpine
apk addpackage installations, Python scripts, or native C compilation. - Storage Swap Support: Automatic detection and mounting of optional physical swapfiles (
/mnt/ux0/swapfile). - Interactive
vita-swapCLI: Inspect real-time swap telemetry, format physical swapfiles, and adjust ZRAM allocation on the fly.
☀️ Model-Aware Display Backlight Control (vita-brightness)
- DTB Loading Order Fix: Corrected loader model checks so PS Vita 2000 Slim consoles load
vita2000.dtbwith active I2C bus 1. - Hardware-Aware Tool:
- PS Vita 1000 (OLED): Informs the user that the emissive OLED display is locked to 100% full brightness at boot and does not have an adjustable LCD backlight.
- PS Vita 2000 (LCD): Controls hardware PWM backlight duty cycles via
/dev/i2c-1across0x1Fto0xFF.
📚 Documentation & User Experience
- Comprehensive User Guide (
USER_GUIDE.md): Complete non-technical guide walking through touch typing, gamepad navigation, all built-in utilities, remote SSH access, and real-world software examples in Alpine Linux. - Alpine Chroot Isolation: Visual environment prompts (
alpine@vita:~#in cyan) and one-shot command execution viaalpine-chroot run <command>. - 2x2 Screenshot Gallery: Updated README with verified console screenshots covering console boot, fullscreen DOOM, Alpine package management, and
vita-wifi.
📦 Installation
Option 1: Standalone VPK (Recommended for Most Users)
- Download
LinuxOnVita.vpk. - Transfer
LinuxOnVita.vpkto your PS Vita via VitaShell (USB or FTP). - Install the VPK in VitaShell and open the LinuxOnVita bubble on LiveArea.
- Select your Sony Memory Card partition (
xmc0:,ux0:, oruma0:) and press Cross (✕) to install and boot!
Option 2: Full Release Zip
- Download
LinuxOnVita-release-1.2.0.zip. - Extract the archive and copy
ux0/linux/to your Sony Memory Card root. - Install
LinuxOnVita.vpkvia VitaShell and launch.
1.1.0
LinuxOnVita v1.1.0 - On-Device Storage Selection & Interactive Wi-Fi
LinuxOnVita v1.1.0 is a major release featuring a completely rebuilt on-device bootstrapper application, native storage partition mounting, SD2Vita support, and an interactive handheld Wi-Fi management utility (vita-wifi).
🚀 Highlights & What's New
- Interactive On-Device Wi-Fi (
vita-wifi): Scan, connect, and switch wireless networks directly from the console terminal with an ASCII signal table. Wi-Fi credentials are saved persistently to your memory card without needing to edit config files on a PC. - All-in-One Application (
LinuxOnVita.vpk): A standalone VPK installer bundling the kernel, Device Tree blobs, and loaders directly inside the app. - Storage Partition Detection & Mounting: Real-time detection and capacity reporting for all partitions (
ux0:,xmc0:,uma0:,imc0:). Easily select your official Sony Memory Card mount point if you use SD2Vita asux0:. - Multi-Mount Loader Plugin: Patched baremetal loader searches both
xmc0:linux/payload.binandur0:linux/payload.binfor full SD2Vita compatibility. - Buildroot Source-Compiled Networking: Compiled
wpa_cliandwpa_passphrasenatively with Buildroot control socket support enabled.
📥 Which File Should I Download?
LinuxOnVita.vpk(Recommended): The single package needed to install and run Linux. Simply transfer it to your Vita using VitaShell, install it, select your Sony Memory Card mount, press [X] to install boot files, and boot straight into Linux!LinuxOnVita-release-1.1.0.zip: Contains the standalone VPK, extracted boot files (ux0/linux/), the unpacked LiveArea application, andINSTALL.txt.
🎮 Installation Instructions
- Transfer to Vita: Copy
LinuxOnVita.vpktoux0:using VitaShell (USB or FTP). - Install Package: Navigate to
LinuxOnVita.vpkin VitaShell, press CROSS (X) to install, and accept extended permissions. - Launch LinuxOnVita: Open the LinuxOnVita bubble from your LiveArea home screen.
- Select Memory Card Mount:
- Standard consoles (no SD2Vita): Choose
ux0:. - SD2Vita users: Use the D-Pad to select your official Sony Memory Card (typically
xmc0:oruma0:). - Press CROSS (X) to install the bundled Linux boot files to your memory card.
- Standard consoles (no SD2Vita): Choose
- Boot Linux: Press CROSS (X) to boot directly into the Linux terminal!
- Connect to Wi-Fi: Tap the bottom of the screen to open the touch keyboard and run:
vita-wifi scan
V1.0.0
[v1.0.0] - 2026-09-22 — First Public Release
Added (vs. raw upstream projects)
Interactive Input
- On-screen touch keyboard (
fbkeyboard): Full framebuffer virtual keyboard rendered directly on/dev/fb0with dual ABC / ?123 layout, Hide/Show toggle, and VT isolation. No UART cable needed. - Physical button mapper (
vita-input-mapper): D-Pad, Cross (Enter), Circle (Backspace), Square (Space), Triangle (Tab), and L-Trigger (Ctrl+C) mapped via/dev/uinputfor full terminal navigation.
Hardware Fixes
- Fixed button input mask (
0x4037ffff): Corrected the upstream XOR mask0x4037fcf9that inverted D-Pad Right, Down, Select, and L-Trigger (causing D-Pad Right to be permanently stuck ON in all applications including DOOM). - Analog stick initialization: Added Syscon command
0x180during kernel probe and baremetal handover to enable both analog stick axes.
Display
- 100% full brightness on boot: Patched both OLED (Vita 1000) and LCD (Vita 2000) baremetal loaders to initialize at maximum brightness. Upstream defaults to gamma level 0 (OLED) / 50% PWM (LCD).
vita-brightnessCLI: Runtime brightness control from 0–100% via I²C for LCD models. OLED models hardwired to max.
Networking
- Zero-config Wi-Fi auto-connect: Drop credentials into
configs/wifi.confbefore building. System auto-joins WPA2 networks and starts OpenSSH on boot. - ~12 second SSH ready time: Fixed Linux CRNG entropy stall by enabling the 144 MHz ARM Global Timer clocksource (upstream: ~2.5 minute delay).
- mDNS hostname: Accessible as
vita.localover the local network.
Storage & Package Management
- Auto-mounting: Automatic mounting of
/mnt/ux0(SD2Vita / Sony memory card),/mnt/ur0(internal eMMC), and/mnt/uma0on boot. - Alpine Linux chroot (
alpine-chroot): Persistent ext4 loopback image on SD card or internal storage with fullapkpackage management. Supports configurable size, custom paths, RAM mode, and graceful SIGINT cleanup.
Power & Battery
- Hardware battery telemetry (
vita-battery): Percentage, voltage, and charging state captured during bootloader handover and accessible via CLI. Displayed on the SSH login banner.
Gaming
- Framebuffer DOOM (
vita-doom): Pure-Cfbdoomengine with twin-stick and D-Pad controls, right-stick strafe, analog deadzones, and automatic suspension/resumption of background input daemons during gameplay.
Build System
- One-command Docker build:
./build.sh allorchestrates all toolchains, kernel patches, Buildroot overlays, and VPK packaging automatically. ./build.sh release: Packages a distributable zip for GitHub Releases (no Wi-Fi credentials included).
Fixed (upstream bugs)
- Button XOR mask causing D-Pad Right to be permanently active (
0x4037fcf9→0x4037ffff) - CRNG entropy stall delaying boot by ~2.5 minutes (Global Timer clocksource enabled)
- Alpine chroot APK repos now detect tarball version instead of hardcoding v3.20
- Alpine chroot pseudo-filesystems now unmount correctly on SIGINT (Ctrl+C)
Upstream Projects This Builds Upon
- vita-linux-port by incognitojam — Linux 6.12 port, Wi-Fi power sequencing, eMMC driver, Buildroot integration
- linux_vita by incognitojam — Modernized Linux 6.12 kernel tree
- linux_vita, vita-baremetal-loader, vita-libbaremetal by xerpi — Original Linux on PS Vita pioneer
- vita_plugin_linux_loader by DvaMishkiLapa — Bootstrapper VPK