Kernel 6.12.0-vita • 4-Core ARM Cortex-A9 • Standalone Handheld

Transform Your PlayStation Vita Into A Full Linux Handheld

Experience native modern Linux 6.12 on your PS Vita without serial cables or tethered PCs. Featuring virtual touch typing, physical gamepad navigation, automated on-device Wi-Fi, compressed ZRAM swap, and full Alpine Linux package management.

~12s
Fast Boot to Shell
4 Cores
SMP Multiprocessing
960×544
100% Brightness Framebuffer
GPL-3.0
100% Free & Open Source
PlayStation Vita • /dev/fb0 (960×544 32bpp)
Linux 6.12.0-vita
Interactive Welcome Screen & On-Screen Touch Keyboard

Interactive Welcome Screen & On-Screen Touch Keyboard

Native virtual touch keyboard (fbkeyboard) with dual ABC and ?123 symbol layers for instant standalone typing without cables or external peripherals.

From Tethered Proof-of-Concept to True Handheld Freedom

Early PS Vita Linux efforts proved the SoC could boot, but left users stranded with soldered UART serial wires and dead terminals. LinuxOnVita delivers a complete, consumer-ready handheld distribution.

fbkeyboard

Touchscreen Virtual Keyboard

Direct framebuffer on-screen typing with multi-touch digitizer integration. Dual ABC / ?123 symbol layouts, special function keys, and an instant hide toggle give you complete standalone terminal control.

fbkeyboard &
vita-input-mapper

Physical Gamepad Navigation

Navigate the Linux shell using the Vita's physical D-Pad, face buttons, and shoulder triggers. Fixed active-low button masks and Syscon 0x180 analog stick sampling with calibrated deadbands via /dev/uinput.

vita-input-mapper &
vita-wifi

Interactive On-Device Wi-Fi

Scan, select, and connect to Wi-Fi networks directly on the console with an interactive ASCII signal table. WPA2 credentials persist automatically to /mnt/ux0/linux/wifi.conf without needing a PC.

vita-wifi
alpine-chroot

Alpine Linux Package Ecosystem

Run thousands of standard ARMv7 packages inside a persistent Alpine Linux chroot. Use apk add to install Python 3, GCC, Git, Neovim, Tmux, Node.js, and CLI utilities with zero container overhead.

alpine-chroot
vita-swap

ZRAM Compression & Memory Safety

Zero-latency LZ4 compressed RAM swap expands usable memory from 512MB to ~768MB–1GB. Prevents Out-Of-Memory (OOM) crashes during package compilation, heavy Python tasks, or running memory-intensive scripts.

vita-swap status
vita-brightness

Full 100% Display Brightness

Patched baremetal bootloaders boot both OLED (Vita 1000) and LCD (Vita 2000) panels at full 100% brightness. PS Vita 2000 Slim users enjoy runtime PWM dimming control across I2C bus 1 with vita-brightness.

vita-brightness set 80

PS Vita Hardware Support & Drivers

Detailed hardware compatibility status for Sony PlayStation Vita (PCH-1000 OLED, PCH-2000 LCD, and PS TV).

Component Status Implementation Details & Driver Notes
CPU (SMP Multiprocessing) Working Quad-core ARM Cortex-A9 MPCore with active Symmetric Multi-Processing (SMP) across all 4 cores.
Display (OLED / LCD Framebuffer) Working Native 960×544 framebuffer initialized at full 100% brightness (Level 15 Gamma on OLED; PWM backlight on LCD).
Backlight Control (PS Vita 2000) Working (LCD) Dynamic runtime PWM duty control via I2C bus 1 controlled by vita-brightness.
Wi-Fi (Marvell SD8787) Working mwifiex_sdio on SDIF2 with custom Ernie power sequencing and on-device vita-wifi manager.
Touchscreen Digitizer Working Multi-touch digitizer mapped via evdev; drives on-screen typing in fbkeyboard.
Gamepad Buttons & D-Pad Working Patched vita-buttons driver with uniform active-low mask and /dev/uinput shell mapping.
Analog Twin-Sticks Working Syscon 0x180 analog sampling enabled with deadzone filtering for smooth gamepad controls.
SD2Vita Storage (ux0:) Working Powered via Syscon 0x888, auto-mounted at /mnt/ux0 (/dev/mmcblk1p1). High-capacity microSD ready.
Internal Storage (eMMC / ur0:) Working Auto-detected SCE partitions (/dev/mmcblk0p1–p12), internal system partition mounted at /mnt/ur0.
ZRAM Memory Expansion Working 256MB compressed LZ4 RAM swap pool managed automatically by vita-swap.
Official Sony Memory Card Bootloader Only Boot binaries read by baremetal MSIF loader; runtime Linux MSIF storage driver not yet implemented.
3D GPU Acceleration Software Render PowerVR SGX543MP4+ lacks open-source Linux kernel drivers. Full-speed 2D simplefb software rendering.
Audio Codec In Progress Proprietary Vita audio DAC currently lacks an active Linux ALSA driver.

Quick Installation & First Boot

LinuxOnVita is packaged as an all-in-one LinuxOnVita.vpk for HENkaku / Ensō consoles.

Strict Requirement: Official Sony Memory Card Required

An official physical Sony PS Vita Memory Card is strictly required on all hardware models (PS Vita 1000 OLED, 2000 Slim, and PlayStation TV). The low-level baremetal bootloader operates before Linux storage drivers are loaded and interfaces directly with Sony's proprietary Memory Stick interface (MSIF). It cannot boot from internal eMMC storage (imc0:) or SD2Vita adapters.

SD2Vita Users: Your official Sony card will appear as xmc0: or uma0: in the installer. Boot files are installed to the Sony card, while your high-capacity microSD card remains fully accessible in Linux at /mnt/ux0.

Software Prerequisite: Enable Unsafe Homebrew

Before launching, open Settings → HENkaku Settings → check Enable Unsafe Homebrew [✓]. If disabled, the loader plugin will exit with error 0x8002D003.

1

Download VPK

Grab LinuxOnVita.vpk from the official GitHub Releases page. This single package contains the kernel, bootloaders, device trees, and rootfs.

2

Transfer via VitaShell

Connect your PS Vita to your PC using USB or FTP in VitaShell. Copy LinuxOnVita.vpk to your memory card root (e.g. ux0:LinuxOnVita.vpk).

3

Install Package

In VitaShell, highlight LinuxOnVita.vpk and press CROSS (✕) to install. Accept the extended system permissions prompt.

4

1-Click Setup & Boot

Launch LinuxOnVita from the LiveArea. Select your Sony Memory Card partition (e.g., xmc0: or ux0:) and press CROSS (✕) to boot into Linux!

Updating an existing install? In the LinuxOnVita VPK menu, press SQUARE (□) to reinstall and update boot files on your memory card without overwriting your SD2Vita user data.

Thousands of Packages with Alpine Linux

With alpine-chroot, your PS Vita has access to standard ARMv7 packages via the lightweight apk package manager.

Python Web Services

Spin up microservices, local REST APIs, and pocket Wi-Fi file servers accessible across your local network.

apk add python3 py3-pip && python3 -m http.server 8080

Native C/C++ Compilation

Compile real C and C++ programs directly on the 4-core ARM Cortex-A9 CPU without needing desktop cross-compilers.

apk add gcc g++ make musl-dev git

Network Diagnostics & Audit

Turn your PS Vita into a portable pocket network auditor, API inspector, device scanner, and connectivity toolkit.

apk add nmap curl wget jq bind-tools net-tools

System Telemetry & Monitor

Monitor CPU frequencies across all 4 SMP cores, process activity, memory pressures, and storage usage in real time.

apk add fastfetch htop btop ncdu

Text Editing & Notes

Edit code, write notes, and configure scripts comfortably with touch-friendly editors and split-pane multiplexers.

apk add micro nano vim tmux

Console Web Browsing & Docs

Browse Wikipedia, read developer documentation, and inspect web endpoints directly on the console display over Wi-Fi.

apk add links w3m

Frequently Asked Questions

Everything you need to know about safety, compatibility, memory cards, and usage.

Absolutely not. LinuxOnVita is completely non-destructive. It installs as a regular homebrew application via VitaShell (LinuxOnVita.vpk). Your Sony official firmware, HENkaku/Ensō jailbreak, PS Vita games, save files, and plugins are completely untouched. Whenever you reboot the console, it returns straight to your standard LiveArea home screen.
The low-level baremetal bootloader interfaces directly with Sony's proprietary memory card hardware (MSIF). Because the baremetal loader executes before the Linux kernel's storage subsystem is initialized, it can only read boot binaries (zImage, device tree blobs) from a physical Sony card. Once Linux boots, SD2Vita adapters (/mnt/ux0) and internal eMMC partitions (/mnt/ur0) are fully active.
On consoles using SD2Vita, the SD adapter is mounted as ux0:, and your official Sony Memory Card is typically remapped to xmc0: or uma0:. The LinuxOnVita VPK installer automatically scans your mounted partitions and highlights your Sony card. Simply select the Sony card partition and press CROSS (✕) to install the boot files.
Run the built-in vita-wifi utility. It scans nearby wireless networks and displays an interactive ASCII table of SSIDs with signal strength bars. Type the number of your network and enter your WPA2 password. Your credentials are automatically saved to /mnt/ux0/linux/wifi.conf so your Vita reconnects automatically on every subsequent boot.
You can simply type reboot or poweroff in the terminal shell. Alternatively, hold the physical PS Vita power button for 5 seconds to cleanly shut down. Upon starting up, your Vita will boot straight into the normal PlayStation LiveArea.

Join the LinuxOnVita Community

Have questions, need troubleshooting help, or want to share photos of Linux running on your Vita? Join our Discord server and support continued open-source development!