एंड्रॉइड एमुलेटर और वर्चुअलबॉक्स एक ही समय में नहीं चल सकते


104

जब भी मेरे पास वर्चुअलबॉक्स चल रहा होता है, मैं एंड्रॉइड एमुलेटर इमेज (और इसके विपरीत) शुरू नहीं कर सकता। AVD प्रबंधक में त्रुटि संदेश है

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

मैं एक ही समय में दोनों को कैसे चला सकता हूं?

यह एक Ubuntu 64 बिट है, सभी शामिल सॉफ्टवेयर नवीनतम जारी संस्करण का है।

जवाबों:


40

Kvm कर्नेल मॉड्यूल ('sudo rmmod kvm_intel kvm' का उपयोग करके) को वर्चुअलबॉक्स और एंड्रॉइड एमुलेटर को एक ही समय में चलाना संभव बनाता है लेकिन इस तरह के सेटअप में एंड्रॉइड एमुलेटर का प्रदर्शन बेहद खराब है। यदि संभव हो तो वर्चुअलबॉक्स एमुलेटर को बंद करना और उसके ड्राइवर (vboxdrv) को 'sudo /etc/init.d/vboxdrv stop' चलाकर उतारना बेहतर है। Google लिनक्स के बारे में अपने एंड्रॉइड एमुलेटर पेज पर इस "समाधान" का सुझाव देता है ।


9
अनुप्रयोग के लिए मेरे बैकएंड को VirtualBox (Vagrant) पर डेटा चलाने की आवश्यकता है, इसलिए यह एक बढ़िया विकल्प नहीं है: P
रिचर्ड डे विट

4
यह समाधान # @%! 'इस तथ्य के कारण है कि मुझे एक ही समय में चलाने की आवश्यकता है .. मेरी HTTPD सेवा वर्चुअल बॉक्स में है, जबकि मेरा ऐप एंड्रॉइड में है .. / me sighs। लगता है, देव सर्वर को फिर से आग लगाने का समय आ गया है।
ई नेट आर्क

1
एंड्रॉइड एमुलेटर के साथ संयोजन में वर्चुअलबॉक्स के बजाय डॉकर का उपयोग करने का एक और विकल्प हो सकता है।
मैट वेल्कम

1
या केवीएम के साथ वैग्रैंट चलाएं।
माइकल हैम्पटन

धन्यवाद @ मिचेल हैम्पटन मैंने आवारा-लिबरेट स्थापित किया और यह काम कर गया!
jchook

30

मुझे वही वर्चुअलबॉक्स संघर्ष मिला। "X86" (मेरे मामले में armeabi-v7a) से अलग ABI का उपयोग करके इसे हल किया


मौजूदा वीएम को कम करने की तुलना में बहुत अधिक सुरुचिपूर्ण। धन्यवाद।
मोनो

2
यह सुनकर दुख हुआ।
MatBee

संभवतः एमुलेटर धीरे-धीरे इस तरह से चलेगा, लेकिन यह एक विकल्प है।
टूलमेकरसेव

मेरे मामले में मुझे VirtualBox VM को (RDP के लिए) चलाने की आवश्यकता है, इसलिए यह वास्तव में अच्छी सलाह थी।
Csaba Toth

2
@rudolfbyker, जो उत्तर कहता है, वह है कि CPU / ABI x86 / x86_64 के साथ चलने वाले एमुलेटर बहुत तेज़ हैं, लेकिन VitualBox के रूप में उसी KVM (कर्नेल-आधारित वर्चुअल मशीन) का उपयोग करता है। VirtualBox के साथ संघर्ष arm64 की तरह एक और सीपीयू के साथ एक एमुलेटर बनाना,, नहीं, लेकिन एमुलेटर है एक बहुत धीमी।
ज्येफकेय

16

मैंने उन वर्चुअल मशीनों को बंद कर दिया जो मैंने VirtualBox के साथ चल रहे थे। इससे त्रुटि गायब हो गई।


यह मेरे लिए फेडोरा 20 में काम करता है। बड़े डिस्प्ले, अधिक रैम और गनोम 3 वर्कस्पेस के साथ, यह भूलना आसान है कि आप पृष्ठभूमि में कहीं और मशीन चला रहे हैं। killall virtualboxकरना चाहिए।
रे फॉस

काम करता है लेकिन सबसे अच्छा समाधान नहीं है। आप उन दोनों को देख सकते हैं (स्टैनिस्लाव का जवाब देखें)
मोनोअट्रेड

डॉक मशीन और वर्चुअल बॉक्स ड्राइवरों का उपयोग करते समय मेरे पास उबंटू 16 के साथ यह मुद्दा था। साथ VMs रोक docker-machine stop machine-nameके रूप में इस asnwer में सुझाव समस्या का समाधान हो
बेंजामिन Slabbert

वर्चुअलबॉक्स GUI को बंद करने की कोशिश करता है और VMs चाल नहीं चलेगा। मेरे मामले में मेरे पास कई वर्चुअलबॉक्स प्रक्रियाएँ अभी भी चल रही थीं: VBoxSVC, VBoxNetDHCP, VBoxXPCCOMIPCD। शीर्ष / htop में उन्हें मारने से समस्या हल हो गई।
बब्बन वर्दयान

सवाल था 'मैं एक ही समय में दोनों को कैसे चला सकता हूं?'
स्टीफन एम-स्ट्राइक-

5

मुझे उबंटू 13.10 पर भी यही समस्या थी। Kvm और kvm_intel कर्नेल मॉड्यूल को निकालने का प्रयास करें।

यह करने के लिए:

  1. सभी एमुलेटर बंद करो।
  2. रन कमांड: 'sudo rmmod kvm_intel kvm'

इन कर्नेल मॉड्यूल के बिना वर्चुअलबॉक्स और एंड्रॉइड एमुलेटर एक ही समय में काम कर सकते हैं।

BTW, मुझे नहीं पता कि मॉड्यूल क्यों लोड किए जाते हैं।


16
चेतावनी का एक शब्द: जब यह काम करता है, तो केवीएम कर्नेल मॉड्यूल को हटाने से इंटेल एंड्रॉइड छवि के साथ प्रदर्शन में काफी कमी आएगी, क्योंकि आप कर्नेल मॉड्यूल के बिना सीपीयू के हार्डवेयर त्वरण समर्थन को खो देते हैं।
जस्टजॉन

1
@ टेटर्ट: रिवर्ट करने के लिए: 'सुडो मोडप्रोएब kvm_intel kvm'
स्प्लिट्लोकड

x86 ... एमुलेटर ने केवीएम मॉड्यूल के बिना चलने से इनकार कर दिया। बाह।
मार्टलार्क

दोनों ड्राइवरों की आवश्यकता है
user1121055

5

अंत में इसके लिए एक फिक्स है।

MacOS के लिए इन चरणों का पालन करें :

  1. एंड्रॉइड स्टूडियो में टूल -> एंड्रॉइड -> एसडीके मैनेजर पर जाएं

  2. पुष्टि करें कि आपके पास Intel एमुलेटर एक्सेलेरेटर HAXM का नवीनतम संस्करण स्थापित है (v6.1.1) एंड्रॉइड स्टूडियो में प्राथमिकताएं पैनल

  3. extrasवरीयताओं में प्रदर्शित एंड्रॉइड एसडीके स्थान की निर्देशिका पर जाएं । MacOS पर आप ऐसा कर सकते हैं:

    open ~/Library/Android/sdk/extras

  4. IntelHAXM_6.1.1atalog को खोलकर HAXM पैकिंग स्थापित करें, फिर IntelHAXM_6.1.1.mpkg को माउंट किए गए फ़ोल्डर में खोलें, और इंस्टॉलर निर्देशों का पालन करें।

विंडोज के लिए इन चरणों का पालन करें :

  1. एंड्रॉइड स्टूडियो में टूल -> एंड्रॉइड -> एसडीके मैनेजर पर जाएं

  2. पुष्टि करें कि आपके पास Intel एमुलेटर एक्सेलेरेटर HAXM का नवीनतम संस्करण स्थापित है (v6.1.1) एंड्रॉइड स्टूडियो में प्राथमिकताएं पैनल

  3. extrasवरीयताओं में प्रदर्शित एंड्रॉइड एसडीके स्थान की निर्देशिका पर जाएं । कुछ इस तरह:

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

  4. उस डायरेक्टरी में कुछ इस तरह की फाइल होती है intelhaxm-android.exe। चलाओ।


2
क्या उबंटू के लिए भी एक तय है 16.04.3?
सैंडर्स

HAXM वर्चुअल मशीन नेस्टेड समर्थन नहीं करता है!
जोर्जेस

KVM के बारे में क्या? मैं ऐसा कैसे कर सकता हूं?
वादिम कोटोव

यह नेस्टेड वर्चुअल मशीन के बारे में नहीं है। इस विषय में समस्या कंधे से कंधा मिलाकर चलने वाली आभासी मशीनों की है। और यह बिल्कुल समझ में नहीं आता है कि यह काम नहीं करना चाहिए,
लोथर

और लिनक्स के लिए कोई समाधान नहीं है। लिनक्स उपयोग के लिए फिर से बुरी किस्मत। इसका मतलब यह है कि मुझे अपने बिल्ड सर्वर के रूप में अब विंडोज़ चुनना है।
लोथर

4

आप CP86 / ABI सेटिंग को x86 से हाथ से एमुलेटर सेटिंग्स में भी बदल सकते हैं।


2
लेकिन तब एमुलेटर नरक के रूप में धीमा होने जा रहा है ... लेकिन कम से कम आप एक ही समय में दोनों चला सकते हैं;)
बायोफोंक

4

मैंने अंत में मानक एंड्रॉइड एमुलेटर के बजाय Genymotion का उपयोग करके इस समस्या को अप्रचलित बना दिया। इस संघर्ष के नहीं होने के अलावा, यह सामान्य एमुलेटर की तुलना में कई गुना तेज है।


यह एक मुफ्त सॉफ्टवेयर है?
विष्णु विश्वनाथ २

@vishnu viswanath केवल गैर-वाणिज्यिक उद्देश्य के मामलों के लिए। यहाँ और पढ़ें genymotion.com/legal/terms-and-conditions "लाइसेंस दी गई: लिमिटेड" के नीचे। जो कहता है: यह लाइसेंस केवल अंतिम उपयोगकर्ता को और विशेष रूप से व्यक्तिगत उपयोग के संबंध में दिया जाता है, अंतिम उपयोगकर्ता एक व्यक्ति है, और एक पेशेवर नहीं है, जो वाणिज्यिक और व्यावसायिक वातावरण को छोड़कर, व्यक्तिगत और निजी जरूरतों के लिए आवेदन डाउनलोड करता है।
मायकोलाज

1
यह शायद गायब हो गया क्योंकि जीनोमिशन केवीएम का उपयोग नहीं करता था। न तो स्थिर (क्योंकि कुछ बिंदु पर वे इसका उपयोग शुरू करने वाले हैं) , और न ही निष्पादन समाधान।
हाय-एंजेल

इस विकल्प पर टिप्पणी करने के लिए धन्यवाद। मैं Ubuntu १ Gen.०४ में व्यक्तिगत उपयोग के लिए Genymotion स्थापित करूँगा और अब मैं एक ही समय में अपनी VirtualBox मशीनों का उपयोग कर सकता हूँ :)
Fer B.


2

यद्यपि यह या तो एक वर्कअराउंड है, लेकिन निश्चित रूप से केवीएम को अक्षम करने से बेहतर है जैसा कि हर कोई सुझाव दे रहा है।

इसके बजाय KVM में virtualbox अतिथि चलाएं। उदाहरण के लिए ( kvmयहाँ सिर्फ एक स्क्रिप्ट चल रही है qemu-system-x86_64 -enable-kvm) :

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

इससे मेरे लिए समस्या हल हो गई, हालाँकि मैं यह नहीं जान सकता कि इंटरनेट से जुड़ने के लिए अपनी आभासी छवि कैसे प्राप्त करूँ और किसी कारण से
कीबर्ड

@MikeSchem हाँ, दुर्भाग्य से KVM / QEMU में एक नेटवर्क को कॉन्फ़िगर करना एक बड़ी बात है। वापस जब मैंने उत्तर लिखा तो मुझे नेटवर्क अप करने में समय नहीं लगा। क्योंकि कुछ जोड़-तोड़ के बाद भी Windows अतिथि KVM में स्टार्ट अप पर BSOD के साथ गिरने लगा, जबकि अभी भी VB में काम कर रहा है।
हाई-एंजेल


1

कुछ मामलों में, हमें वर्चुअलबॉक्स मशीनों को चालू रखने की आवश्यकता है इसलिए सभी वर्चुअलबॉक्स मशीनों को चालू रखें, एमुलेटर के बजाय अपने आवेदन का परीक्षण करने के लिए भौतिक मोबाइल डिवाइस पर स्विच करें।

आप एक्सपो का उपयोग कर सकते हैं यदि आप प्रतिक्रिया-मूल या अपने वास्तविक एंड्रॉइड / आईओएस डिवाइस के साथ कर रहे हैं।


0

यह इस तथ्य के कारण विषय से बाहर हो सकता है, क्योंकि ओपी ने एक ही समय में वर्चुअलबॉक्स + केवीएम का अनुरोध किया था, लेकिन फिर भी, यह वर्कअराउंड हो सकता है: मैं उबंटू 18.10 x64 पर विंडोज 7 और एवीडी को लॉन्च करने का एक तरीका ढूंढ रहा था। केवीएम को बंद करना इस तथ्य के कारण कोई विकल्प नहीं है कि एवीडी का प्रदर्शन मेरे लिए महत्वपूर्ण है। मैंने वर्चुअल मशीन मैनेजर (गुण-प्रबंधक पैकेज) के माध्यम से विंडोज 7 स्थापित किया है और अब एवीडी और विंडोज 7 दोनों हार्डवेयर त्वरित हैं।


0

यहां बताया गया है कि इस मुद्दे को कैसे हल किया गया है, योनि का उपयोग करके और यह दो प्लगइन्स है 'libvirt' और 'mutate'

  1. टर्मिनल खोलें और पर्यावरण चर सेट करें:

     export VAGRANT_DEFAULT_PROVIDER=libvirt
     export VAGRANT_HOME=/home/directoryToStoreVagrant/
     VBoxManage list vms
    
  2. अब "c1530713-aec2-4415-a6b5-b057928c7e5f" जैसे अंतिम कमांड से प्राप्त कोड को कॉपी करें और निम्नलिखित में उपयोग करें:

    योनि पैकेज --base c1530713-aec2-4415-a6b5-b057928c7e5f --output window7.box

     vagrant init window7
     vagrant up window7 --provider=libvirt 
     vagrant box list
    
  3. आपको कुछ योनि प्लगइन्स जैसे libvirt और mutate इंस्टॉल करने की आवश्यकता है । Mutate libvirt VM में .box को परिवर्तित करेगा:

    आवारा प्लगइन स्थापित योनि- libvirt आवारा प्लगइन आवारा-उत्परिवर्ती स्थापित करते हैं

  4. कामवासना के लिए आवारा बक्से को परिवर्तित करना:

    vagrant mutate window7_.box libvirt

  5. अब आप योनि वीएम को इनिशियलाइज़ कर सकते हैं। यदि कोई त्रुटि आपकी Vagrant फ़ाइल को संपादित करने के लिए बनी रहती है। मेरे लिए मेरी तरह यह लाइन config.vm.network के साथ शुरू होती है और फिर नीचे कमांड चलाती है:

    vagrant up --provider=libvirt

यह है कि मैं कैसे इस त्रुटि से पूरी तरह से छुटकारा पा रहा था

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.