我使用Gitlab CI构建Android应用程序并自动在Android虚拟设备(AVD)上运行测试 .
我想使用此模拟器的x86版本而不是ARM模拟器 .
但x86 AVD目前需要正确安装和加载虚拟化(VT)和KVM .
所有这些都在DigitalOcean主机上的Docker容器中运行 .
'lscpu'显示已为Intel处理器启用VT:
型号名称:Intel(R)Xeon(R)CPU E5-2650L v3 @ 1.80GHz
虚拟化:VT-x
管理程序供应商:KVM
虚拟化类型:已满
因此我安装了qemu-kvm和其他相关的debian软件包:
export 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:FAIL(检查'kvm-intel'或'kvm-amd'模块是否已加载且BIOS已启用虚拟化)
QEMU:检查设备/ dev / vhost-net:PASS
QEMU:检查设备/ dev / net / tun:PASS
LXC:检查Linux> = 2.6.26:PASS
错误:作业失败:退出代码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:ERROR:无法打开目录/lib/modules/4.9.16-coreos-r1:没有这样的文件或目录depmod:FATAL:无法搜索模块:没有这样的文件或目录错误:作业失败:退出代码1
也不是:
$ apt-get install --reinstall linux-image- 'uname -r'
阅读包裹清单......
构建依赖树...
阅读国家信息......
E:无法找到包linux-image-4.9.16-coreos-r1
E:无法't find any package by regex ' linux-image-4.9.16-coreos-r1'
......确实解决了这个问题 . 关于如何加载kvm-intel的任何想法?
亲切的问候,
Laurent Le Moux
1 回答
最后我在这里得到了答案:https://groups.google.com/d/topic/coreos-user/mvmOhDMiwsU/discussion
基本上,必须从Docker实例外部安装虚拟化软件包 . 并且 - 不幸地 - 我没有控制/访问权限,因为它是由Gitlab CI运行者自动启动的 .
我可以(请)默认安装这些软件包:https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/2242