Kubuntu 上的 QEMU 频率不匹配

Kubuntu 上的 QEMU 频率不匹配

我的 Kubuntu 17.10 上出现了以下消息 - 我用 Google 搜索了该消息,但不幸的是,搜索结果太过技术性,我无法找到解决方案:

Emulator: qemu-system-i386: warning: TSC frequency mismatch between VM
(2394456 kHz) and host (2394457 kHz), and TSC scaling unavailable

有以下症状: 在此处输入图片描述

首次启动时,这方面一切都运行良好,所以我不知道是什么导致了这个问题以及如何解决它。

答案1

由于一些更新,我遇到了同样的问题,我打开了我的Android 虚拟设备管理器Android Studio(工具->AVD 管理器)然后匹配发生问题的模拟器。我点击了下拉图标操作列并选择抹掉数据选项。

答案2

我通过一种变通方法找到了解决方案!

tl;dr 版本-use-system-libs模拟器选项是一个临时的解决方法。

较长版本

谷歌搜索TSC 频率不匹配没有给出可能导致问题的原因。禁用硬件加速是一种可能的解决方法,但结果是模拟速度变慢。我休息了一下,但后来我认为这应该是内核相关的问题,因为似乎是 KVM 导致了这个问题。我尝试禁用英特尔微码驱动程序(没有帮助)和内核更新(没有帮助),但在后者之后,至少我收到了一些不那么神秘的错误消息,例如:

21:31   Emulator: libGL error: unable to load driver: i965_dri.so
21:31   Emulator: libGL error: driver pointer missing
21:31   Emulator: libGL error: failed to load driver: i965
21:31   Emulator: libGL error: unable to load driver: i965_dri.so
21:31   Emulator: libGL error: driver pointer missing
21:31   Emulator: libGL error: failed to load driver: i965
21:31   Emulator: libGL error: unable to load driver: swrast_dri.so
21:31   Emulator: libGL error: failed to load driver: swrast
21:31   Emulator: X Error of failed request:  BadValue (integer parameter out of range for operation)
21:31   Emulator: Major opcode of failed request:  155 (GLX)
21:31   Emulator: Minor opcode of failed request:  24 (X_GLXCreateNewContext)
21:31   Emulator: Value in failed request:  0x0
21:31   Emulator: Serial number of failed request:  64
21:31   Emulator: Current serial number in output stream:  65
21:31   Emulator: Process finished with exit code 1

所以这肯定是驱动程序的问题!谷歌搜索第一个错误消息时,我得到了这次打击-use-system-libs,与模拟器一起使用 。现在可以正常工作了!但是,如何使它永久生效?这一页还为我指明了正确的方向:使用包装器脚本启动模拟器。现在一切都运行正常。

因此,逐步解决:

  1. 在终端中:/home/$user/Android/Sdk/emulator/emulator -list-avds找到您的 AVD - 名称可能与 Android Studio 中显示的名称不同。找到您遇到问题的 AVD 的名称。请注意,根据您在 AStudio 安装期间指定的路径,模拟器路径也可能不同。
  2. 测试以下方法是否适合您的手动解决方法: /home/$user/Android/Sdk/emulator/emulator -avd your_emulator_name_here -use-system-libs
  3. 如果 (2) 对你有用,请重命名原始模拟器文件并从 shell 脚本启动它以实现永久选项标志启动(你的路径和文本编辑器可能不同):

    $ cd /home/$user/Android/Sdk/emulator/ $ mv emulator emulator.0 $ touch emulator $ chmod +x emulator $ kate emulator

插入以下内容并保存:

#!/bin/sh
set -ex
$0.0 $@ -use-system-libs

现在每次调用模拟器时,都会通过名为模拟器,从现在起就不会再出现任何错误。

答案3

AVD 管理器,点击导致此问题的 AVD,然后选择抹掉数据从选项中。

相关内容