<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Genymotion on Dapeng Zhang</title><link>https://zhangdapeng.dev/tags/genymotion/</link><description>Recent content in Genymotion on Dapeng Zhang</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 22 Aug 2025 15:34:55 +0000</lastBuildDate><atom:link href="https://zhangdapeng.dev/tags/genymotion/index.xml" rel="self" type="application/rss+xml"/><item><title>QEMU/KVM-虚拟管理器启动失败原因排查记录</title><link>https://zhangdapeng.dev/p/qemukvm-xu-ni-guan-li-qi-qi-dong-shi-bai-yuan-yin-pai-cha-ji-lu/</link><pubDate>Fri, 22 Aug 2025 15:34:55 +0000</pubDate><guid>https://zhangdapeng.dev/p/qemukvm-xu-ni-guan-li-qi-qi-dong-shi-bai-yuan-yin-pai-cha-ji-lu/</guid><description>&lt;p&gt;&lt;strong&gt;总结：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;为什么 Genymotion 和 QEMU/KVM 不能同时使用&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;豆包给的答案是：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CPU 虚拟化资源独占：Genymotion 通常基于 VirtualBox 进行虚拟化，而 KVM 是直接利用 CPU 虚拟化功能的内核模块。CPU 的虚拟化功能（如 Intel 的 VT-x 或 AMD 的 AMD-V）一般只能被一个虚拟化管理程序独占使用。当 Genymotion 通过 VirtualBox 占用了这些资源后，QEMU/KVM 就无法再获取到所需的 CPU 虚拟化资源，从而无法正常工作，反之亦然。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;昨天因为使用Genymotion所以执行了&lt;code&gt;rmmod kvm&lt;/code&gt;和&lt;code&gt;rmmod kvm_amd&lt;/code&gt;，导致今天使用QEMU/KVM的时候，虚拟系统管理器报错了&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;启动域时出错: unsupported configuration: Domain requires KVM, but it is not available. Check that virtualization is enabled in the host BIOS, and host configuration is setup to load the kvm modules.&lt;/p&gt;
&lt;p&gt;Traceback (most recent call last):
File &amp;ldquo;/usr/share/virt-manager/virtManager/asyncjob.py&amp;rdquo;, line 71, in cb_wrapper
callback(asyncjob, *args, **kwargs)&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-^^^^^^^^^^^^^^^^^^^^^^^^^^^" data-lang="^^^^^^^^^^^^^^^^^^^^^^^^^^^"&gt;File &amp;#34;/usr/share/virt-manager/virtManager/asyncjob.py&amp;#34;, line 107, in tmpcb
callback(*args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^
File &amp;#34;/usr/share/virt-manager/virtManager/object/libvirtobject.py&amp;#34;, line 57, in newfn
ret = fn(self, *args, **kwargs)
File &amp;#34;/usr/share/virt-manager/virtManager/object/domain.py&amp;#34;, line 1384, in startup
self._backend.create()
~~~~~~~~~~~~~~~~~~~~^^
File &amp;#34;/usr/lib/python3/dist-packages/libvirt.py&amp;#34;, line 1379, in create
raise libvirtError(&amp;#39;virDomainCreate() failed&amp;#39;)
libvirt.libvirtError: unsupported configuration: Domain requires KVM, but it is not available. Check that virtualization is enabled in the host BIOS, and host configuration is setup to load the kvm modules.
&lt;/code&gt;&lt;/pre&gt;
 &lt;/blockquote&gt;
&lt;p&gt;{% img &lt;a class="link" href="https://res.cloudinary.com/dy5dvcuc1/image/upload/v1755848862/gowhich/2025-08-22_15-42.png" target="_blank" rel="noopener"
 &gt;https://res.cloudinary.com/dy5dvcuc1/image/upload/v1755848862/gowhich/2025-08-22_15-42.png&lt;/a&gt; &amp;quot;&amp;quot; %}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方案：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;通过命令重新加载一下就可以了&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;
modprobe kvm

modprobe kvm_amd
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Genymotion启动失败原因排查记录</title><link>https://zhangdapeng.dev/p/genymotion-qi-dong-shi-bai-yuan-yin-pai-cha-ji-lu/</link><pubDate>Thu, 21 Aug 2025 10:08:19 +0000</pubDate><guid>https://zhangdapeng.dev/p/genymotion-qi-dong-shi-bai-yuan-yin-pai-cha-ji-lu/</guid><description>&lt;p&gt;启动 Genymotion 报错 内容如下&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Virtualization technology (VT-X, SVM, AMD-V) may be unavailable or disabled. Please verify your BIOS/UEFI settings.If it is available and enabled, please verify that no other hypervisor (QEMU) is currently in use.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;大概意思是 没有启用虚拟化技术，也就是没有打开SVM 或者没有打开AMD-V 或者是没有打开VT-X，具体如果打开不同主板不一样，具体可以咨询“豆包”，另外一个原因是启用了虚拟化技术但是有其他的hypervisor在使用需要关闭掉&lt;/p&gt;
&lt;p&gt;为了确认我确实打开了，其重启电脑确认了下，我的是SVM，确实是开启了&lt;/p&gt;
&lt;p&gt;然后打开电脑通过命令行是可以确认的（可以在重启前先查下）&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo lscpu
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;结果如下&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;架构： x86_64
 CPU 运行模式： 32-bit, 64-bit
 Address sizes: 48 bits physical, 48 bits virtual
 字节序： Little Endian
CPU: 12
 在线 CPU 列表： 0-11
厂商 ID： AuthenticAMD
 BIOS Vendor ID: Advanced Micro Devices, Inc.
 型号名称： AMD Ryzen 5 5600G with Radeon Graphics
 BIOS Model name: AMD Ryzen 5 5600G with Radeon Graphics Unknown CPU @ 3.9GHz
 BIOS CPU family: 107
 CPU 系列： 25
 型号： 80
 每个核的线程数： 2
 每个座的核数： 6
 座： 1
 步进： 0
 Frequency boost: enabled
 CPU(s) scaling MHz: 75%
 CPU 最大 MHz： 4465.0000
 CPU 最小 MHz： 400.0000
 BogoMIPS： 7785.51
 标记： fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc r
 ep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c r
 drand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mw
 aitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsa
 veopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nri
 p_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflo
 w_recov succor smca fsrm debug_swap
Virtualization features: 
 虚拟化： AMD-V
Caches (sum of all): 
 L1d: 192 KiB (6 instances)
 L1i: 192 KiB (6 instances)
 L2: 3 MiB (6 instances)
 L3: 16 MiB (1 instance)
NUMA: 
 NUMA 节点： 1
 NUMA 节点0 CPU： 0-11
Vulnerabilities: 
 Gather data sampling: Not affected
 Ghostwrite: Not affected
 Indirect target selection: Not affected
 Itlb multihit: Not affected
 L1tf: Not affected
 Mds: Not affected
 Meltdown: Not affected
 Mmio stale data: Not affected
 Reg file data sampling: Not affected
 Retbleed: Not affected
 Spec rstack overflow: Mitigation; Safe RET
 Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
 Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
 Spectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
 Srbds: Not affected
 Tsx async abort: Not affected
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;可以注意到&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Virtualization features: 
 虚拟化： AMD-V
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;说明是启用了的&lt;/p&gt;
&lt;p&gt;排除了没有开启这个因素就可以排查另外一个问题了，就是有其他的hypervisor在使用&lt;/p&gt;
&lt;p&gt;检查步骤如下&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;检查 QEMU 进程&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;打开终端，输入以下命令查找是否有 QEMU 相关进程：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ps -ef | grep qemu
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;若输出包含 qemu-system 等进程，说明 QEMU 正在运行。&lt;/p&gt;
&lt;p&gt;结束进程：使用 kill -9 &amp;lt;进程ID&amp;gt;（将&amp;lt;进程ID&amp;gt;替换为实际的进程编号）。&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;检查 Hypervisor 是否加载&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;输入命令查看内核是否加载了 Hypervisor 模块：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;lsmod | grep kvm&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;（KVM 是 Linux 常见的虚拟化模块，QEMU 常基于 KVM 运行）&lt;/p&gt;
&lt;p&gt;若有输出，说明 KVM 模块已加载，可能有虚拟化程序在使用。&lt;/p&gt;
&lt;p&gt;若需关闭，可卸载模块（需管理员权限）：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo rmmod kvm_intel&lt;/code&gt;（Intel 处理器）或 &lt;code&gt;sudo rmmod kvm_amd&lt;/code&gt;（AMD 处理器），再执行 &lt;code&gt;sudo rmmod kvm&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;最终我的问题是第二个情况，于是通过执行命令解决了&lt;/p&gt;
&lt;p&gt;我的CPU是AMD的，于是运行命令&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo rmmod kvm_amd

sudo rmmod kvm
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;问题解决&lt;/p&gt;</description></item></channel></rss>