Автор Тема: Android KVM Linux Installation  (Прочитано 6492 раз)

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Android KVM Linux Installation
« : 18.03.2017 20:28:03 »
Ставлю Android Studio 2.3 для Linux.

При первом запуске и настройке получаю пространный намек о том, что для запуска эмулятора можно использовать KVM и это значительно ускоряет эмуляцию:


Ссылка Android KVM Linux Installation ведет на какой-то мусор (как в принципе запускать приложения в эмуляторе). На этой странице, казалось бы, есть полезная ссылка на системные требования. Но она касается только оборудования.

Покопавшись, нашел статью Configuring VM acceleration on Linux. Разумеется, там дан пример только по Ubuntu.

Ничего не поняв я наставил наугад libvirt-kvm и libvirt-qemu, qemu-client. Что-то получилось, т.к. тестовая команда из статьи для Ubuntu дает результат под обычным пользователем, без sudo:
$ virsh list --all
 ID    Имя                         Статус
----------------------------------------------------

К сожалению, Android Studio чего-то не хватает все равно. Этот экран вылезает снова и снова. Толи я не настроил KVM, толи не понял что от меня хочет "студия".

Я и перезаходил, и перезагружался.

Что нужно, чтобы эмуляция работала с KVM?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Android KVM Linux Installation
« Ответ #1 : 18.03.2017 23:03:19 »
Ставлю Android Studio 2.3 для Linux.

При первом запуске и настройке получаю пространный намек о том, что для запуска эмулятора можно использовать KVM и это значительно ускоряет эмуляцию:


Все операционные системы начиная с 8-мибиток требуют мало-мальских знаний английского, по крайней мере для понимания смысла того о чём сообщает система :-)

Оно не намекает, оно прямо говорит:
(вольно, грубо и сходу)
Мы детектировали что ваша система запустила Андроид эмулятор в accelerated performance mode.
Linux-базированные системы поддерживают virtual machine акселерацию через программный пакет KVM (Kernel-mode Virtual Machine).

Ваш процессор конечно же поддерживает виртуализацию?
https://www.linux-kvm.org/page/Main_Page
См. спецификацию на процессор.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Android KVM Linux Installation
« Ответ #2 : 18.03.2017 23:22:33 »
Цитировать
https://www.linux-kvm.org/page/Main_Page

Kernel Virtual Machine

KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko.
Цитировать
https://ark.intel.com/

Технология виртуализации Intel® (VT-x) ‡

Технология Intel® Virtualization для направленного ввода/вывода (VT-x) позволяет одной аппаратной платформе функционировать в качестве нескольких «виртуальных» платформ. Технология улучшает возможности управления, снижая время простоев и поддерживая продуктивность работы за счет выделения отдельных разделов для вычислительных операций.
Цитировать
Intel® VT-x с таблицами Extended Page Tables (EPT) ‡

Intel® VT-x с технологией Extended Page Tables, известной также как технология Second Level Address Translation (SLAT), обеспечивает ускорение работы виртуализованных приложений с интенсивным использованием памяти. Технология Extended Page Tables на платформах с поддержкой технологии виртуализации Intel® сокращает непроизводительные затраты памяти и энергопотребления и увеличивает время автономной работы благодаря аппаратной оптимизации управления таблицей переадресации страниц.
Цитировать
Технология виртуализации Intel® для направленного ввода/вывода (VT-d) ‡

Технология Intel® Virtualization Technology для направленного ввода/вывода дополняет поддержку виртуализации в процессорах на базе архитектуры IA-32 (VT-x) и в процессорах Itanium® (VT-i) функциями виртуализации устройств ввода/вывода. Технология Intel® Virtualization для направленного ввода/вывода помогает пользователям увеличить безопасность и надежность систем, а также повысить производительность устройств ввода/вывода в виртуальных средах.

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Re: Android KVM Linux Installation
« Ответ #3 : 18.03.2017 23:34:20 »
Мы детектировали что ваша система запустила Андроид эмулятор в accelerated performance mode.
По моим сведениям "We have detected that your system can run the Android emulator in an accelerated perfomance mode." означает только то, что моя система может запустить, а не уже запустила эмуляцию в режиме ускорения.

Ваш процессор конечно же поддерживает виртуализацию?
Несомненно. Я уже использую эти возможности в VirtualBox. Да и проверился я по статье в Ubuntu. Плюс, до Linux на ПК стояла Windows 8, которая тоже без этого работать не будет.

https://www.linux-kvm.org/page/Main_Page
На этой странице я был. Там ни слова о необходимости Extended Page Tables. Вот этого в моем процессоре нет. Так и не требуется оно.

Мой вопрос, все-таки, относится к процедуре установки указанной IDE в AltLinux так, чтобы она подхватила KVM.

Впрочем, я мог зря поднять волну, а нужно было просто продолжить процедуру настройки и надавить на кнопку Finish. IDE приступает к загрузке 1,5ГБ. Посмотрим что из этого выйдет.
« Последнее редактирование: 18.03.2017 23:41:18 от kiav »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Android KVM Linux Installation
« Ответ #4 : 19.03.2017 00:08:57 »
Да, can я недосмотрел. Извиняюсь.

А документация самого эмулятора что-нибудь говорит?

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Re: Android KVM Linux Installation
« Ответ #5 : 19.03.2017 00:13:19 »
Продолжил установку, закачалось все. Создал пустой проект и сунулся по инструкции в AVD Manager:


Насчет VT-x у меня сомнений нет. Это есть и в BIOS включено. Значит не настроен KVM.
Судя по претензиям, нужно настроить модуль ядра.

$ lsmod | grep kvm
$ modprobe -a kvm
$ lsmod | grep kvm
kvm                   491520  0

Это ничего не решило. /dev/kvm не обнаружен.

А документация самого эмулятора что-нибудь говорит?
А вот этого я пока не нашел.

Но есть утилитка:
$ ./emulator-check cpu-info accel
cpu-info:
146
Intel CPU|Virtualization is supported|64-bit CPU|                                                                                                                                   
cpu-info                                                                                                                                                                           
accel:                                                                                                                                                                             
8                                                                                                                                                                                   
/dev/kvm is not found: VT disabled in BIOS or KVM kernel module not loaded                                                                                                         
accel
Придется таки посмотреть BIOS, мало ли что.
« Последнее редактирование: 19.03.2017 00:17:14 от kiav »

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Re: Android KVM Linux Installation
« Ответ #6 : 19.03.2017 00:27:33 »
В BIOS все включено:


Так что дело в настройках ОС.

$ rpm -qa | grep kvm
libvirt-kvm-1.0.4-alt2
kernel-modules-kvm-un-def-4.1.33-alt0.M70P.1

$ rpm -qa | grep libvirt
libvirt-kvm-1.0.4-alt2
libvirt-daemon-driver-nwfilter-1.0.4-alt2
libvirt-daemon-driver-secret-1.0.4-alt2
libvirt-daemon-driver-qemu-1.0.4-alt2       
libvirt-client-1.0.4-alt2                   
libvirt-qemu-1.0.4-alt2                     
libvirt-daemon-config-nwfilter-1.0.4-alt2   
libvirt-daemon-driver-storage-1.0.4-alt2     
libvirt-daemon-config-network-1.0.4-alt2     
libvirt-daemon-1.0.4-alt2                   
libvirt-qemu-common-1.0.4-alt2               
libvirt-daemon-driver-nodedev-1.0.4-alt2     
libvirt-daemon-driver-network-1.0.4-alt2

Нужен был еще один модуль ядра - kvm_intel

Добавил пользователя в группу vmusers (посмотрел по /dev/kvm)
Групп libvirtd и kvm в системе нет.

WARN - run.EmulatorConnectionListener - Emulator not ready yet, dev.bootcomplete = null
Это пишет IDE. Окно эмулятора есть, а содержимого в нем нет.

У меня идеи закончились.

Добавлено:

Просто пересоздал в AVD Manager (а его запускал из IDE) устройство и запустил из командной строки:
$ ./emulator @Nexus_5X_API_25 -gpu on -qemu -enable-kvm
emulator: WARNING: encryption is off
Creating filesystem with parameters:
    Size: 69206016
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 4224
    Inode size: 256
    Journal blocks: 1024
    Label:
    Blocks: 16896
    Block groups: 1
    Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
« Последнее редактирование: 19.03.2017 02:34:13 от kiav »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 167
    • Домашняя страница
Re: Android KVM Linux Installation
« Ответ #7 : 19.03.2017 11:36:12 »
Нужно модуль поддержки kvm загрузить. А он находится в отдельном пакете ядерных модулей: kernel-modules-kvm-std-def (если ядро std-def). И помните, что ядро обновляется командой update-kernel. А при установке актуального модуля потребуется актуальное ядро.
Андрей Черепанов (cas@)