Androidエミュレーターとvirtualboxを同時に実行することはできません


104

Virtualboxを実行しているときはいつでも、Androidエミュレーターイメージを起動できません(逆も同様です)。AVDマネージャのエラーメッセージは

ioctl(KVM_CREATE_VM) failed: Device or resource busy
ko:failed to initialize KVM

どうすれば両方を同時に実行できますか?

それはUbuntu 64ビットであり、関連するすべてのソフトウェアは最新のリリースバージョンです。

回答:


40

kvmカーネルモジュールを削除すると( 'sudo rmmod kvm_intel kvm'を使用)、VirtualboxとAndroidエミュレーターを同時に実行できますが、そのようなセットアップでのAndroidエミュレーターのパフォーマンスは非常に悪いです。可能であれば、「sudo /etc/init.d/vboxdrv stop」を実行して、Virtualboxエミュレーターをシャットダウンし、ドライバー(vboxdrv)をアンロードすることをお勧めします。Googleは、Linuxに関するセクションのAndroidエミュレーターページでこの「解決策」を提案しています


9
アプリがデータをVirtualBox(Vagrant)で実行するために必要な私のバックエンドなので、それは良いオプションではありません:P
Richard de Wit

4
このソリューション#@%!は、両方を同時に実行する必要があるためです。私のHTTPDサービスはVirtual Boxにありますが、私のアプリケーションはAndroidにあります.. / meため息。では、Dev Serverを再び起動する時が来ました。
Eネットアーチ2017

1
別のオプションは、Androidエミュレーターと組み合わせてVirtualBoxの代わりにDockerを使用することです。
Matt Welke、2018

1
または、KVMでVagrantを実行します。
マイケルハンプトン

@MichaelHamptonに感謝します。vagrant-libvertをインストールしましたが、うまくいきました!
jchook

30

同じVirtualBoxの競合が発生しました。「x86」とは異なるABIを使用して解決しました(私の場合はarmeabi-v7a)。


既存のVMをシャットダウンするよりもはるかにエレガントです。ありがとう。
MonoThreaded

2
これを聞いて悲しみました。
MatBee

おそらくこの方法でエミュレータの実行速度は遅くなりますが、それはオプションです。
ToolmakerSteve

私の場合、(RDP用に)VirtualBox VMも実行する必要があるので、これは本当に良いアドバイスでした。
Csaba Toth

2
@rudolfbyker、答えは、CPU / ABI x86 / x86_64で実行されるエミュレータははるかに高速ですが、VitualBoxと同じKVM(カーネルベースの仮想マシン)を使用するというものです。、arm64のように、VirtualBoxのとの競合を他のCPUとのエミュレータを作成しませんが、エミュレータがあるたくさん遅くなります。
jayeffkay 2017年

16

VirtualBoxで実行していた仮想マシンを停止しました。これによりエラーが消えました。


これはFedora 20で私にとってうまくいきました。より大きなディスプレイ、より多くのRAM、Gnome 3ワークスペースを使用すると、バックグラウンドのどこかで別のマシンを実行していることを忘れがちです。killall virtualboxそれを行う必要があります。
Ray Foss、2015年

機能しますが、最善の解決策ではありません。両方を使用することができます(スタニスラフの回答を参照)
MonoThreaded

Dockerマシンと仮想ボックスドライバーを使用しているときに、Ubuntu 16でこの問題が発生しました。docker-machine stop machine-nameこのasnwerで提案されているように問題を解決してVMを停止
Benjamin Slabbert

VirtualBox GUIをシャットダウンするだけで、VMがうまく機能しないことがわかりました。私の場合、VBoxSVC、VBoxNetDHCP、VBoxXPCCOMIPCDなどのいくつかのvirtualboxプロセスがまだ実行されていました。top / htopで殺すことで問題は解決しました。
Babken Vardanyan

問題は、「両方を同時に実行するにはどうすればよいですか?」でした。
スティーブンM-ストライキ

5

Ubuntu 13.10でも同じ問題が発生しました。kvmおよびkvm_intelカーネルモジュールを削除してみてください。

これをする:

  1. すべてのエミュレーターを停止します。
  2. コマンドを実行: 'sudo rmmod kvm_intel kvm'

これらのカーネルモジュールがなければ、VirtualboxとAndroidエミュレーターは同時に動作できます。

ところで、モジュールが読み込まれる理由はわかりません。


16
警告:これは機能しますが、KVMカーネルモジュールを削除すると、カーネルモジュールなしでCPUのハードウェアアクセラレーションサポートが失われるため、Intel Androidイメージのパフォーマンスが大幅に低下します。
JustJohn 2013

1
@Tajchert:元に戻す: 'sudo modprobe kvm_intel kvm'
Splitlocked

x86 ...エミュレータはKVMモジュールなしで実行することを拒否しました。ええと。
Martlark、2016

両方のドライバーが必要です
user1121055 2018年

5

ついにこれに対する修正があります。

macOSの場合は次の手順に従います。

  1. Android Studioで[ツール]-> [Android]-> [SDKマネージャー]に移動します。

  2. 最新バージョンのIntel Emulator Accelerator HAXM(v6.1.1)がインストールされていることを確認しますAndroid Studioの設定パネル

  3. extras環境設定に表示されているAndroid SDKの場所のディレクトリに移動します。MacOSではこれを行うことができます:

    open ~/Library/Android/sdk/extras

  4. IntelHAXM_6.1.1.dmgを開き、マウントされたフォルダーでIntelHAXM_6.1.1.mpkgを開き、インストーラーの指示に従ってHAXMパッキングをインストールします。

Windowsの場合は次の手順に従います

  1. Android Studioで[ツール]-> [Android]-> [SDKマネージャー]に移動します。

  2. 最新バージョンのIntel Emulator Accelerator HAXM(v6.1.1)がインストールされていることを確認しますAndroid Studioの設定パネル

  3. extras環境設定に表示されているAndroid SDKの場所のディレクトリに移動します。何かのようなもの:

    C:\Users\<username>\AppData\Local\Android\sdk\extras

  4. そのディレクトリにはのようなファイルがありますintelhaxm-android.exe。それを実行します。


2
Ubuntu 16.04.3の修正はありますか?
サンダー

HAXMはネストされた仮想マシンをサポートしていません!
Jorgesys 2017

KVMはどうですか?どうすれば同じことができますか?
Vadim Kotov

これはネストされた仮想マシンについてではありません。このトピックの問題は、並列仮想マシンに関するものです。そしてこれは、動作しないことを全く意味がありません
ローター

Linuxのソリューションはありません。Linuxの使用については、運が悪い。これは、ビルドサーバーとしてウィンドウを選択する必要があることを意味します。
Lothar

4

CPT / ABI設定をx86から​​エミュレーター設定のアームに変更することもできます。


2
しかし、エミュレーターは地獄のように遅くなります...しかし、少なくとも両方を同時に実行することができます;)
biophonc

4

私はついに、標準のAndroidエミュレーターの代わりにGenymotionを使用して、この問題を廃止しました。この競合がないことに加えて、通常のエミュレータより数倍高速です。


これはフリーソフトウェアですか?
vishnu viswanath 2016年

@vishnu viswanath非営利目的のユースケースのみ。詳しくは、genymotion.com / legal / terms-and-conditionsの「ライセンス付与:制限付き」をご覧ください。つまり、このライセンスは個人使用に関連してのみエンドユーザーにのみ付与されます。エンドユーザーは個人であり、商業的および専門的な環境を除き、個人的および私的なニーズのためにアプリケーションをダウンロードする専門家ではありません。
mykolaj

1
genymotionがKVMを使用しなかったため、おそらくこれは消えました。安定していないため(ある時点で使用を開始するため)、パフォーマンスの高いソリューションでもありません。
Hi-Angel

このオプションをコメントアウトしていただきありがとうございます。Ubuntu 18.04に個人用のGenymotionをインストールして、VirtualBoxマシンを同時に使用できるようになりました:)
Fer B.

3

別の解決策は、vagrant -libvirtプラグインを使用してlibvirtでサポートされたvagrantを使用することです。


2

それも回避策ですが、皆が示唆するようにKVMを無効にするよりは間違いなく優れています。

代わりに、KVMでvirtualboxゲストを実行してください。たとえばkvmここでは、単にスクリプトを実行していますqemu-system-x86_64 -enable-kvm

kvm Win7.vdi -boot c -m 2G -vga qxl

これは...しかし、私は私の仮想イメージは、インターネットにとkeybordマッピングが全て台無しにされ、何らかの理由で接続するために取得する方法を見つけ出すことができない、私のために問題を解決した
MikeSchem

@MikeSchemええ、残念ながらKVM / QEMUでネットワークを構成するのは大変なことです。回答を書いたとき、ネットワークを稼働させる時間はありませんでした。なんらかの操作の後、Windowsゲストは、KVMでの起動時にBSODで落ち始め、VBで作業しているためです。
Hi-Angel


1

場合によっては、virtualboxマシンの稼働を維持する必要があるため、すべてのvirtualboxマシンを実行し続け、物理的なモバイルデバイスに切り替えて、エミュレーターではなくアプリケーションをテストします。

反応ネイティブまたは実際のandroid / iosデバイスを使用している場合は、expoを使用できます。


0

OPがVirtualBox + KVMを同時に要求したため、これはトピック外になる可能性がありますが、それでも回避策である可能性があります。Ubuntu18.10 x64でWindows 7とAVDを起動する方法を探していました。AVDのパフォーマンスは私にとって重要であるため、KVMをオフにするオプションはありません。Virtual Machine Manager(virt-managerパッケージ)を介してWindows 7をインストールしましたが、AVDとWindows 7の両方がハードウェアアクセラレーションされています。


0

これは、vagrantと2つのプラグイン「libvirt」と「mutate」を使用して、この問題をどのように解決したかです。

  1. 端末を開き、環境変数を設定します。

     export VAGRANT_DEFAULT_PROVIDER=libvirt
     export VAGRANT_HOME=/home/directoryToStoreVagrant/
     VBoxManage list vms
    
  2. ここで、「c1530713-aec2-4415-a6b5-b057928c7e5f」のような最後のコマンドから取得したコードをコピーして、以下で使用します。

    vagrantパッケージ--base c1530713-aec2-4415-a6b5-b057928c7e5f --output window7.box

     vagrant init window7
     vagrant up window7 --provider=libvirt 
     vagrant box list
    
  3. libvirtmutateなどのいくつかのvagrantプラグインをインストールする必要があります。Mutateは.boxをlibvirt VMに変換します:

    vagrant plugin install vagrant-libvirt vagrant plugin install vagrant-mutate

  4. vagrant boxをlibvirtに変換する:

    vagrant mutate window7_.box libvirt

  5. これで、迷惑なVMを初期化できます。エラーが解決しない場合は、Vagrantファイルを編集してください。私と同じように、config.vm.networkで始まる行のコメントを 外してから、以下のコマンドを実行します。

    vagrant up --provider=libvirt

これは私がこのエラーを完全に取り除くことができた方法です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.