Table of Contents
Overview
If you are on Arch and your Android AVD is super slow, this guide my help. My machine has sufficient resources to make any lag suspicious, especially for an emulator. You may have a different machine and this guide may also help. However, as I didn’t test this on other machine, here is my full pc specs FYR:
System: Kernel: 6.16.8-arch3-1 arch: x86_64 bits: 64 compiler: gcc v: 15.2.1 Desktop: KDE Plasma v: 6.4.5 Distro: Arch Linux Machine: Type: Laptop System: LENOVO product: 21TH v: ThinkBook 14 G7+ AKP serial: <superuser required> Mobo: LENOVO model: LNVNB161216 v: SDK0T76577 WIN serial: <superuser required> UEFI: LENOVO v: RPCN16WW date: 04/02/2025 CPU: Info: 8-core model: AMD Ryzen AI 7 H 350 w/ Radeon 860M bits: 64 type: MT MCP arch: Zen 5 rev: 0 cache: L1: 640 KiB L2: 8 MiB L3: 16 MiB Speed (MHz): avg: 3534 min/max: 623/5091:3506 boost: enabled cores: 1: 3534 2: 3534 3: 3534 4: 3534 5: 3534 6: 3534 7: 3534 8: 3534 9: 3534 10: 3534 11: 3534 12: 3534 13: 3534 14: 3534 15: 3534 16: 3534 bogomips: 63880 Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm Graphics: Device-1: Advanced Micro Devices [AMD/ATI] Krackan [Radeon 840M / 860M Graphics] vendor: Lenovo driver: amdgpu v: kernel bus-ID: 64:00.0 temp: 42.0 C Device-2: Chicony Integrated Camera driver: uvcvideo type: USB bus-ID: 1-1:2 Display: x11 server: X.Org v: 21.1.18 with: Xwayland v: 24.1.8 driver: X: loaded: modesetting dri: radeonsi gpu: amdgpu s-res: 3072x1920 resolution: 3072x1920 API: EGL v: 1.5 drivers: kms_swrast,radeonsi,swrast platforms: active: gbm,x11,surfaceless,device inactive: wayland API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.2.3-arch1.2 glx-v: 1.4 direct-render: yes renderer: AMD Radeon 860M Graphics (radeonsi gfx1152 LLVM 20.1.8 DRM 3.64 6.16.8-arch3-1) API: Vulkan v: 1.4.321 drivers: radv surfaces: N/A devices: 1 Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo de: kscreen-console,kscreen-doctor wl: wayland-info x11: xdpyinfo,xprop Info: Memory: total: 32 GiB note: est. available: 30.63 GiB used: 15.34 GiB (50.1%) Processes: 493 Uptime: 1d 3m Init: systemd Packages: 1178 Compilers: gcc: 15.2.1 Shell: Zsh v: 5.9 inxi: 3.3.39
Part 1: The Foundation – Enabling KVM for CPU Acceleration
The single biggest performance boost comes from enabling KVM (Kernel-based Virtual Machine). This allows the emulator to use your CPU’s native virtualization features instead of slow software emulation.
Step 1: Verify Hardware Support
First, confirm your CPU supports virtualization (AMD-V for AMD, VMX for Intel).
Bash
LC_ALL=C lscpu | grep Virtualization
You should see AMD-V
or VMX
in the output. Also, ensure this is enabled in your BIOS/UEFI (it’s often called “SVM Mode” on AMD systems).
Step 2: Install Virtualization Packages
Install QEMU (the emulator backend), libvirt (the management tool), and other necessary utilities.
Bash
sudo pacman -S qemu-full libvirt virt-manager ebtables dnsmasq
Troubleshooting: If this command fails with an error like
failed retrieving file
, your package manager’s mirror list is likely outdated. Fix it with:Bash
# First, update your mirror list to the 10 fastest servers sudo reflector --verbose --latest 10 --sort rate --save /etc/pacman.d/mirrorlist # Then, force a database refresh sudo pacman -SyyuNow, try the installation command again.
Step 3: Enable and Start the Libvirt Service
This service needs to be running in the background to manage virtualization.
Bash
sudo systemctl enable libvirtd.service sudo systemctl start libvirtd.service
Step 4: Add Your User to the Correct Groups
This is a critical step that gives your user account permission to use KVM.
Bash
sudo usermod -aG libvirt,kvm $(whoami)
You must log out and log back in or reboot for this change to take effect.
Part 2: The Graphics Glitch – Fixing GPU Acceleration
After enabling KVM, your emulator might boot but get stuck on a painfully slow, lagging boot animation. This means your CPU is now fast, but your GPU acceleration is broken. The likely culprit is an incompatibility with the modern Vulkan graphics API.
Step 1: Diagnose the Graphics Issue
Run the emulator from the command line to see its detailed log output.
Bash
# First, find your emulator's exact name ~/Android/Sdk/emulator/emulator -list-avds # Now, launch it with that name ~/Android/Sdk/emulator/emulator -avd YOUR_AVD_NAME
Look for an error like Failed to create vulkan instance. Error: [VK_ERROR_INCOMPATIBLE_DRIVER]
. This confirms the Vulkan driver is the problem.
Step 2: Enable Multilib and Install All Graphics Drivers
The emulator often relies on 32-bit libraries, which are stored in Arch’s multilib
repository. We need to enable it and ensure our Mesa graphics drivers are fully installed.
Edit /etc/pacman.conf
(you need sudo for this)
Add the following lines at the end of the file
[multilib] Include = /etc/pacman.d/mirrorlist
Now save the file and run the following to update
sudo pacman -Syyu
Now install the missing packages
sudo pacman -S --needed mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon libva-mesa-driver
Conclusion
After rebooting, launch your Android Virtual Device from Android Studio. It should now boot up quickly, the animations will be smooth, and the entire system will be responsive. You’ve successfully configured both CPU and GPU hardware acceleration, unlocking the true performance of your machine.

I build softwares that solve problems. I also love writing/documenting things I learn/want to learn.