मैं लिनक्स में KVM डिवाइस पेसस्ट्रॉथ को कैसे सक्षम करूं?


13

मेरे पास MSI-GD65 गेमिंग मदरबोर्ड और एक इंटेल i7 4790 है। वीटी-डी बायोस के सीपीयू फीचर्स सेक्शन में सक्षम है।

मैं Ubuntu 14.04.1 LTS चला रहा हूं और जब मैं किसी डिवाइस को आज़माता हूं और अलग करता हूं, तो मुझे निम्न संदेश मिलता है:

# virsh nodedev-detach pci_0000_00_1f_2

त्रुटि: डिवाइस को अलग करने में विफल pci_0000_00_1f_2 त्रुटि: ऑपरेशन समर्थित नहीं: इस प्रणाली पर वर्तमान में VFIO और न ही KVM डिवाइस असाइनमेंट का समर्थन नहीं किया गया है

Dmesg में IOMMU के बारे में कुछ जानकारी शामिल है, लेकिन मैं यह नहीं बता सकता कि इसका मतलब यह है कि VT-D सक्षम है

$ dmesg | grep -i iommu

[0.027450] dmar: IOMMU 0: reg_base_addr fed90000 1 ver: 0 टोपी c0000020660462 ecap f0101a
[.०,२७,४५५] dmar: IOMMU 1: reg_base_addr fed91000 ver 1: 0 टोपी d2008020660462 ecap f010da
[.०,२७,५२१] IOAPIC आईडी 8 DRHD आधार के नीचे 0xfed91000 IOMMU 1

क्या कोई मुझे सलाह दे सकता है कि इस प्रणाली पर वीटी-डी को सक्षम करने और केवीएम मेहमानों को पीसीआई उपकरणों के माध्यम से पारित करने की आवश्यकता है?


क्या आपने VT और VT-d को सक्षम करने के बाद एक पूर्ण पॉवर साइकिल बनाया है?
dyasny

जवाबों:


11

इस समस्या का समाधान आपके GRUB बूट मापदंडों में IOMMU को सक्षम करना है।

आप निम्नलिखित को / etc / default / grub में सेट करके ऐसा कर सकते हैं

GRUB_CMDLINE_LINUX_DEFAULT = "intel_iommu = पर"

यदि आप एएमडी प्रोसेसर का उपयोग कर रहे हैं, तो आपको amd_iommu=onइसके बजाय बूट मापदंडों के साथ जुड़ना चाहिए

GRUB_CMDLINE_LINUX_DEFAULT = "शांत छप amd_iommu = पर"

फिर दौड़ो update-grubऔर रिबूट करो

इस लिंक ने मुझे काफी मदद की: https://www.centos.org/forums/viewtopic.php?f=47&t=#115

इसे भी देखें: https://pve.proxmox.com/wiki/Pci_passthrough

इसने मुझे कुछ हद तक अलग कर दिया क्योंकि मुझे विश्वास था कि आईओएमयू वीटी-डी का एक वैकल्पिक विकल्प था।


और अगर यह काम नहीं करता है तो आपका CPU VT-D या AMD-VI का समर्थन नहीं कर सकता (सवाल यह स्पष्ट करता है - मैं यहां दूसरों के लिए पोस्ट कर रहा हूं)
ndemou

5

बेनामी के जवाब में जोड़ना: उबंटू में एक बग (मेरे लिए 18.04) प्रतीत होता है, जिसके कारण GRUB_CMDLINE_LINUX_DEFAULT in / etc / default / grub को अनदेखा करने का कारण बनता है।

यह GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub.d/50-curtin-settings.cfg में टिप्पणी करके तय किया जा सकता है

https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1569567


1

आपको हार्डवेयर आवश्यकताएं लगती हैं क्योंकि एक अन्य मॉड्यूल इसका उपयोग कर रहा है (IOAPIC) इस मामले में आपको बस सॉफ्टवेयर अंत को सेटअप करने की आवश्यकता है।

ऐसा लगता है कि आपको यह सुनिश्चित करने की आवश्यकता है कि आपके पास उपयुक्त डिवाइस की टुकड़ी का समर्थन करने के लिए सभी आवश्यक शर्तें स्थापित हैं। ऐसा लगता है कि आपने उन्हें स्थापित नहीं किया है, या वे स्थापित नहीं हैं।

इस तरह के मामले में उनका उपयोग करने का प्रयास करने से पहले आपको उपयुक्त लाइब्रेरी और कर्नेल मॉड्यूल स्थापित करने और आरंभ करने की आवश्यकता होती है। ये आपके KVM सेटअप के लिए विभिन्न "होस्ट" सिस्टम उपयोगिताओं और कर्नेल मॉड्यूल होंगे।

आपको केवल उपयोगिताओं को चलाने का प्रयास करने से पहले अपने उचित KVM समाधान को उचित रूप से सेट करने के लिए मैनुअल के अनुभाग को पढ़ना होगा और उन चरणों का पालन करना होगा। वे केवल पहले लॉन्च पर ही सेटअप नहीं करते हैं क्योंकि आवश्यक पैकेज स्थापित होते हैं।

कृपया ध्यान दें, यदि विचाराधीन डिवाइस मदरबोर्ड में एम्बेडेड है, तो यह तकनीकी रूप से पीसीआई डिवाइस नहीं हो सकता है, लेकिन पीसीआई-मैप्ड डिवाइस हो सकता है। ये उपकरण वास्तव में अन्य माध्यमों से जुड़े होते हैं, लेकिन PCI BIOS स्थान पर उनके BIOS का उपयोग करके मैप किए जाते हैं। वे डिवाइस टुकड़ी के साथ संगत नहीं हो सकते हैं या नहीं हो सकते हैं, यह सिस्टम के विभिन्न पहलुओं पर निर्भर करता है कि वे सिस्टम से कैसे जुड़े हैं।

इसके अतिरिक्त, आप मूल उपकरणों को अलग किए बिना उप-उपकरणों को अलग करने में सक्षम नहीं हो सकते हैं, अगर उनके ड्राइवर अन्योन्याश्रित हैं। आप केवल निश्चित निश्चितता वाले उपकरणों को अलग कर सकते हैं, जिनके मूल उपकरण PCI नियंत्रक, PCI ब्रिज, या कुछ अन्य समर्थित बस कंट्रोलर या ब्रिज हैं


जानकारी के लिए धन्यवाद। मुझे लगता है कि मेरे प्रश्न में "केवीएम में ऐसा करने के लिए प्रलेखन कहां मिल सकता है" अधिक विशिष्ट होना चाहिए।
बेनामी

0

मैं सेंटोस 7 पर हूं

मेरे पास यह त्रुटि थी जो मुझे यहां ले जाती है लेकिन मेरी समस्या (मेरे मामले में) को अपडेट करने vim /etc/sysconfig/grubऔर intel_iommu=onलाइन के अंत में जोड़ने के साथ नहीं थीGRUB_CMDLINE_LINUX

मुझे यह कमांड चलाना था

grub2-mkconfig -o /boot/grub2/grub.cfg

फिर रिबूट

नोट: मैंने हालांकि ग्रब 2-mconconfig को उपरोक्त कमांड से पहले रिबूट के साथ चलाया था और जो मैंने देखा उससे मेरे लिए कुछ भी नहीं किया।

संदर्भ: https://bugzilla.redhat.com/show_bug.cgi?id=1269446

टिप्पणी ११ और १२

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