بفضل المنافسة وتطوير التقدم العلمي والتقني ، تتيح لك أجهزة الكمبيوتر الحديثة أداء العديد من المهام البسيطة والمعقدة في نفس الوقت ، على سبيل المثال ، تشغيل الفيديو وتشغيله على التلفزيون ، وعرض الرسومات وقراءة الأخبار على الإنترنت ، وتوزيع السيول بالتوازي ، إلخ. الخ يذهب الكثيرون إلى أبعد من ذلك ويستخدمون العديد من أجهزة الكمبيوتر للعمل والترفيه. ومع ذلك ، باستخدام تقنيات المحاكاة الافتراضية ، من ناحية ، يمكنك توسيع قدرات جهاز الكمبيوتر الخاص بك ، ومن ناحية أخرى ، توفير المال ، ل في الواقع ، يمكنك تشغيل العديد من أنظمة التشغيل على نفس الجهاز في نفس الوقت.
سيتم استضافة هذه المقالة إعدادات المضيف خصيصا للاستخدام في "المنزل" ، أي نتحدث عن
GPU PASSTHROUGH .
مقدمة
أولا ، بضع كلمات حول الافتراضية بشكل عام. حسب
ويكيبيديا :
المحاكاة الافتراضية هي توفير مجموعة من موارد الحوسبة أو مزيجها المنطقي ، المستخلص من تنفيذ الأجهزة ، وفي الوقت نفسه توفر العزلة المنطقية عن بعضها البعض من عمليات الحوسبة التي تعمل على نفس الموارد المادية.
يتم تحقيق ذلك بمساعدة التطبيقات (على سبيل المثال ، VirtualBox و VMware) وعلى مستوى الأنظمة التي تدعم المحاكاة الافتراضية للأجهزة (على سبيل المثال KVM و ESXi و Hyper-V). في الحالة الأخيرة ، يكون فقدان الأداء مقارنة بالأنظمة المحلية في
حده الأدنى .
فيما يلي ، سوف تصف هذه المقالة إعدادات نظام المحاكاة الافتراضية للمصدر المفتوح
Proxmox لأنه سهل الاستخدام ، وهناك سهولة الوصول إلى وحدة التحكم عبر نموذج ويب ، كما أنه يستند إلى مجموعة من Debian + kvm ، التي تحتوي على الكثير من الأدلة والأوصاف على الشبكة ، أي الوثائق بما في ذلك والروسية.
متطلبات الأجهزة
سنحتاج:
- المعالج واللوحة الأم مع دعم VT-x ، VT-d من
Intel أو AMD-Vi ، IOMMU من AMD. لا تكن كسولًا وحدد ما إذا كانت نسختك تدعم هذه المتطلبات.
أما بالنسبة للوحات الأم. أنا لا أوصي بشكل قاطع لدفع الحديد مع الأسلاك دون المتوسط على لوحة الطاقة. بواسطة
Z270 و
Z390 تجاهل المنطقة البرتقالية أو اتركها للعمل في الأوراق المالية.
- 2 بطاقات فيديو ، لعبة واحدة (على الشبكة لعدد أقل من المشاكل عند إعادة التوجيه إلى جهاز افتراضي ، يثنون على البطاقات الحمراء ، ولكن شخصيًا ، كل شيء تم إعداده باستخدام بطاقة الفيديو من البطاقات الخضراء) ، والثانية للمضيف. في حالتي ، يتم دمجها في المعالج.
- 1-2 الشاشات والكابلات لهم ، من أجل
- زوج من لوحة المفاتيح + مجموعات الماوس لجعلها مريحة للعمل وتكوين النظم
- كمبيوتر شخصي أو كمبيوتر لوحي آخر متصل بالشبكة المحلية لإعداد الإعدادات من خلال نموذج ويب.
التثبيت والإعدادات
لقد استخدمت تكوين اللعبة التالي:
- تم تصميم جهاز الكمبيوتر الخاص بتهيئة المضيف على أبعد ما يكون عن أفضل لوحة أم ، ولكن في المنتديات الناطقة باللغة الإنجليزية غالبًا ما يتم الإشادة به من قِبل هذه الشركة نظرًا لأن أجهزتها مناسبة غالبًا لمثل هذه الأشياء:
المعالج - i7 8700k
الأم - آسروك Z390M Pro4
بطاقة الفيديو - INNO3D GeForce GTX 1070 iChill X4
- الكمبيوتر الشخصي الثاني (Morefine-M1s Mini-PC) ،
- فئران
- لوحة مفاتيح واحدة على المضيف ، وعلى الأجهزة الأخرى التي استخدمتها ،
- 3 اتصالات بجهاز Dell U2713HM (VGA - لبطاقة الفيديو المدمجة ، HDMI - لجهاز GTX1070 ، على DVI ، يوجد كمبيوتر صغير. تم التبديل بين إشارات الفيديو من خلال قائمة الشاشة)
المرحلة 0 - على اللوحة الأم ، قم بتشغيل VT-d: Enable ، تقنية Intel Vitrualization: Enable ، محول Graphx الأساسي: VGA ، أعلى 4G فك التشفير: Enable. إذا كان ذلك ممكنًا ، تأكد من تحديد الخيار الذي سيعمل عليه المضيف ، أي بطاقة الرسومات الأضعف والتبديل إليها.
المرحلة الأولى - تثبيت Proxmox على المضيف. للقيام بذلك:
1.1. قم بتنزيل
صورة القرص من الموقع الرسمي
1.2. نكتب الصورة على محرك أقراص فلاش باستخدام
برامج خاصة1.3. نقوم بالتمهيد من محرك أقراص فلاش USB ،
وننفذ عملية التثبيت التي تشير إلى محرك الأقراص الثابت الذي يجب تثبيته ، وأدخل كلمة المرور للمستخدم الجذر في المستقبل ، وقم أيضًا بتعيين إعدادات الشبكة بشكل صريح.
المرحلة الثانية - الاتصال عبر شبكة عبر واجهة ويب باستخدام كمبيوتر شخصي آخر أو
الكمبيوتر اللوحي (في حالتي كان جهاز كمبيوتر صغيرًا) للمضيف وتكوين Proxmox لهذا
الدليل من خلال وحدة التحكم في النص.

هناك فارق بسيط قد يكلف البرامج ، لكنني قررت أن تغيير اللوحة السابقة سيكون أسهل ، لأن لم تفي لوحة جيجابايت بهذا المطلب:
1) قم بتشغيل "dmesg | grep ecap »القيادة.
2) على خطوط IOMMU ، تشير القيمة السداسية العشرية بعد "ecap" إلى ما إذا كانت إعادة تعيين المقاطعة مدعومة أم لا. إذا كان الحرف الأخير من هذه القيمة هو 8 أو 9 أو a أو b أو c أو d أو e أو f ، فيتم دعم إعادة تعيين المقاطعة. على سبيل المثال ، يشير "ecap 1000" إلى عدم وجود دعم لإعادة تعيين المقاطعة. يشير "Ecap 10207f" إلى دعم إعادة تعيين المقاطعة ، حيث أن الحرف الأخير هو "f".
سيتم تمكين إعادة تعيين المقاطعة فقط إذا كان كل IOMMU يدعمها.
إذا تم استيفاء الحالة ، تابع.
لذلك الإعدادات هي:
نفتح الملف بأمر من وحدة التحكم (لا تحتاج إلى إدخال رمز الشبكة المزدوجة ، لذلك سأفصل الأوامر عن النص في النص من الملف)
## nano /etc/default/grub
جعل بديل
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
لمعالجات إنتل
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
لمعالجات AMD
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
بعد ذلك نعطي الأمر
## update-grub
ثم نعيد تشغيل المضيف عبر واجهة الويب
ملف نكش الكمبيوتر في المادة # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Proxmox Virtual Environment" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" GRUB_CMDLINE_LINUX="" # Disable os-prober, it might add menu entries for each guest GRUB_DISABLE_OS_PROBER=true # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Disable generation of recovery mode menu entries GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1"
أضف برامج التشغيل الضرورية إلى ملف التكوين
## nano /etc/modules
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. vfio vfio_iommu_type1 vfio_pci vfio_virqfd
نكتب في وحدة التحكم
## lspci
سيتم عرض قائمة بالأجهزة المتاحة لإعادة التوجيه على الشاشة ، وسوف نجد الوحدة التي تحتوي على بطاقة الفيديو التي تهمنا ، في هاتين الحالتين ، يوجد جهازان في مجموعة بطاقات الفيديو وصوتان على العنوانين 01: 00.0 و 01: 00.1 ، لذلك أنا أسجل المجموعة على الفور.
## nano /etc/pve/qemu-server/vmid.conf
hostpci0: 01:00
نكتب أمرًا في وحدة التحكم لتحديد النموذج ومعرفه
## lspci -n -s 01:00
01: 00.0 0300: 10de: 1b81 (rev a2)
01: 00.1 0403: 10de: 10f0 (rev a1)
الآن قم بتحرير الملف لبطاقة الفيديو الخاصة بنا (في حالتك ، سيكون المعرف مختلفًا)
## nano /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:1b81,10de:10f0
نضع في ورقة سوداء للسائق
## nano /etc/modprobe.d/blacklist.conf
blacklist radeon blacklist nouveau blacklist nvidia
الآن نقوم بإنشاء واجهة ويب وتحرير ملف إعدادات الجهاز الظاهري من خلال وحدة التحكم. هنا سطر "الحجج:" يحل ، ل بدون ذلك ، سيكتشف برنامج تشغيل بطاقة الفيديو المحاكاة الافتراضية ، لكن من خلال تغيير اسم الجهاز ، وبشكل أكثر دقة ، hv_vendor_id = willitwork ، نزيل مشكلة
الخطأ 43 ، والتي يمكن أن ينشئها برنامج تشغيل فيديو الجهاز. هناك رقم الجهاز الظاهري في proxmox المستخدمة كاسم.
## nano /etc/pve/qemu-server/<vmid>.conf
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off' ..... bios: ovmf ..... hostpci0: 01:00.0,pcie=1 ..... machine: q35
ملف إعدادات الجهاز الظاهري للكمبيوتر في المادة args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off' bios: ovmf boot: dcn bootdisk: sata0 cores: 8 cpu: host hostpci0: 01:00.0,pcie=1 ide2: local:iso/ru-en_windows_10_1803_x86-x64.iso,media$ machine: q35 memory: 16384 net0: e1000=EA:20:FA:6A:D6:A0,bridge=vmbr0 numa: 0 ostype: win10 sata0: local-lvm:vm-100-disk-0,size=120G scsihw: virtio-scsi-pci smbios1: uuid=751edeca-d249-4c0d-9ded-b59d929df0f1 sockets: 1 usb0: host=1-8.4 usb1: host=1-8.3 vmgenid: b75aeb27-3102-458d-8e23-18cd27796dc1
الآن أعد تشغيل المضيف وابدأ تشغيل الجهاز الظاهري.
المرحلة الثالثة - من خلال وحدة التحكم عن بعد للفيديو ،
قم بتثبيت Windows وبرامج التشغيل. في حالتي ، تعرف Windows أولاً على برنامج تشغيل الفيديو proxmox للعمل من خلال وحدة التحكم في الفيديو ، ثم عثر على برنامج تشغيل GTX1070 ، وبعد التحديث عبر الإنترنت (البحث القسري عن برامج التشغيل على الشبكة) ، تم تنزيل وتثبيت برنامج التشغيل الذي احتاجه لبطاقة الفيديو الخاصة باللعبة.
المرحلة الرابعة - إعادة تشغيل Virtual Machine ، قم بتبديل عرض دفق الفيديو على الشاشة إلى موصل بطاقة الفيديو و ... في حالتي كان كل شيء يعمل على الفور ، بدون أخطاء 43 ... علاوة على ذلك ، يتم تعريف سطح المكتب بالرقم 2.
حاولت تشغيل فيديو Blue-ray - لا مشكلة ، لم تكن هناك أي تأخيرات أو أفاريز مع تسلسل الفيديو ، لقد أطلقت Warhammer عبر الإنترنت - بدأ تشغيله وكان من المريح تشغيله في PvP ، لقد أطلقت GTA5 ، ظهرت القصة بشكل جيد للغاية. بصريا ، لا توجد خسائر في الأداء.
إذا كنا بحاجة إلى إعادة توجيه القرص الصلب بأكمله ، فعندئذٍ في ملف إعدادات الجهاز الظاهري ، نحتاج إلى إضافة السطر:
ide0: volume = / dev / sda
او
sata0: volume = / dev / sda
على وجه التحديد ، أي sda / sdb / sdc / ، إلخ. يمكن تحديدها في واجهة الويب.

PS
إلى برميل من العسل هناك ذبابة في المرهم. لا يمكن طرح الصوت المدمج بشكل منفصل في مجموعته هي الأجهزة الأخرى التي ، بعد إعادة توجيه بطاقة الصوت إلى الجهاز الظاهري ، تختفي للمضيف حتى الزائد المضيف المقبل. في حالتي هو عليه
00: 1f.0 جسر ISA: جهاز Intel Corporation a305 (المراجعة 10)
00: 1f. 3 جهاز الصوت: Intel Corporation Device a348 (rev 10)
00: 1f.4 SMBus: جهاز Intel Corporation a323 (مراجعة 10)
00: 1f.5 جهاز التحكم في ناقل تسلسلي [0c80]: جهاز شركة Intel a324 (مراجعة 10)
00: 1f.6 وحدة تحكم Ethernet: جهاز Intel Corporation 15bc (المراجعة 10)
أي الصوت أو من خلال كابل الفيديو إلى الشاشة أو بطاقة الصوت الخارجية. يتم توجيه منافذ USB دون مشاكل. لسوء الحظ ، لم يتم حله حاليًا. هناك خيار للاتصال عن بعد من جهاز كمبيوتر آخر إلى اللعبة ، عبر RDP أو
SPICE . في هذه الحالة ، كل شيء سيكون على ما يرام
لا يتم دائمًا إعادة توجيه بطاقة الفيديو تمامًا كما هو الحال في حالتي ، إما خطأ 43 أو أي شيء آخر في الطريق.
يتم وصف الإعدادات الأخرى التي قد تساعد
هنا . من الناحية المثالية ، تحتاج إلى البحث في الشبكة عن الإعدادات الناجحة والتركيز عليها ، كما يبدو
الأمر بالنسبة لي ، بالإضافة إلى ذلك ، هناك أيضًا
قائمة بالأجهزة التي تتيح لي تحقيق نفس الشيء ، لكنها غير كاملة.
تحديث 1:
بعض الملاحظات على المحيط:
1. كيفية الحصول على لوحة المفاتيح من منفذ PS / 2 إلى VM:
أولا أدخل الأمر في وحدة التحكم
## dmesg | grep الإدخال
نحن نبحث عن نص في النص
...
الإدخال: AT مترجمة مجموعة 2 لوحة المفاتيح كـ / devices / platform / i8042 / serio0 / input / input
2...
تذكر الرقم
2 في النهاية ، فقد يكون الأمر مختلفًا. ثم ، في ملف إعدادات VM ، أضف إلى السطر:
args: -object 'input-linux، id = kbd، evdev = / dev / input / event
2 ، grab_all = on ، كرر = on'
إدراج
2 في نهاية evdev = / dev / input / event
2للماوس - بالمثل.
2. عن طريق USB:
بالنسبة لأجهزة USB ، كل شيء أبسط من ذلك ، يتم تمرير الأجهزة مباشرة من نموذج الويب بواسطة المعرف أو يمكنك نقل المنفذ بالكامل. ومع ذلك ، هناك فارق بسيط - إذا لسبب ما لا يمكنك ، مثلي ، رمي جهاز صوت في VM ، لأن تم تضمينه في مجموعة ذات وحدات تحكم رئيسية والتي بدونها لا يمكن للمضيف العمل بشكل كامل ، ثم إعادة توجيه المنفذ / الجهاز عبر USB يحل هذه المشكلة ، ولكن يمكن أن يبدأ الصوت في السقوط بعد بعض الوقت ، hiss / buzz وغيرها ... إلخ ، في نفس الوقت على الأم كل شيء سيكون رائعا للنظام. في هذه الحالة ، من الضروري إعادة توجيه ليس المنفذ / الجهاز ، ولكن وحدة تحكم USB نفسها كجهاز PCIe وفقًا للطريقة المحددة في المقالة. وكل شيء سوف يتحسن بشكل كبير. ولكن في نفس الوقت ، بعد بدء تشغيل VM بمثل هذه الإعدادات ، لن يكون من الممكن إعادة توجيه الأجهزة الأخرى من وحدة التحكم هذه من خلال المضيف.
3. يمكن إعادة توجيه محركات الأقراص الصلبة من خلال إعادة توجيه وحدة التحكم كجهاز PCIe وفقًا للطريقة المحددة في المقالة (لا أوصي بإعادة توجيه وحدة التحكم المدمجة في اللوحة الأم ، متصلة فقط بـ PCIe) ، أو مباشرة:
اذهب الى
## cd / dev / disk / by-id
من خلال دير ننظر قائمة ...
نقوم بنسخ أسطر النموذج ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1AC9SX9 ، حيث يتم تسجيل واجهة الاتصال والعلامة التجارية ورقم السلسلة من القرص الثابت. ثم افتح ملف تكوين VM واكتب:
sata1: volume = / dev / disk / by-id / ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1AC9SX9
وكل شيء يعمل ، مع الأخذ في الاعتبار أن sata0-sata5 ، أي بالنسبة إلى جهاز VM واحد ، لا يمكن أن يتجاوز عدد الأقراص المتصلة ، بما في ذلك الأقراص الافتراضية ، 6 قطع.