【发布时间】:2017-08-31 00:22:08
【问题描述】:
我使用 Gitlab CI 构建 Android 应用并在 Android 虚拟设备 (AVD) 上自动运行测试。
我想使用这个模拟器的 x86 版本而不是 ARM 版本。
但是 x86 AVD 目前需要正确安装和加载虚拟化 (VT) 和 KVM。
所有这些都在 DigitalOcean 主机上的 Docker 容器中运行。
'lscpu' 显示 VT 已为 Intel 处理器启用:
型号名称:Intel(R) Xeon(R) CPU E5-2650L v3 @ 1.80GHz
虚拟化:VT-x
管理程序供应商:KVM
虚拟化类型:full
因此我安装了 qemu-kvm 和其他相关的 debian 软件包:
导出 DEBIAN_FRONTEND=非交互式
apt-get --quiet update --yes
apt-get --quiet install --yes qemu-kvm libvirt-bin virtinst bridge-utils
adduser 'id -un' libvirt
然后 'virt-host-validate' 显示未加载 kvm-intel :
$ virt-host-validate
QEMU:检查硬件虚拟化:通过
QEMU:检查设备 /dev/kvm:失败(检查“kvm-intel”或“kvm-amd”模块是否已加载且 BIOS 已启用虚拟化)
QEMU:检查设备 /dev/vhost-net:通过
QEMU:检查设备 /dev/net/tun :通过
LXC:检查 Linux >= 2.6.26:通过
错误:作业失败:退出代码 1
但是,添加“modprobe kvm-intel”失败:
$ modprobe kvm-intel
modprobe: 错误: ../libkmod/libkmod.c:557 kmodsearchmoddep() 无法打开 moddep 文件 '/lib/modules/4.9.16-coreos-r1/modules.dep.bin'
两者都没有:
$ depmod
depmod:错误:无法打开目录 /lib/modules/4.9.16-coreos-r1:没有这样的文件或目录
depmod:致命:无法搜索模块:没有这样的文件或目录
错误:作业失败:退出代码 1
也不:
$ apt-get install --reinstall linux-image-'uname -r'
正在阅读包裹清单...
构建依赖树...
读取状态信息...
E: 找不到包 linux-image-4.9.16-coreos-r1
E: 通过正则表达式 'linux-image-4.9.16-coreos-r1' 找不到任何包
...确实解决了问题。关于如何加载 kvm-intel 的任何想法?
亲切的问候,
洛朗·勒穆
【问题讨论】:
-
怎么没有'/lib/modules/4.9.16-coreos-r1'目录? '/lib/modules' 也不存在...这是特定于 Linux 容器的吗?根据我的阅读,我需要安装 linux 头文件,但 'apt-get --quiet install linux-headers-
uname -r--yes' 失败并出现以下错误: E: Unable to locate package linux-headers-4.9.16 -coreos-r1 我尝试使用另一个图像/标题。然后安装了“kvm-intel.ko”,但无法加载。由于“无效的模块格式”,使用“insmod -f”失败。我被困住了。如果有人能提供帮助,我将不胜感激。
标签: digital-ocean kvm coreos