Для запуска эмуляторов Android x86 требуется kvm-intel

Я использую Gitlab CI для создания приложения для Android и автоматически запускаю тесты на виртуальном устройстве Android (AVD).
Я хотел бы использовать версию этого эмулятора x86 вместо ARM.
Но в настоящее время AVD x86 требует правильной установки и загрузки виртуализации (VT) и KVM.

Все это выполняется в контейнере Docker на хосте DigitalOcean.

'lscpu' показывает, что VT включен для процессора Intel:
Название модели: Intel (R) Xeon (R) CPU E5-2650L v3 @ 1,80 ГГц
Виртуализация: VT-x
Производитель гипервизора: KVM < br> Тип виртуализации: полная

Поэтому я установил qemu-kvm и другие связанные пакеты debian:
export DEBIAN_FRONTEND = noninteractive
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: Проверка аппаратной виртуализации: PASS
QEMU: Проверка устройства / dev / kvm: FAIL (Убедитесь, что модули 'kvm-intel' или 'kvm-amd' загружены и в BIOS включена виртуализация)
QEMU: Проверка устройства / dev / vhost-net: ПРОЙДЕН
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: ОШИБКА: не удалось открыть каталог /lib/modules/4.9.16-coreos-r1: Нет такого файла или каталога depmod: FATAL: не удалось выполнить поиск модулей: Нет такого файла или ОШИБКА каталога: сбой задания: код выхода 1

Также:
$ apt-get install --reinstall linux-image-'uname -r '
Чтение списков пакетов ...
Построение дерева зависимостей ...
Чтение информации о состоянии ... < br> E: не удалось найти пакет linux-image-4.9.16-coreos-r1
E: не удалось найти какой-либо пакет с помощью регулярного выражения 'linux-image-4.9.16-coreos-r1'

... действительно решает проблему. Есть идеи, как мне загрузить kvm-intel?

С уважением,

Лоран Ле Му


person Laurent Le Moux    schedule 05.04.2017    source источник
comment
Почему нет каталога /lib/modules/4.9.16-coreos-r1? Также не существует '/ lib / modules' ... Это специфично для контейнера Linux? Из того, что я прочитал, мне нужно установить заголовки linux, но 'apt-get --quiet install linux-headers-uname -r --yes' не работает со следующей ошибкой: E: невозможно найти пакет linux-headers-4.9.16-coreos -r1 Я пробовал использовать другое изображение / заголовок. "kvm-intel.ko" устанавливается, но не может быть загружен. Использование insmod -f не удается из-за «недопустимого формата модуля». Я застрял. Я был бы очень признателен, если бы кто-нибудь мог помочь.   -  person Laurent Le Moux    schedule 21.04.2017


Ответы (1)


Наконец-то я получил здесь ответ: https://groups.google.com/d/topic/coreos-user/mvmOhDMiwsU/discussion

По сути, пакеты виртуализации должны быть установлены вне экземпляра Docker. И, к сожалению, у меня нет контроля / доступа к нему, так как он автоматически запускается Gitlab CI runner.

Я могу (любезно) попросить установить эти пакеты по умолчанию: https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/2242

person Laurent Le Moux    schedule 25.04.2017