<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>QEMU User Mode on Ivon's Blog</title><link>https://ivonblog.com/en-us/tags/qemu-user-mode/</link><description>Recent content in QEMU User Mode 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 of Ivon's Blog (ivonblog.com). Please include the original URL when citing articles, and abide by CC BY-NC-ND 4.0 license. For commercial use, please write an e-mail to me.</copyright><lastBuildDate>Thu, 16 Nov 2023 23:00:00 +0800</lastBuildDate><atom:link href="https://ivonblog.com/en-us/tags/qemu-user-mode/index.xml" rel="self" type="application/rss+xml"/><item><title>Use debootstrap on x86 to create an ARM rootfs and install a chroot Debian environment on Android</title><link>https://ivonblog.com/en-us/posts/debootstrap-create-rootfs-for-android/</link><pubDate>Thu, 16 Nov 2023 23:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/en-us/posts/debootstrap-create-rootfs-for-android/</guid><description>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;According to the &lt;a href="https://wiki.debian.org/Debootstrap" target="_blank" rel="noreferrer"&gt;Debian Wiki&lt;/a&gt;, debootstrap is a wrapper script that can produce a minimal Debian or Ubuntu rootfs (root filesystem) according to personal preference. It is suitable for people who want to set up Linux from scratch themselves, installing a Linux system in a way similar to Arch Linux&amp;rsquo;s &lt;code&gt;pacstrap&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;But that is not my purpose here. I want to move the completed rootfs to a phone for chroot or &lt;a href="https://ivonblog.com/en-us/posts/termux-proot-distro/" target="_blank" rel="noreferrer"&gt;Termux proot&lt;/a&gt; use, and run a Debian environment on the phone.&lt;/p&gt;
&lt;p&gt;I will use a Linux computer to create the Debian rootfs. Since the computer is x86_64, I need to use the QEMU emulator in order to enter an ARM64 chroot environment on the computer.&lt;/p&gt;
&lt;p&gt;If you do not want to use a computer, then take a more roundabout route: first install &lt;a href="https://ivonblog.com/en-us/posts/termux-chroot-ubuntu/" target="_blank" rel="noreferrer"&gt;chroot Ubuntu&lt;/a&gt; on the phone, then install &lt;code&gt;debootstrap&lt;/code&gt; inside it to create the Debian rootfs. This method does not need QEMU translation, but it cannot be done through a rootless Termux environment.&lt;/p&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;Install the debootstrap package; most Linux distributions include it. As for installing &lt;code&gt;arch-linstall-scripts&lt;/code&gt;, that is because it provides the useful &lt;code&gt;arch-chroot&lt;/code&gt; script&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;sudo apt install debootstraparch-linstall-scripts&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;To create an ARM rootfs on an x86 computer, we need to use the &lt;code&gt; qemu-user-static&lt;/code&gt; tool to emulate the ARM64 instruction set&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;sudo apt install qemu-user-static&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Confirm that the binfmt service is enabled&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;sudo systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; --now systemd-binfmt.service&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;Create the Debian rootfs directory&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; ~/Downloads
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir debian&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;Start creating the Debian 12 Bookworm rootfs, downloading packages from the Taiwan Debian server&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;sudo debootstrap --arch arm64 --components&lt;span class="o"&gt;=&lt;/span&gt;main,universe bookworm debian12 http://ftp.tw.debian.org/debian/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="6"&gt;
&lt;li&gt;After installation, first put &lt;code&gt;qemu-aarc64&lt;/code&gt; into the rootfs, so it will automatically translate instructions&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;which qemu-aarch64
&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;sudo cp /usr/bin/qemu-aarch64 debian/usr/bin&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="7"&gt;
&lt;li&gt;Chroot into it and do some initialization. When using &lt;code&gt;arch-chroot&lt;/code&gt;, you do not need to manually mount &lt;code&gt;/proc&lt;/code&gt; and such; everything is handled automatically&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;sudo arch-chroot debian&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="8"&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;cat /etc/os-release&lt;/code&gt; to confirm that it is a Debian system
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/debootstrap-create-rootfs-for-android/images/Screenshot_20231116_234211.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 width="559"
 height="265"&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After configuring it, exit chroot&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;exit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="10"&gt;
&lt;li&gt;Compress the rootfs into a tar.gz&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;sudo tar -zcpf debian.tar.gz debian/*&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Send it to the Android phone with ADB and extract it on the phone.&lt;/p&gt;
&lt;p&gt;The process of installing a desktop environment is similar, so I will not repeat it. The steps involving commands below can also be completed first on the computer described above.&lt;/p&gt;
&lt;p&gt;If the phone has root privileges, refer to &lt;a href="https://ivonblog.com/en-us/posts/termux-chroot-ubuntu/" target="_blank" rel="noreferrer"&gt;chroot Ubuntu&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If it does not have root privileges, refer to &lt;a href="https://ivonblog.com/en-us/posts/termux-proot-distro/" target="_blank" rel="noreferrer"&gt;Termux proot&lt;/a&gt; for installing the desktop environment.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/en-us/posts/debootstrap-create-rootfs-for-android/featured.webp"/></item><item><title>Use Termux qemu-user to emulate x86_64 Ubuntu on ARM64 Android</title><link>https://ivonblog.com/en-us/posts/termux-proot-distro-qemu-emulation/</link><pubDate>Thu, 16 Nov 2023 18:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/en-us/posts/termux-proot-distro-qemu-emulation/</guid><description>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;This explains how to emulate an x86_64 Ubuntu system on an ARM64 (Aarch64) Android phone through Termux proot-distro.&lt;/p&gt;

&lt;h2 class="relative group"&gt;1. Explanation
 &lt;div id="1-explanation" 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-explanation" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;You may say: most Android devices are ARM64, right? Why not just install the ARM version of Ubuntu? Some programs are just obnoxious and are not compiled for ARM.&lt;/p&gt;
&lt;p&gt;So on the road of force-running x86 programs, we have three choices:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run an ARM64 system and install the &lt;a href="https://ivonblog.com/en-us/posts/termux-proot-box86-box64/" target="_blank" rel="noreferrer"&gt;Box64 translator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use qemu-system to start a complete x86_64 emulator, such as &lt;a href="https://ivonblog.com/en-us/posts/termux-qemu-system-linux" target="_blank" rel="noreferrer"&gt;Ubuntu x86_64 + QEMU&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use qemu-user to emulate an x86_64 system.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;qemu-system runs a virtual machine, emulating complete hardware devices so Linux can run as if it were on a real computer. Of course, it consumes a lot of resources.&lt;/p&gt;
&lt;p&gt;qemu-user, on the other hand, is a userspace emulator that can emulate x86 executables on ARM64 devices without needing the resources of an entire virtual machine.&lt;/p&gt;
&lt;p&gt;QEMU supports emulating many architectures. Besides x86_64, emulating 32-bit x86, RISC-V, and other architectures is also possible.&lt;/p&gt;
&lt;p&gt;In Termux, as long as we have a rootfs, we can get a Linux system running without using qemu-system virtual machine emulation.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://ivonblog.com/en-us/posts/termux-proot-distro" &gt;proot-distro&lt;/a&gt; tool has built-in qemu support. This article discusses using the proot-distro tool together with qemu-user to run an x86_64 system.&lt;/p&gt;
&lt;p&gt;Because it is emulated, program execution is naturally slower than native. Add proot&amp;rsquo;s performance overhead and it becomes even slower. At the end of the article, we will compare the speed of Proot native vs Box64 vs qemu-user.&lt;/p&gt;

&lt;h2 class="relative group"&gt;2. Test environment
 &lt;div id="2-test-environment" 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-test-environment" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Phone: Sony Xperia 10 V, Android 13&lt;/li&gt;
&lt;li&gt;Linux kernel version: 5.4&lt;/li&gt;
&lt;li&gt;Termux version: 0.118.0&lt;/li&gt;
&lt;li&gt;qemu-user version: 8.1.0&lt;/li&gt;
&lt;li&gt;Ubuntu version: 20.04 (Ubuntu 22.04 runs into a problem where apt pub_key cannot be imported)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;3. Create an x86_64 proot Ubuntu
 &lt;div id="3-create-an-x86_64-proot-ubuntu" 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-create-an-x86_64-proot-ubuntu" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Refer to &lt;a href="https://ivonblog.com/en-us/posts/termux-proot-distro-add-custom-distro" &gt;proot-distro rootfs&lt;/a&gt; and add the &lt;code&gt;Ubuntu 20.04_x86_64.sh&lt;/code&gt; script. But here we need to change the content a little.&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;vim &lt;span class="nv"&gt;$PREFIX&lt;/span&gt;/etc/proot-distro/ubuntu20.04_x86_64.sh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Modify it as follows&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="c1"&gt;# Specify the architecture as x86_64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DISTRO_ARCH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;x86_64
&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;&lt;span class="nv"&gt;DISTRO_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Ubuntu20.04 x86_64&amp;#34;&lt;/span&gt;
&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;&lt;span class="nv"&gt;DISTRO_COMMENT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Ubuntu 20.04 Focal x86_64&amp;#34;&lt;/span&gt;
&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;&lt;span class="nv"&gt;TARBALL_STRIP_OPT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&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;&lt;span class="c1"&gt;# Download the x86_64 Ubuntu base&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;TARBALL_URL&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;x86_64&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;https://cdimage.ubuntu.com/ubuntu-base/focal/daily/current/focal-base-amd64.tar.gz&amp;#34;&lt;/span&gt;
&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;TARBALL_SHA256&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;x86_64&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;16c831cc71b8ab79e5156451558df4a025783ba335047f6343518e7225416929&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Install &lt;code&gt;qemu-user-x86-64&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;pkg install qemu-user-x86-64&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;Install Ubuntu&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;proot-distro install ubuntu20.04_x86_64&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;Log in to Ubuntu. proot-distro will automatically execute it with QEMU.&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;proot-distro login ubuntu20.04_x86_64&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="6"&gt;
&lt;li&gt;
&lt;p&gt;Through the &lt;code&gt;uname -a&lt;/code&gt; command, you can see that the architecture is x86_64, and no &lt;code&gt;Exec format error&lt;/code&gt; appears.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/termux-proot-distro-qemu-emulation/images/Screenshot_20231116-223629.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 width="1080"
 height="391"&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If a &lt;code&gt;signal 11 Segmentfault&lt;/code&gt; error appears while installing packages, just run &lt;code&gt;dpkg --configure -a&lt;/code&gt; once.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="relative group"&gt;4. Compare native and emulated execution speed
 &lt;div id="4-compare-native-and-emulated-execution-speed" 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-compare-native-and-emulated-execution-speed" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Note: qemu-user in the table below refers to the method in this article&lt;/p&gt;
&lt;p&gt;native represents the arm64 executables installed in proot Ubuntu&lt;/p&gt;
&lt;p&gt;Box64 means using the &lt;code&gt;box64&lt;/code&gt; command in proot Ubuntu to translate and run x86_64 executables&lt;/p&gt;
&lt;p&gt;Use 7z to extract a 133MB zip file, and use &lt;code&gt;time&lt;/code&gt; to measure how long it takes to complete.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/en-us/posts/termux-proot-distro-qemu-emulation/featured.webp"/></item></channel></rss>