Running Android on Linux with Waydroid on a hybrid laptop: integrated graphics and ARM gaming
Back to blog

Running Android on Linux with Waydroid on a hybrid laptop: integrated graphics and ARM gaming

Updated 9/20/2026 · Published 9/17/2026 · 3 min · Infrastructure

Users switching from Windows to Linux often miss standalone Android emulators like BlueStacks or Nox. On my laptop running CachyOS (an Intel CPU paired with an NVIDIA dedicated GPU), I needed a fast and reliable way to run mobile apps and games without bogging down the operating system.

Traditional VM emulation creates unnecessary resource overhead. In the Linux ecosystem, the premier solution is Waydroid, which runs Android directly inside an LXC container sharing the Linux host kernel. On laptops with hybrid graphics (Intel + NVIDIA), however, achieving smooth framerates requires specific GPU routing and CPU architecture translation.

Here is the step-by-step walkthrough to configure Waydroid, route graphics to the integrated GPU, and enable ARM game compatibility.


Diagnosis: why NVIDIA dedicated GPUs conflict with Waydroid#

Waydroid depends directly on open-source Mesa graphics drivers for hardware acceleration.

When the system attempts to run Waydroid over proprietary NVIDIA drivers, the container cannot negotiate graphics pipelines properly, falling back to software rendering on the CPU. The result is a sluggish interface, high CPU usage, and games dropping below 5 frames per second.

The ideal routing strategy#

On a hybrid laptop, the most effective approach is assigning Waydroid workloads to the integrated Intel GPU (Iris Xe or UHD), which has native and mature Mesa support under Wayland.

The integrated GPU is more than capable of running the vast majority of apps and many games smoothly at 60 FPS, leaving the dedicated NVIDIA GPU free and cool for host workloads.


Step 1: Container installation and initialization#

On CachyOS, installation is straightforward because the kernel comes with compiled binder module support, which the waydroid-container service loads automatically on startup.

To install Waydroid with Google Play Services (GAPPS):

# 1. Install package from repositories / AUR
sudo paru -S waydroid

# 2. Initialize system image with GAPPS support
sudo waydroid init -s GAPPS

# 3. Enable and start the background LXC service
sudo systemctl enable --now waydroid-container

Step 2: Forcing mesa rendering on the intel integrated GPU#

To prevent Waydroid from negotiating the dedicated GPU and falling back to software rendering, I configured the internal property to explicitly use Mesa:

sudo waydroid prop set persist.waydroid.gles.renderer mesa

This ensures hardware-accelerated rendering through the Intel pipeline, maintaining low temperatures and fluid window transitions.


Step 3: Enabling ARM translation (libhoudini) for mobile games#

Android on x86_64 PCs runs x86 binaries natively. However, the vast majority of games on the Google Play Store are compiled strictly for ARM / ARM64 architectures.

Without a translation layer, games crash upon launch or fail to appear in Play Store searches. To resolve this, use the community waydroid_script to install the Libhoudini translation library:

# 1. Clone automation repository
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script

# 2. Create and activate a Python virtual environment
python3 -m venv venv
source venv/bin/activate

# 3. Install required packages
pip install -r requirements.txt

# 4. Inject Libhoudini into the Waydroid container
sudo venv/bin/python3 main.py install houdini

Desktop integration and control mapping#

With the container configured and ARM translation active, Android apps integrate smoothly into the Linux desktop:

waydroid show-full-ui

Running Android natively inside LXC containers eliminates virtual machine overhead while delivering fluid, responsive performance on hybrid Linux setups.


Conclusion#

In this post, I shared the workflow that proved effective on my hybrid laptop: running Waydroid routed through the integrated Intel GPU via Mesa, paired with the Libhoudini translation layer for ARM games. The result is fluid Android performance on the Linux desktop without the heavy overhead of a full virtual machine.

Was this article helpful?

Leave a quick reaction to help prioritize future technical guides:

CC BY-NC

This post is licensed under CC BY-NC.

Comments

Join the discussion below.

0 comments