<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>VirGL on Ivon's Blog</title><link>https://ivonblog.com/en-us/tags/virgl/</link><description>Recent content in VirGL on Ivon's Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</managingEditor><webMaster>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</webMaster><copyright>You are welcome to share articles from Ivon's blog (ivonblog.com). Please cite the source article URL when sharing. All article content is licensed under a Creative Commons Attribution-ShareAlike 4.0 license, unless otherwise stated. For commercial use, please contact me first.</copyright><lastBuildDate>Thu, 11 Jul 2024 15:00:00 +0800</lastBuildDate><atom:link href="https://ivonblog.com/en-us/tags/virgl/index.xml" rel="self" type="application/rss+xml"/><follow_challenge><feedId>56005902658351104</feedId><userId>1132431067563556864</userId></follow_challenge><item><title>How to Install Bliss OS on Linux: A GPU-Accelerated Android-x86 Virtual Machine for Mobile Games</title><link>https://ivonblog.com/en-us/posts/bliss-os-qemu-installation/</link><pubDate>Thu, 11 Jul 2024 15:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/en-us/posts/bliss-os-qemu-installation/</guid><description>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;To run Android apps on Linux, Ivon mentioned several approaches in &lt;a href="https://ivonblog.com/en-us/posts/android-emulators-for-linux/" target="_blank" rel="noreferrer"&gt;Linux Android Emulators&lt;/a&gt;. In this article, Ivon introduces the Android-x86 branch &amp;ldquo;Bliss OS&amp;rdquo;.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/boot.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Bliss OS is basically an improved version of Android-x86. It can be installed on physical machines and virtual machines, and it supports many newer hardware platforms, such as GPUs after Intel 10th-generation processors. Its Android version is also updated more quickly.&lt;/p&gt;
&lt;p&gt;It has a built-in Google Play Store, and you can play 64-bit 3D games without installing an extra translator. That is a major improvement.&lt;/p&gt;
&lt;p&gt;This article discusses installing a Bliss OS QEMU/KVM virtual machine on Linux, using virglrenderer for VM GPU acceleration so it can play mobile games.&lt;/p&gt;</description><content:encoded>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;To run Android apps on Linux, Ivon mentioned several approaches in &lt;a href="https://ivonblog.com/en-us/posts/android-emulators-for-linux/" target="_blank" rel="noreferrer"&gt;Linux Android Emulators&lt;/a&gt;. In this article, Ivon introduces the Android-x86 branch &amp;ldquo;Bliss OS&amp;rdquo;.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/boot.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Bliss OS is basically an improved version of Android-x86. It can be installed on physical machines and virtual machines, and it supports many newer hardware platforms, such as GPUs after Intel 10th-generation processors. Its Android version is also updated more quickly.&lt;/p&gt;
&lt;p&gt;It has a built-in Google Play Store, and you can play 64-bit 3D games without installing an extra translator. That is a major improvement.&lt;/p&gt;
&lt;p&gt;This article discusses installing a Bliss OS QEMU/KVM virtual machine on Linux, using virglrenderer for VM GPU acceleration so it can play mobile games.&lt;/p&gt;
&lt;p&gt;Refer to the video version of the installation process:&lt;/p&gt;




&lt;div style="position: relative; padding-bottom: 56.25%; overflow: hidden;"&gt;
 &lt;iframe style="position: absolute; width: 100%; height: 100%;"
 src="http://www.youtube.com/embed/XV3jl1ik16s" allowfullscreen frameborder="0" loading="lazy"&gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h2 class="relative group"&gt;1. Why Choose Bliss OS?
 &lt;div id="1-why-choose-bliss-os" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-why-choose-bliss-os" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Related article: &lt;a href="https://ivonblog.com/posts/bliss-os-introduction/" target="_blank" rel="noreferrer"&gt;Android-x86 alternative - Bliss OS Introduction&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bliss OS is an Android system based on Android-x86, designed specifically for running Android on x86 computers and tablets. On top of Android-x86, it preloads many practical tools and maintains an active open source update model.&lt;/p&gt;
&lt;p&gt;A quick comparison shows that the latest version on Android-x86&amp;rsquo;s official website is Android 9.0, while the latest Bliss OS test version has reached Android 13.&lt;/p&gt;
&lt;p&gt;An old Android version may not look like a big problem, but there is a big gap in ARM translation. Android-x86 9.0 depends on Intel&amp;rsquo;s &amp;ldquo;liboudini&amp;rdquo; technology to run ARM APKs on Android systems with x86 architecture, but it only supports &lt;strong&gt;32-bit ARM-v7eabi&lt;/strong&gt; APKs. Nowadays more and more developers only provide &lt;strong&gt;64-bit ARM-v8a&lt;/strong&gt; APKs. Therefore we have to switch to libhoudini from Android 11 or later to be compatible with 64-bit ARM APKs.&lt;/p&gt;
&lt;p&gt;Besides being newer and compatible with more computer hardware, Bliss OS also adds some features that make Android feel more like a computer, such as forced rotation, key mapping, gaming mode, simulated touch taps, KernelSU (root permission that is harder to detect), and other useful features. It also replaces traditional Android recovery with &amp;ldquo;Gearlock&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;By the way, the Bliss OS development team also develops &lt;a href="https://ivonblog.com/en-us/posts/ubuntu-waydroid/" target="_blank" rel="noreferrer"&gt;Waydroid&lt;/a&gt;, so the two have some similar features.&lt;/p&gt;

&lt;h2 class="relative group"&gt;2. Software and Hardware Needed to Install the Virtual Machine
 &lt;div id="2-software-and-hardware-needed-to-install-the-virtual-machine" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-software-and-hardware-needed-to-install-the-virtual-machine" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;My system specifications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU: Intel i5-10210U&lt;/li&gt;
&lt;li&gt;GPU: Intel® UHD Graphics 620&lt;/li&gt;
&lt;li&gt;Android-x86 version: 11.0&lt;/li&gt;
&lt;li&gt;QEMU version: 8.1.1&lt;/li&gt;
&lt;li&gt;virglrenderer version: 0.10.4&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Please confirm that CPU virtualization is enabled and that the KVM kernel module is loaded.&lt;/p&gt;
&lt;p&gt;Install the &lt;code&gt;QEMU&lt;/code&gt;, &lt;code&gt;Libvirt&lt;/code&gt;, and &lt;code&gt;Virt Manager&lt;/code&gt; packages on Linux. For Ubuntu, refer to &lt;a href="https://ivonblog.com/posts/ubuntu-virt-manager/" target="_blank" rel="noreferrer"&gt;this article&lt;/a&gt;. For Arch Linux, refer to &lt;a href="https://ivonblog.com/posts/archlinux-qemu-virt-manager/" target="_blank" rel="noreferrer"&gt;this article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Next, prepare a compatible graphics card. &lt;a href="https://ivonblog.com/posts/linux-qemu-virglrenderer/" target="_blank" rel="noreferrer"&gt;virglrenderer&lt;/a&gt; is a paravirtualized GPU technology that allows QEMU/KVM virtual machines to obtain 3D hardware acceleration without GPU passthrough.&lt;/p&gt;
&lt;p&gt;For virglrenderer, Intel and AMD graphics cards are recommended. Nvidia&amp;rsquo;s closed source driver is not very stable with virglrenderer.&lt;/p&gt;
&lt;p&gt;If you want to do GPU passthrough, Nvidia&amp;rsquo;s Android driver has issues, so you must use an Intel or AMD GPU instead.&lt;/p&gt;
&lt;p&gt;If you have an Nvidia graphics card, I recommend giving up hardware acceleration and booting Bliss OS in No HW Acceleration mode.&lt;/p&gt;

&lt;h2 class="relative group"&gt;3. Start Installing Bliss OS and Partition the Disk
 &lt;div id="3-start-installing-bliss-os-and-partition-the-disk" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-start-installing-bliss-os-and-partition-the-disk" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;The Bliss OS official website provides ISOs for various versions, and the installation methods are broadly similar.&lt;/p&gt;
&lt;p&gt;Bliss OS 14 (Android 11) and Bliss OS 15 (Android 12L) use Intel libhoudini to translate ARM APKs. Later versions switch to Google libndk.&lt;/p&gt;
&lt;p&gt;Here I use Bliss OS 15 as the demonstration.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download the ISO from the &lt;a href="https://blissos.org/" target="_blank" rel="noreferrer"&gt;official website&lt;/a&gt; or &lt;a href="https://sourceforge.net/projects/blissos-x86/" target="_blank" rel="noreferrer"&gt;SourceForge&lt;/a&gt;. Choose the version with built-in GApps (Bliss OS 15.9.x (x86_64-v2) with GApps). Then &lt;a href="https://ivonblog.com/posts/windows-verify-file-checksum" target="_blank" rel="noreferrer"&gt;check file integrity&lt;/a&gt; to prevent file corruption.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20240711_211332.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open Virt Manager, create a new virtual machine, select the ISO, and choose Android-x86 as the system
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102044.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I recommend allocating 8GB RAM and 4 CPU cores. The more RAM, the better, because ARM instruction translation can sometimes consume a lot of RAM.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102216.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Allocate at least a 64GB virtual disk
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102345.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check customize configuration before install
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102434.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Choose Q35 for chipset type, and UEFI (OVMF_CODE.fd) for firmware
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102514.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set the disk to VirtIO
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102620.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change CDROM to SATA
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102717.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check all boot devices and move CDROM to the top
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102958.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set the Spice listen type to none, check OpenGL, and select the Intel graphics card as the device
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102800.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set the video card to VirtIO and check 3D acceleration. The 3D acceleration here is achieved with VirGL. See &lt;a href="https://ivonblog.com/posts/linux-qemu-virglrenderer/" target="_blank" rel="noreferrer"&gt;Linux virtio-gpu virglrenderer for QEMU/KVM&lt;/a&gt;.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_102909.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click start installation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the keyboard to select Bliss OS Installation
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_103037.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Press Enter and select &lt;code&gt;Create/Modify Partition&lt;/code&gt;
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_103116.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Confirm using the GPT partition table
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_103824.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Operate with the keyboard: use the left and right arrow keys to move to &lt;code&gt;New&lt;/code&gt;, press Enter, enter &lt;code&gt;+512M&lt;/code&gt;, then enter &lt;code&gt;ef00&lt;/code&gt; to change the partition type to EFI. Set the partition name to &lt;code&gt;efi&lt;/code&gt;, and set the first partition as the EFI partition.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_103326.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Move the keyboard selection to Free Space, press Enter, select &lt;code&gt;New&lt;/code&gt;, press Enter all the way through, enter &lt;code&gt;android&lt;/code&gt; as the partition name, and set the second partition as the Linux system partition. (If three partitions appear due to misalignment, ignore it)
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_103545.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Move the keyboard selection to &lt;code&gt;Write&lt;/code&gt; and press Enter to write changes. Then move to &lt;code&gt;Quit&lt;/code&gt; to exit.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select the partitioned disk &lt;code&gt;vda2&lt;/code&gt;
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_103633.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Format the system as Ext4
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_103716.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install EFI/GRUB and format
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_103737.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After installation, click Virt Manager&amp;rsquo;s force power off button. Remove CDROM from the hardware list
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_104126.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the next boot, select the first option. By default it will load the system accelerated by virglrenderer. If you want to test the option without hardware acceleration, change the QEMU video card to QXL and select VM Options → VBox/VMWare - No HW Acceleration during boot.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_104229.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bliss OS has a built-in Google Play Store. You can directly log in to a Google account without certifying the device.&lt;/p&gt;
&lt;p&gt;The ARM translator is enabled by default; no manual installation is needed.&lt;/p&gt;

&lt;h2 class="relative group"&gt;4. How to Change the Bliss OS Screen Resolution
 &lt;div id="4-how-to-change-the-bliss-os-screen-resolution" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4-how-to-change-the-bliss-os-screen-resolution" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the boot menu, choose VM Options → Debug QEMU/KVM VirGL to enter the Android shell
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20240711_153151.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the &lt;code&gt;blikid&lt;/code&gt; command to check the EFI disk partition, usually &lt;code&gt;/dev/sda1&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mount the EFI partition&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mount /dev/sda1 /mnt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Edit &lt;code&gt;android.cfg&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /mnt/efi/boot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vi android.cfg&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="5"&gt;
&lt;li&gt;
&lt;p&gt;First find the line &lt;code&gt;linux $kd/kernel&lt;/code&gt;, and add &lt;code&gt;video=1920*1080&lt;/code&gt; at the end. Then find the line &lt;code&gt;set gfxmode=&lt;/code&gt; and modify the resolution.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reboot&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;umount /dev/sda1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;reboot -f&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Another way to change the resolution is to install &lt;a href="https://ivonblog.com/posts/android-secondscreen/" target="_blank" rel="noreferrer"&gt;SecondScreen&lt;/a&gt; and then force the adjustment.&lt;/p&gt;
&lt;p&gt;If the mouse cannot sync after changing the resolution, then prepare a second mouse and pass it through using Virt Manager&amp;rsquo;s USB redirection feature.&lt;/p&gt;
&lt;p&gt;Virt Manager&amp;rsquo;s window does not seem to respond to changes in the Bliss OS virtual machine resolution, causing the image to still look blurry.&lt;/p&gt;

&lt;h2 class="relative group"&gt;5. Bliss OS Tips
 &lt;div id="5-bliss-os-tips" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#5-bliss-os-tips" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Bliss OS enables Boringdroid&amp;rsquo;s desktop mode by default, and there is a persistent taskbar at the bottom of the system.&lt;/p&gt;
&lt;p&gt;If an app needs to run full screen, select it in system settings → Boringdroid → Set full screen app.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_110817.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Bliss OS preinstalls the &amp;ldquo;Set Orientation&amp;rdquo; app to force screen rotation, but this one is too old. I think &lt;a href="https://ivonblog.com/posts/android-force-rotate-screen-apps/" target="_blank" rel="noreferrer"&gt;OHMAE Ryosuke&amp;rsquo;s Force Rotate Screen App&lt;/a&gt; is better.&lt;/p&gt;
&lt;p&gt;For screenshots, pull down the menu and capture. As for screen recording, virglrenderer records weird colors, so I recommend using &lt;a href="https://ivonblog.com/posts/setup-obs-studio-on-linux/" target="_blank" rel="noreferrer"&gt;OBS Studio&lt;/a&gt; on the computer to capture the virtual machine window.&lt;/p&gt;
&lt;p&gt;Native Android multi-window support is not very good. If you insist, you can enable &amp;ldquo;freeform windows&amp;rdquo; in Developer options.&lt;/p&gt;
&lt;p&gt;Bliss OS has built-in KernelSU and &lt;a href="https://ivonblog.com/en-us/posts/how-to-use-termux/" target="_blank" rel="noreferrer"&gt;Termux&lt;/a&gt;. Root permission is not globally enabled and needs to be mounted for individual apps.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_105539.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;For virtual machine ADB connection, I referred to a &lt;a href="https://www.reddit.com/r/BlissOS/comments/tkddmn/adbovertcp_failed_to_authenticate/" target="_blank" rel="noreferrer"&gt;Reddit article&lt;/a&gt; and used wireless connection. If you want to enable Root permission in ADB Shell: open KernelSU and grant permission to &amp;ldquo;com.android.shell&amp;rdquo;.&lt;/p&gt;

&lt;h2 class="relative group"&gt;6. Actually Playing Games on Bliss OS
 &lt;div id="6-actually-playing-games-on-bliss-os" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#6-actually-playing-games-on-bliss-os" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;When installing games, I recommend using versions that natively support x86 architecture. Google Play should automatically filter them for you. If you install ARM APKs, the system will spend extra resources on translation.&lt;/p&gt;
&lt;p&gt;Games should start if they do not detect emulators, but some games have problems playing videos, probably a virglrenderer bug. Try booting from the boot menu using the &lt;code&gt;hwcomposer.drm&lt;/code&gt; method under the Debugging menu.&lt;/p&gt;
&lt;p&gt;If mouse clicks do not respond in a game, you can go to system settings → Blissify → Force Mouse Click as touch, forcing mouse click events to be translated into touch taps. Note that enabling this option will cause the mouse wheel to stop working.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_092527.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Bliss OS has a built-in &amp;ldquo;Gaming Mode&amp;rdquo;, enabled under system settings → Blissify → Gaming Mode. When the user opens a game app, notifications are automatically disabled, and a floating button appears for convenient screenshots.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_093522.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Some games require key mapping to operate. You can open KernelSU and grant XtMapper Root permission. Then open XtMapper, enable the service, select the app, and set key bindings.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/Screenshot_20231001_110952.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;In addition, &lt;a href="https://ivonblog.com/posts/android-qtscrcpy-usage/" target="_blank" rel="noreferrer"&gt;QtScrcpy&lt;/a&gt;&amp;rsquo;s key mapping can also be used with virtual machines.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/bliss-os-qemu-installation/images/CI61HuD.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;To test the capability of Bliss OS&amp;rsquo;s translator, I tested all of the following games using ARM-v8 APKs. If Google Play refuses to install them, find APKs yourself.&lt;/p&gt;
&lt;p&gt;《Fruit Ninja》 and 《Temple Run 2》 run normally.&lt;/p&gt;
&lt;p&gt;Next is 《Genshin Impact》. Waydroid can run it, so in theory Bliss OS should be able to as well&amp;hellip; but virglrenderer is not very stable, and Genshin Impact v4.1.0 crashes while compiling shaders.&lt;/p&gt;




&lt;div style="position: relative; padding-bottom: 56.25%; overflow: hidden;"&gt;
 &lt;iframe style="position: absolute; width: 100%; height: 100%;"
 src="http://www.youtube.com/embed/84w8dIkHouU?si=TAVwbFKRDRYyUa9x" allowfullscreen frameborder="0" loading="lazy"&gt;
 &lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Another large game, 《Tower of Fantasy》, can successfully enter the game without any scripts.&lt;/p&gt;

&lt;h2 class="relative group"&gt;References
 &lt;div id="references" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#references" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://t.me/Team_Bliss_Community" target="_blank" rel="noreferrer"&gt;Bliss OS的Telegram群組&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.blissos.org/installation/install-in-a-virtual-machine/install-in-qemu/" target="_blank" rel="noreferrer"&gt;Bliss OS: How to install Bliss OS on Qemu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.blissos.org/knowledgebase/troubleshooting/edit-grub-from-bliss-install/" target="_blank" rel="noreferrer"&gt;How to edit grub from your Bliss OS install&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://android.stackexchange.com/questions/249223/how-can-i-set-my-android-x86-uefi-installation-resolution-to-19201080-in-my-vm" target="_blank" rel="noreferrer"&gt;How can I set my android x86 UEFI installation resolution to 1920*1080 in my VM? - Android Enthusiasts Stack Exchange&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/en-us/posts/bliss-os-qemu-installation/featured.webp"/></item></channel></rss>