Skip to main content

PostmarketOS with Plasma Mobile

How to Install PostmarketOS with Plasma Mobile in Termux (ZINK GPU Accelerated)

This guide demonstrates how to install and run postmarketOS v22.06 (based on Alpine Linux v3.16) inside Termux using proot-distro. This configuration represents a sweet spot for running Plasma Mobile desktop environment with hardware acceleration via Termux-X11 and ZINK drivers.

Note: Newer Alpine versions (v3.17+) drop support for legacy X11 sessions in favor of Wayland, making v22.06 the recommended choice for X11-based PRoot setups. Plasma Mobile seamlessly supports both portrait and landscape screen orientations.


Prerequisites & Requirements

Before proceeding, ensure you have the following installed on your Android device:

  • Termux & Termux-X11 companion app installed.
  • proot-distro package installed in Termux.
  • PulseAudio audio server enabled in Termux.

If you haven’t configured Termux-X11 and Audio yet, follow this base setup guide on Reddit first.


Step-by-Step Installation Guide

Step 1: Install Alpine Linux Base

Open Termux and run the following command to download the base Alpine container:

pd install alpine

Step 2: Log into Alpine PRoot Environment

pd sh alpine

Step 3: Add postmarketOS Repositories

Open the Alpine repository configuration file using nano:

nano /etc/apk/repositories

Add the following postmarketOS v22.06 mirror link to the file:

https://mirror.postmarketos.org/postmarketos/v22.06

Save and exit (Press Ctrl + X, then Y, then Enter).

Next, pin your repositories to Alpine v3.16 instead of the edge branch:

sed -i 's/edge/v3.16/g' /etc/apk/repositories

Step 4: System Upgrade & User Setup

Update packages, install system administration tools, and create a non-root user:

clear
apk update && apk upgrade
apk add nano sudo neofetch alpine-conf
addgroup storage
addgroup power
addgroup network
adduser -g wheel,audio,video,power,storage,lp,sys,network user

CRITICAL WARNING: When prompted to set a user password, use digits/numbers ONLY (e.g., 1234). Using letters or special characters will cause authentication to fail on login inside PRoot.

Grant administrative privileges to the new user and install Plasma Mobile dependencies:

echo "user ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers
su user -c "sudo setup-xorg-base postmarketos-ui-plasma-mobile maliit-keyboard"
exit

Step 5: Fix OS Release Identification

Update system identity files so neofetch and desktop apps properly identify the OS as postmarketOS:

rm -f /etc/os-release
nano /etc/os-release

Paste the following configuration into the editor:

PRETTY_NAME="postmarketOS v22.06"
NAME="postmarketOS"
VERSION_ID="v22.06"
VERSION="v22.06"
ID="postmarketos"
ID_LIKE="alpine"
HOME_URL="https://www.postmarketos.org/"
SUPPORT_URL="https://gitlab.com/postmarketOS"
BUG_REPORT_URL="https://gitlab.com/postmarketOS/pmaports/issues"
LOGO="postmarketos-logo"

Save and exit the file.


Step 6: Create the Startup Launcher Script

Exit the Alpine shell to return back to the main Termux environment:

exit

Create a dedicated boot script named alpinepm.sh:

nano alpinepm.sh

Paste the full launcher script below:

#!/data/data/com.termux/files/usr/bin/bash

# Kill previous display and audio instances
killall pulseaudio 2>/dev/null
killall virgl_test_server 2>/dev/null

# Set ZINK MESA acceleration flags
MESA_LOADER_DRIVER_OVERRIDE=zink \
GALLIUM_DRIVER=zink \
ZINK_DESCRIPTORS=lazy \
virgl_test_server --use-egl-surfaceless &

kill -9 $(pgrep -f "termux.x11") 2>/dev/null

# Start PulseAudio server
pulseaudio --start
export XDG_RUNTIME_DIR=${TMPDIR}

# Launch Termux-X11 server
termux-x11 :0 >/dev/null &
sleep 3

# Trigger Termux-X11 Android app activity
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity >/dev/null 2>&1
sleep 1

# Boot into postmarketOS Plasma Mobile session
proot-distro login alpine \
--user user \
--isolated \
--shared-tmp -- \
/bin/bash -c '
export PULSE_SERVER=127.0.0.1
export DISPLAY=:0
export MESA_GL_VERSION_OVERRIDE=4.6
export GALLIUM_DRIVER=zink
dbus-launch startplasma-x11
'

exit 0

Grant executable permissions to the script:

chmod +x alpinepm.sh

Step 7: Install ZINK GPU Acceleration (Termux Side)

Install Mesa ZINK drivers inside Termux for hardware-accelerated 3D rendering:

pkg install mesa-zink virglrenderer-mesa-zink

Step 8: Launch Plasma Mobile

Run the boot script to start the desktop environment:

./alpinepm.sh

To end the desktop session, press Ctrl + C in the main Termux terminal window or swipe to force close Termux.


Troubleshooting & Performance Notes

  • Orientation: Plasma Mobile dynamically adjusts layout depending on whether your device is in portrait or landscape mode.
  • Audio Output: Ensure PulseAudio daemon is granted background execution permissions on your Android device settings.
  • Performance: Performance will depend on your mobile GPU's Vulkan capabilities, as ZINK translates OpenGL calls directly to Vulkan.

Popular posts from this blog

My IP Address - How to check IP address in Termux

My IP Address - How to check IP address in Termux Here are the steps to check the IP address in various operating systems: Termux (Android): Open the Termux app. Type "ipconfig" and press Enter. Look for "inet" followed by an IP address under the network adapter you are currently using to connect to the internet. Windows: Open the Start menu and type "Command Prompt" in the search bar. Open the Command Prompt and type "ipconfig" and press Enter. Look for "IPv4 Address" or "IPv6 Address" under the network adapter you are currently using to connect to the internet. Android: Open the Settings app. Scroll down and tap on "About phone" or " About device ". Tap on " Status ". Look for "IP address" or " Wi-Fi IP address " under the network section. macOS: Click on the Apple menu in the top-left corner of the screen and select "System Preferences". Click on "N...

How to Install Java (Open-JDK-8) in Termux | two Methods

How to Install Java (OpenJDK 8) in Termux Method 1: Java 8 Installation Introduction This method explains how to install Java (OpenJDK 8) in Termux without rooting your Android device. Step-by-Step Guide Step 1: Install Kali Linux in Termux (Optional) pkg install wget proot -y wget https://raw.githubusercontent.com/MasterDevX/KaliTermux/master/InstallKali.sh bash InstallKali.sh Step 2: Download OpenJDK 8 JRE Deb Package Visit the Debian FTP repository and copy the link to the OpenJDK 8 JRE package. ftp.debian Step 3: Download the Deb Package in Kali wget http://ftp.debian.org/debian/pool/main/o/openjdk-8/openjdk-8-jre-headless_8u275-b01-1_arm64.deb Step 4: Install the Deb Package Manually dpkg -i openjdk-8-jre-headless_8u275-b01-1_arm64.deb Step 5: Change Java Version (Optional) sudo update-alternatives --config java Final Step: Verify Java Version Select the desired Java version (Java 8) by entering the corresponding number when pr...

How to delete Instagram Account by mrwn007 Report tool Termux

How to Delete an Instagram Account Using a Report Tool This post discusses an old Instagram reporting tool that was previously shared by mrwn007 and used through Termux on Android. The tool is no longer functional, but this guide also explains why and provides information on proper reporting methods. Termux (Android) What Is Termux? Termux is an Android terminal emulator and Linux environment app that works without root access. It installs a minimal Linux base system automatically, and additional packages can be installed using the APT package manager. mrwn007 / 007spam-BOT Previously, mrwn007 maintained a repository called 007spam-BOT , which claimed to mass-report Instagram accounts using Termux. Related repositories that once existed: Instagram Mass Reporter (Termux) Instagram Reporting Tool v2 (Termux) Instagram Delete Method (by Crevils) Current status: All of these repositories are no longer available. Why the Tool No Longer Works Th...

How to Use IlayTamvan Report Tool to Delete Your Facebook Account in Termux

Delete Facebook Account Using IlayTamvan Report Tool in Termux Install Termux: Download and install the Termux app from the Google Play Store. Open Termux: Launch the Termux app on your Android device. Update and upgrade Termux packages: Type the following command in the Termux terminal and press Enter: apt update && apt upgrade Install required dependencies: Install Python 2 by entering the following command and pressing Enter: apt install python2 Install Git by entering the following command and pressing Enter: apt install git Clone the IlayTamvan Report tool repository: Enter the following command to clone the repository and press Enter: git clone https://github.com/rajbhx/Report.git Navigate to the Report tool directory: Change to the Report directory by entering the following command and pressing Enter: ...

Cloudflared in Termux to Create tunnels, Port Forwding

Installing Cloudflared in Termux for Android (ngrok Alternative) – 2026 Updated Repository Link https://github.com/rajbhx/cloudflared-termux What Is Cloudflare? Cloudflare, Inc. is an American content delivery network (CDN) and DDoS protection company founded in 2010. It works as a reverse proxy between visitors and the hosting provider, improving security, performance, and reliability. Basic Usage Once installed, Cloudflared can expose a local service to the internet. cloudflared -url localhost:PORT Example: cloudflared -url localhost:8000 Alternative command: cloudflared tunnel localhost:PORT Installation Make sure your Termux app is fully updated before proceeding. Installation Commands Follow the steps below to install Cloudflared using the rajbhx/cloudflared-termux script. 1. Update Termux and install Git pkg update && pkg upgrade pkg install git 2. Clone the Cloudflared Termux repository git ...

[Apk Setup] Alpine-term App | without using termux

Install and Set Up Alpine Term on Android Alpine Term allows you to run a lightweight Linux environment directly on your Android device. This guide explains what Alpine Term is, its requirements, and how to install and use it. What Is Alpine Term? Alpine Term is a terminal and Linux environment app for Android. It runs Alpine Linux inside a headless x86_64 virtual machine powered by QEMU. Interaction with the system happens through terminal sessions connected to the virtual machine’s serial consoles. This setup makes it possible to run Linux commands, scripts, and tools on Android without rooting the device. System Requirements Before installing Alpine Term, ensure your device meets the following requirements: AArch64-based Android device Android 7.0 or higher At least 500 MB of free internal storage Internet connection (for installing or updating packages) Steps to Install Alpine Term Open the Google Play Store on your Android device Search ...

🚀 The 2026 Java Developer Roadmap [UPDATED] 🚀

Welcome to the 2026 Java Developer Roadmap. This guide is meant to help you understand the skills and tools that matter if you want to grow as a Java developer. Whether you are a beginner or already working with Java, the focus here is on practical learning. Java continues to be widely used for enterprise systems, backend services, and large-scale applications. While frameworks and tools change, strong fundamentals remain important. Introduction As we move into 2026, Java development is not only about writing code. Developers are expected to understand performance, tooling, and how applications behave in real environments. This roadmap outlines the core skills, tools, and concepts commonly expected from Java developers today. The Essentials Before learning frameworks or advanced topics, every Java developer needs a solid foundation. Version Control (Git & GitHub) Learn how to manage code changes, work with branches, and collaborate with teams using Git and GitH...

The Ultimate Guide to Fixing the libssl.so.1.1 Error in Termux

How to Fix libssl.so.1.1 Error in Termux libssl.so.1.1 not found | cannot link executable (Termux) Introduction If you use Termux, you may run into an error similar to: cannot link executable: libssl.so.1.1 not found This usually happens after repository or OpenSSL changes. While the error looks serious, it can be fixed reliably by resetting the Termux environment and switching to a stable mirror. Warning Read carefully before continuing. The steps below will completely remove everything inside $PREFIX , including: All installed packages Third-party repositories Custom modifications inside $PREFIX Your $HOME directory will not be affected. Only proceed if you understand and accept this. Step 1: Remove the Current Termux Prefix Open a failsafe Termux session and run: rm -rf $PREFIX Step 2: Reopen Termux Close Termux completely and open it again. Termux will automatically reinstall the bootstrap environment. ...

How to install and setup vShell in android app |कैसे इनस्टॉल करें

How to install and setup android vShell(Virtual Shell) app (no root) कैसे इनस्टॉल करें YouTube video link What is Android-vShell app vShell is a  virtual shell environment application  for the Android OS. A virtual Linux shell environment application for Android OS. Runs Alpine Linux in QEMU system emulator.  It provides a virtual machine running small Linux distribution ready for the use out-of-box. Application implements my view on how Linux terminal environments can look like on Android OS. As operating system security is getting more and more hardened over time (which is good btw), it become impossible to abuse design flaws such as executable user data to run Linux native executables. Ability to...

[No Root] Setup/install ADB in Termux | Unoffical Method

[Updated] Installing ADB in Termux Without Root | rajbhx Install ADB & Fastboot tools in Termux without root. Supported architectures: ARM / ARM64 only Check your architecture using: uname -a Wireless ADB Setup (Android 11+) Install ADB tools: pkg install android-tools Open Settings → Developer Options → Wireless Debugging Tap Pair device and keep the screen open In Termux, run: adb pair IP:PORT Enter the pairing code shown on screen Connect using the displayed IP and port ADB Wireless is now enabled. Install ADB in Termux Silent Installation apt update > /dev/null 2>&1 && \ apt --assume-yes install wget > /dev/null 2>&1 && \ wget -q https://github.com/MasterDevX/Termux-ADB/raw/master/InstallTools.sh && \ bash InstallTools.sh Standard Installation apt update && \ apt install wget && \ wget https://github.com/MasterDevX/Termux-ADB/raw...