Как включить kvm на андроид

Обновлено: 07.07.2024

Мой ноутбук поддерживает аппаратную виртуализацию (AMD SVM), и я знаю, что:

  • QEMU может использовать аппаратную виртуализацию через KVM;
  • Эмулятор Android во многом основан на QEMU.

Возникает естественный вопрос: могу ли я объединить два (Android + KVM) для повышения производительности в эмуляторе?

Да, ты можешь. Просто загрузите соответствующие пакеты процессоров Intel atom в Android SDK, и пусть ваш AVD будет использовать архитектуру процессора Intel atom. Эмулятор Android может даже использовать хост-процессор. Вот ссылка, как это сделать:

Эмулятор Google TV, ориентированный на x86, поддерживает виртуализацию в режиме KVM.

ARM пока нет. Я считаю, что в настоящее время работа над ним продолжается.

Не имеет непосредственного отношения к ответу, который вам нужен, но

  • используйте Run , когда работаете над своим интерфейсом, или как можно больше при кодировании (это намного быстрее по сравнению с отладкой, даже в 10 раз быстрее)
  • постарайтесь свести к минимуму запуски Debug , научитесь кодировать безупречно, поэтому используйте меньше отладки.
  • возможно, вы уже знаете, что вам не нужно закрывать эмулятор для каждого сеанса запуска, поэтому оставьте его открытым.
  • перезапустите Eclipse через час использования, но оставьте эмулятор открытым. Eclipse перезапустить быстрее, чем эмулятор.
  • установите для Eclipse значение запомнить последний запускаемый проект, поэтому запуск выполняется всего одним щелчком мыши

По моему опыту, это намного лучше, чем эмулятор Android SDK, по крайней мере, на Windows и Mac.

Для Linux вы должны иметь возможность использовать VirtualBox для Linux, чтобы использовать AndroidVM. Поскольку это в основном файл OVA, вы сможете использовать другие клиенты виртуализации по мере необходимости.

Интересно то, что это НЕ эмуляция ARM, это Android на x86 . у которого есть свои плюсы и минусы, но определенно помогает избавиться от необходимости покупать тонны устройств, если вы можете провести первоначальное тестирование различных типов на виртуальных машинах, поскольку Android 4.1 обычно не слишком сильно модифицируется производителями телефонов и планшетов ARM и x86 и т. Д. (IMO).

Вы можете запустить Android-x86 в QEMU с KVM (или даже в VirtualBox). Я не уверен, насколько легко было бы настроить его для разработки, но он должен работать немного быстрее. Кроме того, Intel работает над установкой Android на свои чипы x86, так что это Надеюсь, в будущем станет легче.

Обновление: мне удалось заставить его работать в VirtualBox, за исключением того, что на некоторых сайтах происходит сбой веб-браузера. Поскольку я делал веб-приложение, это не помогло. Однако он был намного быстрее стандартного эмулятора Android,

В данной статье я постараюсь описать пример инфраструктуры для автотестов Android приложений (mobile automation), а именно, среду для проведения тестранов UI автотестов на эмуляторе Android девайса в виртуальной среде.

Требования:

Для Android эмулятора нужна поддержка Intel Virtualization Technology или AMD Virtualization. Поэтому часто тестировщик сталкивается с необходимостью запуска тестранов только в нативной среде ПК с прямым доступом к центральному процессору.

В этом случае схема получается такая:


Трудности:

Невозможно легко пересоздать среду эмулятора.

Среда не создаётся перед проведением тестирования, и после проведения не удаляется, поэтому среда может влиять на тестируемое приложение.

Починка и настройка среды занимает много времени.

Предлагаемое решение в данной статье:

Создать VM с использованием возможностей nested virtualization VirtualBox (более подробное описание технологии в этой статье).

Пробросить поддержку Intel-VT или KVM внутрь созданной виртуальной машины.

Изнутри VM создать и запустить Android эмулятор девайса.

Провести тестран UI тестов приложения.

После проведения тестирования уничтожить VM.

В этом случае схема получится такая:


Предполагаемые преимущества:

VM можно автоматически создавать перед проведением тестирования, а после окончания уничтожать. В таком случае каждый новый тестран будет проведен в идеально чистых условиях.

Уменьшится время поддержки среды и управляющего ПО, так как не нужно каждый раз руками ничего устанавливать и чинить неисправности инвайронмента.

В настоящей статье будет использоваться оборудование:

процеcсор: Intel i5-1035G1

в BIOS включена поддержка виртуализации процессора

Шаг 1: Установка ПО на нативную OS

Отдельно обращу внимание на управление машиной. Будем использовать протокол VNC для создания удобного удаленного рабочего стола. Протокол универсальный, для Linux, Windows, Mac и т.д.

x11vnc сервер

Запуск с параметрами:

Установка VirtualBox

Вводим в командной строке:

Создание VM

Мы пойдем по самому простому пути и создадим VM из интерфейса VirtualBox с такими характеристиками. В дальнейшем создание VM будет code-first

Количество CPU - не больше половины имеющихся на Вашем процессоре (в идеале половина)

Оперативная память - будет достаточно 4Gb


Nested Virtualization можно также включить из командной строки:

Далее переходим в саму VM.

Шаг 2: Установка ПО на VM

В первый раз мы установим всё руками. В дальнейшем весь установочный сценарий будет помещен в Packer, что позволит нам создавать VM с нужными настройками каждый раз перед началом тестирования.

Устанавливаем последний образ Ubuntu с официального сайта.

Установка KVM

Установка Android command line tools

Проверяем, что sdkmanager работает и Android SDK доступен:

Устанавливаем Android tools

Устанавливаем Git и клонируем проект

В данном примере я использую пустой проект мобильного Android приложения. В нём уже есть дефолтный интеграционный тест. Нам этого будет вполне достаточно.

Шаг 3: Проведение тестирования проекта на созданном Android эмуляторе

ADB видит подключенный к нему эмулятор:


Ура! Тест пройден!


Негативный тест

Чтобы убедится, в том что именно позволило нам сбилдить тесты, мы сделаем один негативный тест и воспроизведем запуск эмулятора в обычной VM.

Переустановка VirtualBox на родительской машине (чтобы избежать ошибочное сохранение конфигов)

VM мы создаём без проброса виртуализации и с одним CPU:


В созданной VM мы не устанавливаем:

Остальные шаги аналогичны шагу №2 с установкой ПО. Попробуем еще раз наш тестран. Обратите внимание, что ADB также видит эмулятор:


Ура! Тест не пройден! Никогда еще так не радовался проваленному тестрану:


Падает PackageManager, как и обычно при запуске из виртуальной среды без аппаратной поддержки процессора:


Заключение

Мы сделали первый этап построения инфраструктуры для проведения автотестов Android приложений. Следующим этапом должно стать упаковка описанного выше сценария в Packer (ссылка на официальный сайт) который умеет работать с образами VirtualBox. Затем весь сценарий мы попробуем запустить из CI Jenkins. Если учесть, что плагин для него уже порядком устарел, то будет очень интересно.

Все результаты опубликую, как пополнения к этой статье.

В идеале, у нас должна получится code-first инфраструктура для тестрана UI и интеграционных автотестов для Android приложений, которую можно поднять на любом современном офисном ПК, которая работает автономно, билдит тесты на родных Android эмуляторах и есть не просит.

В этой статье мы рассмотрим, как настроить и использовать функцию удаленного управления компьютерами Intel AMT KVM . Технология Intel AMT (Active Management Technology) является частью комплекса Intel vPro , и администраторам удаленно управлять компьютерами пользователей, даже если на них не запущена / не работает / не установлена операционная система, или компьютер выключен позволяет (на самом деле это только одна из функций AMT). Как правило такое удаленное управление сводится к использованию возможностей KVM (удаленный просмотр экрана пользователя, управления его клавиатурой, мышью и питанием).

KVM в Intel vPro AMT

Поддержка технологии удаленного управления KVM появилась в Intel vPro AMT 6.x на компьютерах с процессорами i5 и i7 на чипсете Intel с поддержкой vPro (как правило название чипсета начинается с Q) со встроенным графическим чипсетом Intel.

Удаленное управление реализуется за счет наличия встроенного сервера VNC. Любой совместимый VNC клиенты может использоваться для удаленного подключения и управления компьютером через AMT.

Как включить KVM на Intel vPro AMT

По умолчанию возможность удаленного управления через AMT KVM на компьютерах с поддержкой Intel vPro отключена. Включить ее можно через меню Intel MEBx . Попасть в это меню можно после отображения экрана запуска BIOS/UEFI с помощью сочетания клавиш Ctrl+P или F12 (на некоторых компьютерах можно скрыть это меню с помощью настроек BIOS).

В нашем случае, чтобы попасть в меню MEBx, на ноутбуке Dell Latitude E7270 после включения компьютера нужно нажать кнопку F12. На экране выбора режима загрузки нужно выбрать Intel(R) Management Engine BIOS Extension (MEBx).

  • Затем нужно выбрать пункт MEBx Login и нажать Enter.
  • Укажите пароль для входа в режим Intel(R) ME (по умолчанию это admin)

Вам сразу же будет предложено указать новый пароль. Требования к паролю: не менее 8 символов, разный регистр, наличие цифр и спецсимволов.

  • После смены пароля выберите меню настройки Intel(R) AMT configuration .
  • Измените значение Manageability Feature Selection на Enabled
  • Активируйте функции в разделе SOL/Storage Redirection/KVM

Перейдите в раздел User Consent и измените параметр User Opt-in с KVM на None (отключится запрос кода-подтверждения пользователем).

Теперь нужно включить доступ по сети. Выберите пункт Activate Network Access. И подтвердите включение клавишей Y.

  • Выберите пункт меню MEBx Exit и нажмите Y для сохранения изменений. Компьютер перезагрузится.

Теперь, если при загрузке нажат кнопку F12, вы увидите новую опцию Intel(R) Fast Call for Help. Выберите ее и нажмите Enter.

Рассмотрев VNC-клиенты для работы с Intel AMT KVM под Windows и под Linux, было бы наглостью не посмотреть, что с ними для самой популярной ОС в мире. И хотя управление клавиатурой и мышкой (что и обозначают первые и последняя буквы в "KVM") на планшете (не говоря уже про телефон) да ещё и под Android - та ещё задача, однако "когда нужно - и не так раскорячишься".

Было перебрано первых три десятка предложений Google Play Market для приложений на запрос VNC-client. Выбирались только бесплатные (в принципе, после третьего десятка в основном и шли уже лишь платные). Не работающие с Intel AMT KVM (и/или не имеющие возможности нужной настройки) отбрасывались. Оказалось, совсем не так много рабочих, а "нормальных" (в разных смыслах и в проекции на работу с AMT KVM) - вообще единицы.

В порядке представления их в Google Play Market "финалистами" отбора на звание лучшего бесплатного Android-приложения для Intel AMT KVM оказались:

Сравнить их популярности не так просто, но всё же, Google Trends указывает на главные особенности:

AMT VNC clients compare

Первые два самые старые, потому законно занимают первые два места при поиске любого Android-приложения, связанного с VNC. Последние два - относительно новые, но вполне и вполне конкурентные (судя, опять же, по Google Trends) на текущий момент. Честно говоря, про их существование я и не знал до написания этой статьи и крайне рад, что удалось их найти. Почему - читаем дальше.

AMT RealVNC Android

RealVNC Viewer for Android и Intel AMT KVM

Безусловно самый популярный VNC-клиент - от RealVNC.
Имеет весьма гуманный интерфейс, всё достаточно продумано. Сначала создаём новое соединение:

AMT RealVNC Android create connection

Вводим адрес AMT-компьютера, также можно сразу указать пароль. Другие поля для AMT KVM не потребуются. Соединяемся и.

AMT RealVNC Android error reading an RFB packet

Вроде всё красиво началось, но спустя менее секунды - ошибка "reading an RFB packet".
Дело понятное, лезем в настройки, меняем на 8 бит:

AMT RealVNC Android Low Quality

Переподключаемся и теперь ошибки нет:

AMT RealVNC Android OK

В результате получаем возможность управлять компьютером через AMT KVM. Однако сообразить, как управлять мышкой пальцем - совсем и совсем не просто. Понятно с масштабированием - двумя пальцами для больше-меньше:

AMT RealVNC Android scale

Также с управлением клавишами большой набор возможностей - всё относительно понятно, однако привыкнуть к мышкопальцеинтерфейсу - соовсем непросто.

AMT RealVNC Android touch mouse

Говорить о скорости работы при таком неудобстве управления не приходится.
В информации о соединении увидим:

Так и есть, подключение по "закрытому" протоколу RFB 4.0, т.е. "должно быть быстро" (т.к. это не получится оценить на практике).

androidVNC Viewer for Android и Intel AMT KVM

AMT androidVNC

Другой популярнейший монстр-старожил из Android VNC-клиентов с таким же названием.
Интерфейс androidVNC много проще, в том числе без поддержки автоповорота экрана.

AMT androidVNC interface

По умолчанию стоит 64 цвета и с такими настройками по дефолту всё сразу соединяется и работает:

AMT androidVNC 64 colors

Однако 256 цветов также поддерживается и картинка становится "более привычная":

AMT androidVNC 256 colors

Максимальные настройки цветности (24 бит), доступные в androidVNC - не поддерживаются.

Как и RealVNC, данный ветеран содержит большое количество менюшек для пальце-мыше-клавиатуро-управления:

AMT androidVNC menus

Настолько большое, что они не все влезли на один экран:

AMT androidVNC menus2

Приспособиться управлять всем этим хозяйством - от "весьма непросто" до "невозможно". В любом случае, "дружелюбным" и "очевидным" такой интерфейс назвать сложно. Однако важно, что androidVNC таки работает с Intel AMT KVM, при чём сразу.

AMT akRDC

akRDCFree VNC Viewer и Intel AMT KVM

Следующий достойный для рассмотрения VNC-клиент нашёлся лишь на третьем десятке перебора, когда я уже почти отчаялся, перепробовав кучу не работающих, откровенной рекламной и клонообразной ерунды. Обнаружилась очень приятная во многих отношениях VNC-клиентская программулина - akRDC.
Интерфейс akRDC незамысловат, но весьма приятен:

AMT akRDC interface

При создании нового соединения всё подробно прокомментировано и понятно:

AMT akRDC interface new connection

Соединяется сразу и без проблем, при чём в Full Color:

Масштабирование и вообще управление более очевидно:

AMT akRDC scale

Совсем скоро, приноровившись, можно вполне недурно управлять клавомышепальцем:

AMT akRDC control

Присутствует немалое количество дополнительных настроек:

AMT akRDC settings

В общем, на фоне предыдущих двух "бесплатных VNC-монстров" - akRDC просто находка.

AMT Remote Ripple

Remote Ripple VNC-клиент и Intel AMT KVM

Бесплатная версия VNC-клиента Remote Ripple попалась в самом конце перебора. Потому особо было приятно увидеть её возможности.
Интерфейс нового соединения лаконичен и настроен на работу:

AMT Remote Ripple new connection

Ничего лишнего, вводим IP компьютера, 5900 стоит по умолчанию, далее запросится пароль:

AMT Remote Ripple password

И получаем красивую (полноцветную) картинку (при этом с мышкой!):

AMT Remote Ripple full color

И действительно, зачем занимать ценное место неочевидными менюшками, если всё можно прикрепить к мышке!
Масштабирование работает в широких пределах и не привязано к "углу экрана":

AMT Remote Ripple scale

Т.е. его можно и центрировать и сдвигать в нужное место в широких пределах.
Управление интуитивно понятно, "кликнуть правой клавишей" - проще простого:

AMT Remote Ripple control

В общем, сравнивать Remote Ripple с "самыми популярным" RealVNC и androidVNC просто жестоко (и не в пользу "монстров").
Поигравшись и впервые получив удовольствие от управление компьютером с планшета - даже задумался про платную версию:

Резюме по опробованным бесплатным VNC-клиентам под Android для работы с Intel KVM:

Читайте также: