ডিবিয়ান-এ লিনাক্স-কেভিএম দিয়ে পিসিআই-পাসস্ট্র্রু প্রয়োগ করা হচ্ছে


10

আমি ভার্চুয়াল মেশিনে একটি পুরানো ভিডিও কার্ড (র্যাডিয়ন 4770) সংযুক্ত করার জন্য পিসিআই-পাসস্ট্র্রু ব্যবহার করার চেষ্টা করছি। আমি ডেবিয়ান লিনাক্স (হুইজি, ৩.২.০-৪-এমডি 64) হোস্টে আমার ভার্চুয়াল মেশিনগুলি চালানোর জন্য লিনাক্স-কেভিএম ব্যবহার করছি।

প্রশ্ন

স্পষ্ট করে বলতে গেলে, আমি নিশ্চিত নন যে লিনাক্স কেভিএম দিয়ে পিসিআই-পাসস্ট্র্রু প্ররোচিত করার জন্য সঠিক 'পথ' কী। এই পর্যায়ে আমি সন্দেহ সঠিক কর্ম হয় যোগ CONFIG_DMAR, CONFIG_DMAR_DEFAULT_ONএবং CONFIG_PCI_STUB"বাস অপশন (পিসিআই ইত্যাদি)" কার্নেল সোর্স এবং পুনরায় কম্পাইল বিভাগে।

তবে আমি নিশ্চিত নই যে এটি পুনর্নির্মাণের আগে প্রয়োজনীয় সংযোজনগুলির একটি সম্পূর্ণ তালিকা। অথবা যদি কার্নেলটি পুনরায় সংশ্লেষ করা প্রয়োজন - তবে কোনও সহজ পদ্ধতি আছে?

আমি যে গাইডগুলি রেফারেন্স করেছি তার মধ্যে কেবল লিনাক্স- কেভিএম.আর.গ্রন্থই স্পষ্টভাবে উল্লেখ করেছে যে সংকলন প্রয়োজনীয়। লিনাক্স-কেভিএম ইতিমধ্যে ইনস্টল এবং হাইপারভাইজার হিসাবে কাজ করছে।

গবেষণা

এই মুহুর্তে আমি মনে করি আমার সমস্যাটি আমার কর্নেলের সাথে সম্পর্কিত। আমার প্রাথমিক সংস্থানটি লিনাক্স- কেভিএম.আর.এ ( http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM ) এ গাইড হয়েছে । তবে, আমি অন্যান্য সংস্থানগুলি পেয়েছি যা কিছুটা আলাদা পদ্ধতি নির্দেশ করে যা (আপাতদৃষ্টিতে) বন্টন নির্দিষ্ট:

ফেডোরা-- https://docs.fedoraproject.org/en-US/Fedora/13/html/ ভার্চুয়ালাইজেশন_গুইড / চ্যাপ- ভার্চুয়ালাইজেশন- পিসিআই_প্যাসস্ট্রোহ

সুস - "ওপেনসুএস: কেভিএম সহ ভার্চুয়ালাইজেশন" (স্বল্প প্রাসঙ্গিকতা এবং 2-লিঙ্কের সীমাবদ্ধতার কারণে লিঙ্ক বাদ দেওয়া হয়েছে)

ফেডোরা গাইড রেফারেন্সিং পর্যন্ত কাজ করে setseboolযা রেডহ্যাট-নির্দিষ্ট বলে মনে হয়। SUSE গাইড ইঙ্গিত করে গ্রাফিক্স-কার্ড অ্যাসাইনমেন্টটি SUSE দ্বারা সমর্থিত নয়, তবে আমি CONFIG_DMAR_DEFAULT_ONএটিকেও উল্লেখ করছি কারণ এটি নির্দেশ করেছে যে আমার / boot / config-ameuname -r` এর মধ্যে একটি স্ট্রিং খুঁজে পাওয়া উচিত ` লিনাক্স- কেভিএম.আর . সাইটটিও রেফারেন্স করে CONFIG_DMAR_DEFAULT_ON, সুতরাং এটি একটি সাধারণ এবং প্রয়োজনীয় উপাদান হিসাবে উপস্থিত হয়।

দ্রষ্টব্য: আমি ফেডোরা বা ডেবিয়ানদের গাইডে গ্রাফিক্স কার্ডের জন্য কোনও বিধিনিষেধ পাইনি। রেফারেন্সযুক্ত সুস ডকুমেন্টটি 2006-2013 তারিখের।

আমি CONFIG_DMAR_DEFAULT_ONআমার সিস্টেমে / boot / config-ameuname -r` খুঁজে পাচ্ছি না । আরও গবেষণাটি সূচিত করে যে CONFIG_DMAR, CONFIG_DMAR_DEFAULT_ONএবং CONFIG_PCI_STUBলিনাক্স কার্নেল কনফিগারেশন আইটেমগুলি যা linux-kvm.org- র নির্দেশের সাথে প্রাসঙ্গিক । এই হিসাবে আমি বিশ্বাস করি যে আমার এই হোস্টের কার্নেলটি এই 3 টি (কমপক্ষে) কার্নেল কনফিগার আইটেমগুলির সাথে পুনরায় সংকলন করা দরকার। intel_iommu=onআমার হোস্ট-ওএসে কার্নেল প্যারামিটার হিসাবে বুট করা অপর্যাপ্ত বলে মনে হচ্ছে।

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

ভিটি-ডি / আইওএমএমইউ / কেভিএম সমর্থন নিশ্চিতকরণ

আমার গবেষণা ইঙ্গিত দেয় যে পিসিআই-পাসস্ট্র্রু ভিটি-ডি এর জন্য উভয় সিপিইউ এবং মাদারবোর্ড সমর্থন প্রয়োজন।

, VT-ঘ

আমি নিশ্চিত করেছি যে আমার প্রসেসর, একটি নন-কে ইনটেল আই -3--3770০ (প্রতি ark.intel.com/products/65719), ভিটি-ডি সমর্থন করে:

নির্দেশিত আই / ও (ভিটি-ডি) জন্য ইন্টেল ভার্চুয়ালাইজেশন প্রযুক্তি ‡ হ্যাঁ

আমার Asrock Z77 এক্সট্রিম 4 মাদারবোর্ড ভিটি-ডি সমর্থন করে (ব্যবহারকারী ম্যানুয়াল এর 62 পৃষ্ঠা প্রতি):

ভিটি-ডি ইন্টেল-ভিটি-ডি প্রযুক্তি সক্ষম করতে বা অক্ষম করতে এটি ব্যবহার করুন (নির্দেশিত আই / ও এর জন্য ইন্টেল ® ভার্চুয়ালাইজেশন প্রযুক্তি)। এই বৈশিষ্ট্যের ডিফল্ট মান হ'ল [অক্ষম]।

IOMMU

আমি যাচাই করেছি যে আমার সিস্টেমে IOMMU সমর্থন রয়েছে:

dmesg | grep -e DMAR -e IOMMU | grep -e "DRHD base" -e "enabled"
[    0.000000] Intel-IOMMU: enabled

সাহায্যে KVM

কেভিএম পিসিআই-পাসস্ট্র্রু সমর্থন থেকে পৃথক করে ইনস্টল এবং কার্যকরী রয়েছে:

lsmod | grep kvm
kvm_intel             121968  0 
kvm                   287749  1 kvm_intel

আমি নিশ্চিত করেছি যে আমার মাদারবোর্ডের বিআইওএসের মাধ্যমে ভিটি-ডি সক্ষম করা আছে। এই হিসাবে, আমি হার্ডওয়ার / বিআইওএস সমস্যাগুলি সন্দেহ করি না যা ভিটি-ডি ব্যবহার রোধ করবে। নির্বিশেষে, আমি আমার ভিডিও কার্ডটি সফলভাবে আমার হোস্টের কাছ থেকে আলাদা করতে এবং এটি ভার্চুয়াল মেশিনে পুনরায় অর্পণ করতে অক্ষম

সমাপ্তি চিন্তা

শেষ পর্যন্ত আমি উল্লেখ করতে চাই যে আমি পরীক্ষার চেষ্টাও করেছি:

echo "8086 10b9" \> /sys/bus/pci/drivers/pci-stub/new_id
echo "0000:01:00.0" \> /sys/bus/pci/devices/0000:01:00.0/driver/unbind
echo "0000:01:00.0" \> /sys/bus/pci/drivers/pci-stub/bind
echo "8086 10b9" > /sys/bus/pci/drivers/pci-stub/remove_id
kvm -m 512 -boot c -net none -hda debian-7.1.0-amd64-netinst.iso -device pci-assign,host=01:00.0

লক্ষ্য ভিএম তৈরির চেষ্টা করার পরে নিম্নলিখিত ত্রুটি পেয়েছে:

Failed to assign device "(null)" : Device or resource busy
*** The driver 'pci-stub' is occupying your device 0000:01:00.0.
***
*** You can try the following commands to free it:
***
*** $ echo "8086 10b9" > /sys/bus/pci/drivers/pci-stub/new_id
*** $ echo "0000:01:00.0" > /sys/bus/pci/drivers/pci-stub/unbind
*** $ echo "0000:01:00.0" > /sys/bus/pci/drivers/pci-stub/bind
*** $ echo "8086 10b9" > /sys/bus/pci/drivers/pci-stub/remove_id
***
kvm: -device pci-assign,host=01:00.0: Device 'pci-assign' could not be initialized

আমি এটি অনুমান করছি কারণ হোস্টটি এখনও ভিডিও কার্ডের নিয়ন্ত্রণ ছাড়বে না এবং সম্ভবত কার্নেলটি যথাযথ কনফিগারেশন আইটেমগুলি সংকলন না করায়।

এটি আমার জন্য নতুন অঞ্চল, তাই দয়া করে আমার অনভিজ্ঞতাটি ক্ষমা করুন। আমি চাই ব্যাপকভাবে , সবটা কোনো প্রতিক্রিয়ার তারিফ এমনকি যদি এটা শুধু নিশ্চিতকরণ যে আমি ঠিক দিকে যাচ্ছে না। আমি যদি একটি চমকপ্রদ নজরদারি করেছি বা অত্যধিক চিন্তাভাবনা করছি তবে দয়া করে আমাকে জানান। আমার প্রশ্নের গঠনমূলক সমালোচনাও স্বাগত। আমি আপনাকে "আমাকে সহায়তা করতে সহায়তা" (অথবা আমি যদি খুব বেশি অন্তর্ভুক্ত করেছি!) সরবরাহ করার জন্য পর্যাপ্ত তথ্য না সরবরাহ করি তবে আমাকে জানতে দিন। আমি আমার প্রশ্নকে আরও পরিষ্কার বা উত্তর সহজ করার জন্য আরও বেশি খুশি হব।

তুমাকে অগ্রিম ধন্যবাদ,


যা ঘটে তা হ'ল আপনি ভিডিও কার্ডটি কোনও হোস্টের সাথে নিজেকে সংযুক্ত হতে দিচ্ছেন না (যেমন আপনার হোস্টের সাথে ভিডিও কার্ডটি সংযুক্ত না করে বুট করুন। হয় ড্রাইভার সরবরাহ / অক্ষম না করে বা কার্নেল বুট প্যারামিটার ব্যবহার করে যাতে এটি বুট করার সময় বাদ যায়) ?
হেনেস

উত্তর:


1

পিসিআই-পাসথ্রুগুলির জন্য উল্লিখিত নিবন্ধটি, কার্নেল কনফিগারেশন প্রয়োজনীয়

make menuconfig
set "Bus options (PCI etc.)" -> "Support for DMA Remapping Devices" to "*"
set "Bus options (PCI etc.)" -> "Enable DMA Remapping Devices" to "*"
set "Bus options (PCI etc.)" -> "PCI Stub driver" to "*"

optional setting: 
set "Bus options (PCI etc.)" -> "Support for Interrupt Remapping" to "*"

তবে, "বাস অপশনগুলি" এর অধীনে এবং এর পরিবর্তে "ডিভাইস ড্রাইভার -> আইওএমএমইউ হার্ডওয়্যার সমর্থন" এর অধীনে আমি এই বিকল্পগুলি খুঁজে পাইনি।

উল্লিখিত নিবন্ধটি অনুসরণ করার পরে, আমার কাছে এখনও অতিথি মেশিনটি বুট করার সমস্যা ছিল এবং ত্রুটিগুলি পেয়েছিল যে "ডিভাইস 'পিসিই-এসাইন্ট' আরম্ভ করা যায়নি"। আমি এটিকে চালিত করে বুট করতে সক্ষম হয়েছি:

 echo 1 > /sys/module/kvm/parameters/allow_unsafe_assigned_interrupts

আপনার যদি এখনও সমস্যা থাকে তবে নিম্নলিখিত নিবন্ধটি দেখুন: http://spica-and-roid.blogspot.com.au/2012/07/howto-kvm-passthrough.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.