Ubuntu के तहत केवीएम में एक वीडियो कार्ड अग्रेषित करना

प्रागितिहास


लगभग दो साल पहले, मैंने पूरी तरह से लिनक्स पर स्विच करने का फैसला किया, लेकिन एक वेंड की आवश्यकता नहीं थी, इसलिए मैंने हमेशा 2 ऑपरेटिंग सिस्टम रखे। लगभग एक महीने पहले मैंने वर्चुअलबॉक्स को स्थापित करने और उस पर विंडोज स्थापित करने की कोशिश की थी, सामान्य तौर पर मुझे 2 ऑपरेटिंग सिस्टम के साथ काम करना पसंद था, लेकिन एक समस्या थी, मैं केवल कंप्यूटर ग्राफिक्स प्रोग्राम करता हूं और मुझे ओपनजीएल 3.3 और उच्चतर के लिए समर्थन की आवश्यकता थी, दुर्भाग्य से वर्चुअलबॉक्स ने मुझे ऐसा प्रदान नहीं किया अवसरों। गोग्लिंग ने एक्सएन के रूप में इस तरह की बात की, लंबे समय तक उस पर कुछ करने की कोशिश की, नतीजतन, इसमें से कुछ भी नहीं आया, मुख्य वीडियो कार्ड के कारण सबसे अधिक संभावना है - nVidia GeForce 580 GTX, हाइपरविजर भी ubuntu लॉन्च करना नहीं चाहता था, विंडोज का उल्लेख नहीं करना। मैंने अन्य हाइपरविजर्स की तलाश शुरू की, और केवीएम के पार आया, मुझे इसके साथ टिंकर करना पड़ा, लेकिन अंत में यह काम कर गया।

विन्यास


तो हमें जरूरत है:

मेरा विन्यास:


ट्रेनिंग


पहले आपको BIOS में रिबूट करने और IOMMU को सक्षम करने की आवश्यकता है। यह जांचने के लिए कि क्या IOMMU AMD के लिए काम करता है:

dmesg | grep -iE "(IOMMU|AMD-Vi)"

या इंटेल के लिए:

dmesg | grep -iE "(IOMMU|VT-d)"

अब आपको आईब्यू को ग्रब में सक्षम करने की आवश्यकता है। हम / etc / default / grub खोलते हैं, हम GRUB_CMDLINE_LINUX की तलाश करते हैं, हम एक नज़र लाते हैं:

GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush"

इस प्रकार, हम LOOP उपकरणों की संख्या बढ़ाते हैं, AMD के लिए IOMMU समर्थन सक्षम करते हैं। यदि ऑपरेटिंग सिस्टम को लोड करते समय सब कुछ समतल हो गया (आमतौर पर 2 वीडियो कार्ड के कारण), तो पिछली पंक्ति में नामांकित जोड़ें, हम हैं:

GRUB_CMDLINE_LINUX="nomodeset max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush"

इसके अलावा, ग्लिट्स को कम करने के लिए, आप ड्राइवरों को एएमडी से डाउनलोड करने पर रोक लगा सकते हैं (यदि आपके पास एएमडी से दोनों वीडियो कार्ड हैं, तो आपको ऐसा नहीं करना चाहिए) उन्हें ब्लैकलिस्ट में जोड़कर। /Etc/modprobe.d/blacklist.conf खोलें और निम्नलिखित जोड़ें:

blacklist fglrx
blacklist radeon

अब आपको होस्ट पर ड्राइवर से डिस्कनेक्ट करके और इसे पीसीआई-स्टब से कनेक्ट करके फॉरवर्ड करने के लिए वीडियो कार्ड तैयार करने की आवश्यकता है। हमारे मानचित्र का चयन करने के लिए, lspci दर्ज करें और हमारे नक्शे की तलाश करें:

02:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Cypress PRO [Radeon HD 5850]
02:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Cypress HDMI Audio [Radeon HD 5800 Series]

मेरे मामले में यह 02: 00.0 और 02: 00.1 है। 02:00 a.m एक साउंड चिप है। वीडियो कार्ड वीडियो और ऑडियो के रूप में दिखाई देता है, इसलिए उन्हें एक साथ स्थानांतरित किया जाना चाहिए।
फिर, हमें विक्रेता आईडी और डिवाइस आईडी की आवश्यकता है। आप -n स्विच के साथ lspci चलाकर देख सकते हैं

02:00.0 0300: 1002:6899
02:00.1 0403: 1002:aa50

अब हमारे उपकरणों को pci-stub से कनेक्ट करें। वीडियो कार्ड:

echo "1002 6899" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:02:00.0" > /sys/bus/pci/devices/0000\:02\:00.0/driver/unbind
echo "0000:02:00.0" > /sys/bus/pci/drivers/pci-stub/bind

ध्यान दें कि कोई कॉलोन वेंडरॉइड और डिवाइसआईडी के बीच नहीं रखा गया है।
साउंड कार्ड:

echo "1002 aa50" > /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:02:00.1" > /sys/bus/pci/devices/0000\:02\:00.1/driver/unbind
echo "0000:02:00.1" > /sys/bus/pci/drivers/pci-stub/bind

सुविधा के लिए, आप एक स्क्रिप्ट लिख सकते हैं और इसे ऑटोरन में जोड़ सकते हैं।

स्क्रिप्ट दिखाएं
 #!/bin/bash hostgr="0000:02:00.0" hostau="0000:02:00.1" grid="1002 6899" auid="1002 aa50" # echo $grid > "/sys/bus/pci/drivers/pci-stub/new_id" echo $hostgr > "/sys/bus/pci/devices/$hostgr/driver/unbind" echo $hostgr > "/sys/bus/pci/drivers/pci-stub/bind" echo $auid > "/sys/bus/pci/drivers/pci-stub/new_id" echo $hostau > "/sys/bus/pci/devices/$hostau/driver/unbind" echo $hostau > "/sys/bus/pci/drivers/pci-stub/bind" 

स्थापना


पहले आपको कई पैकेज स्थापित करने की आवश्यकता है:

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

यह बिना gui वाले सर्वर पर एक संस्थापन है, kvm के साथ सुविधाजनक कार्य के लिए हम पुण्य-प्रबंधक भी स्थापित करेंगे:

sudo apt-get install virt-manager

उसके बाद, मेनू आइटम "वर्चुअल मशीन मैनेजर" मेनू में दिखाई देना चाहिए।
इसके बाद, kvm मॉड्यूल को allow_unsafe_assigned_interrupts = 1 विकल्प दें। हम सामग्री के साथ /etc/modprobe.d/kvm.conf में फ़ाइल बनाते हैं और मॉड्यूल को पुनरारंभ करते हैं।

options kvm allow_unsafe_assigned_interrupts=1

अगला, पुण्य-प्रबंधक चलाएं, एक विंडो दिखाई देगी:

छवि

लोकलहोस्ट पर राइट-क्लिक करें और नया चुनें या पैनल में बाईं ओर मॉनिटर पर क्लिक करें। इसके बाद, वर्चुअल मशीन बनाने के लिए निर्देशों का पालन करें। सिस्टम स्थापित करने के बाद, आप उन उपकरणों को अग्रेषित कर सकते हैं जिनकी हमें आवश्यकता है। दृश्य-> विवरण मेनू पर जाएं। इस तरह एक विंडो दिखाई देनी चाहिए:

छवि

हार्डवेयर जोड़ें बटन पर क्लिक करें, पीसीआई होस्ट डिवाइस का चयन करें, और हमारे वीडियो कार्ड की तलाश करें। वीडियो कार्ड से ध्वनि चिप के साथ एक ही काम किया जाना चाहिए। उसी तरह, आप USB होस्ट को अग्रेषित कर सकते हैं ताकि वे काम करें, आपको नियंत्रक USB को मॉडल: USB2 फ़ील्ड में निर्दिष्ट करना चाहिए।
कंप्यूटर के उपकरणों पर शुरू होने पर, हमारा एडेप्टर दिखाई देना चाहिए:

छवि

अगली चीज़ जो हमें करने की ज़रूरत है वह है ड्राइवर को डाउनलोड करना। निर्माता की वेबसाइट से डाउनलोड करें और इसे सिस्टम में स्थापित करें। जब मैंने ड्राइवर को स्थापित करने की कोशिश की, तो सिस्टम फ्रेंटली बीएसओडी में चला गया, मैंने एक नई विंडोज स्थापित करके इस समस्या को हल किया। आप डिवाइस मैनेजर के माध्यम से ड्राइवर को स्थापित करने का भी प्रयास कर सकते हैं, लेकिन मेरे लिए यह सिर्फ लटका हुआ है।
इसे पूरा करने के लिए, वर्चुअल मशीन को बंद करें और कंप्यूटर को रिबूट करें, यदि ऐसा नहीं किया जाता है, जब आप सिस्टम को पुनरारंभ करते हैं तो बीएसओडी पर जा सकते हैं।
फिलहाल, जब एक अग्रेषित वीडियो कार्ड के साथ एक अतिथि को पुनरारंभ करना, kvm पूरे सिस्टम को लटका देता है, इसलिए यदि आप वर्चुअल मशीन को बंद करते हैं, तो आपको पूरे कंप्यूटर को भी पुनरारंभ करना होगा।

परिणाम


अब, शुरू होने के बाद, वीडियो कार्ड ड्राइवर को लोड करने के बाद वर्चुअल मशीन का कंसोल बंद हो जाएगा। विंडोज 7 के मामले में, चित्र "विंडोज शुरू करना" बाकी है, लेकिन छवि को पहले से ही अग्रेषित वीडियो कार्ड के लिए आउटपुट होना चाहिए। यद्यपि छवि को भांग पर प्रदर्शित नहीं किया जाएगा, फिर भी, यह इनपुट उपकरणों से डेटा संचारित करेगा और कीबोर्ड और माउस से अतिथि को एक सामान्य आभासी मशीन के रूप में नियंत्रित करना संभव होगा।
हम दूसरे मॉनिटर को फॉरवर्ड किए गए वीडियो कार्ड से जोड़ते हैं, और काम का आनंद लेते हैं।
अंत में, सिस्टम प्रदर्शन मूल्यांकन का स्क्रीनशॉट:

छवि

सूत्रों का कहना है


help.ubuntu.com/community/KVM
www.linux.org.ru/wiki/en/ वीडियो मशीन को वर्चुअल मशीन पर अग्रेषित करना

Source: https://habr.com/ru/post/In183468/


All Articles