উত্তর:
http://www.kernel.org/doc/Docamentation/ABI/testing/sysfs-bus-pci অনুসারে আপনি যদি ডিভাইসের স্বতন্ত্র ফাংশনগুলি সমর্থন করে তবে তা পুনরায় সেট করতে পারেন:
What: /sys/bus/pci/devices/.../reset
Description:
Some devices allow an individual function to be reset
without affecting other functions in the same device.
For devices that have this support, a file named reset
will be present in sysfs. Writing 1 to this file
will perform reset.
ডিভাইস স্তর পুনরায় সেট করার জন্য পিসিআই বাসের নিকটতম জিনিসটি পাওয়ার স্টেটটি ডি 3 এ এবং ডি 0 এ ফিরে যাচ্ছে। ড্রাইভারটি আনলোড করার পরে (ড্রাইভারের নীচে থেকে হার্ডওয়্যারটি পুনরায় সেট করা খারাপ হবে), আপনি setpci
বিদ্যুতের অবস্থা পরিবর্তন করতে কন্ট্রোল রেজিস্টারগুলিতে লিখতে ব্যবহার করতে পারেন , তবে আমি বিশ্বাস করি যে আপনি ড্রাইভারটি আনলোড করার পরে এটি স্বয়ংক্রিয়ভাবে ঘটে happens
জেনেরিক পিসিআই ডিভাইস হটপ্লাগেবল না হওয়ায় এটিকে পুনরায় সেট করার কোনও উপায় নেই এবং কার্নেলটি এটি পুনরায় গণনা করতে পারে না।
আপনি যে ধরণের সমস্যা সমাধানের চেষ্টা করছেন, এটিকে পুনরায় সেট করার চেয়ে অবশ্যই আরও ভাল উপায়।
উপরের সমাধানগুলির সাথে সমস্যাটি হ'ল তাদের ডিভাইসের সমবায় প্রয়োজন; তবে বেশিরভাগ পরিস্থিতিতে এটি পুনরায় সেট করার কারণ হ'ল এটির অসহযোগিতা।
তবে, এখানে যেমন বর্ণনা করা হয়েছে , পিসিআই স্তরে এটি পুনরায় সেট করার জন্য আরও একটি "শক্ত" উপায় রয়েছে: আমরা এটিকে পিসিআই বাস থেকে সরিয়ে ফেলি এবং তারপরে এটি পুনরায় aোকানোর মাধ্যমে একটি রিসান দিয়ে .োকান।
পদক্ষেপগুলি:
echo 1 >/sys/bus/pci/<pci-id-of-device>/remove
। আমরা একটি lspci
কমান্ড সহ এর পিসিআই আইডি খুঁজে পেতে পারি ।echo 1 >/sys/bus/pci/rescan
আমার এখানে একটি বগি পিসিআই ডিভাইস রয়েছে, কখনও কখনও পিসিআই-লেভেল রিসেট হয়, কখনও কখনও এই অপসারণ-পঠিত কৌশল এটি ঠিক করে দেয়। আমি এটি স্বয়ংক্রিয়ভাবে করতে একটি স্ক্রিপ্ট লিখতে চলেছি। :-)
00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
। আমি এটি ভিএফআইও এর মাধ্যমে ভিএম এ পাস করি এবং ভিএম রিবুট করার পরে হোস্টটিকে আবার কাজ করতে পুনরায় বুট করতে হবে, অন্যথায় কোনও ইউএসবি প্লাগ ইন সনাক্ত করা হলেও যোগাযোগ ব্যর্থ হয়।