You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARM64设备启用KVM后启动Cuttlefish遇qemu初始化失败问题

问题描述

在ARM64架构的Linux设备上已成功集成QEMU 4.2.1,尝试启动Cuttlefish虚拟机时出现错误:qemu-system-aarch64: kvm_init_vcpu failed: Invalid argument,设备已启用KVM且/dev/kvm权限正常,相关信息如下:

QEMU版本信息:

$ qemu-system-aarch64 --version
QEMU emulator version 4.2.1
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

/dev/kvm权限:

$ ls -l /dev/kvm
crw-rw-rw-    1 root     kvm        10, 232 Nov 23 15:43 /dev/kvm

错误日志片段:

/usr/bin/qemu-system-aarch64
2023-11-20T22:27:38.422646Z qemu-system-aarch64: kvm_init_vcpu failed: Invalid argument
Detected unexpected exit of monitored subprocess /usr/bin/qemu-system-aarch64
Subprocess /usr/bin/qemu-system-aarch64 (2336) has exited with exit code 1
failed to read from socket, retry.
failed to read from socket, retry.
Start modem simulator, server_fds: 64, Sim type: normal
Server listening on 0.0.0.0:7200
Metrics started
Metrics host received: VMStart

排查与解决方案
  • 升级QEMU版本:QEMU 4.2.1版本较老,存在部分KVM兼容性问题,Cuttlefish对QEMU版本有一定要求。建议升级到6.x或7.x系列的稳定版。Debian/Ubuntu系可通过包管理器安装:
    sudo apt update && sudo apt install qemu-system-aarch64
    
  • 检查CPU虚拟化支持:ARM64架构下,KVM运行需要CPU支持EL2虚拟化扩展。执行命令验证:
    grep -i virt /proc/cpuinfo
    
    若输出无相关虚拟化标识,需确认设备硬件是否支持,或进入BIOS/固件设置开启虚拟化选项。
  • 调整Cuttlefish启动参数:可能是启动时指定了不兼容的CPU模型。尝试修改Cuttlefish配置,使用cortex-a57这类通用兼容的CPU型号,或使用host参数让QEMU直接使用主机CPU特性(需硬件支持)。
  • 升级内核版本:过老的Linux内核可能与QEMU 4.2.1的KVM交互存在BUG。执行uname -r查看内核版本,建议升级到5.4以上的LTS版本。
  • 检查SELinux限制:即使/dev/kvm权限正常,SELinux可能阻止QEMU的操作。临时关闭SELinux测试:
    sudo setenforce 0
    
    若启动成功,需添加SELinux规则允许QEMU的KVM操作,避免后续重启后问题重现。

内容的提问来源于stack exchange,提问作者GNK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:07:49