লিনাক্সে একটি পিসিআই ডিভাইস রিসেট করুন


12

কমান্ড লাইন থেকে লিনাক্সে কোনও পিসিআই ডিভাইস পুনরায় সেট করার কোনও সাধারণ উপায় আছে? যে, পিসিআই বাস রিসেট কমান্ড জারি করতে।

উত্তর:


6

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.

5

ডিভাইস স্তর পুনরায় সেট করার জন্য পিসিআই বাসের নিকটতম জিনিসটি পাওয়ার স্টেটটি ডি 3 এ এবং ডি 0 এ ফিরে যাচ্ছে। ড্রাইভারটি আনলোড করার পরে (ড্রাইভারের নীচে থেকে হার্ডওয়্যারটি পুনরায় সেট করা খারাপ হবে), আপনি setpciবিদ্যুতের অবস্থা পরিবর্তন করতে কন্ট্রোল রেজিস্টারগুলিতে লিখতে ব্যবহার করতে পারেন , তবে আমি বিশ্বাস করি যে আপনি ড্রাইভারটি আনলোড করার পরে এটি স্বয়ংক্রিয়ভাবে ঘটে happens


1

জেনেরিক পিসিআই ডিভাইস হটপ্লাগেবল না হওয়ায় এটিকে পুনরায় সেট করার কোনও উপায় নেই এবং কার্নেলটি এটি পুনরায় গণনা করতে পারে না।

আপনি যে ধরণের সমস্যা সমাধানের চেষ্টা করছেন, এটিকে পুনরায় সেট করার চেয়ে অবশ্যই আরও ভাল উপায়।


4
আমি কিউইএমইউতে একটি পিসিআই ডিভাইস সিমুলেট করছি এবং আমার বিকাশ হওয়ার সাথে সাথে এটির অবস্থা পুনরায় সেট করতে হবে। আমি অতিথির মধ্যে থেকে এটি করতে চেয়েছিলাম।
জোনাথন

1
আমার একটি বগি পিসিআই সিসিটিভি কার্ড রয়েছে, এটি কাজ করছে তবে কখনও কখনও সেগফোল্ট দিয়ে মারা যায়। এরপরে, পুরো সিস্টেমটি পুনরায় চালু করা দরকার, পিসিআই রিসেট করা এড়ানো এড়াতে পারা যায় ... সিস্টেমটি স্থিতিশীল, কোনও ক্ষতি নেই, কেবলমাত্র ভিডিও ইনপুট ফাঁকা হয়ে যায়, তাই কখনও কখনও পুনরায় চালু করার চেয়ে পিসিআইকে পুনরায় সেট করা এর চেয়ে ভাল সমাধান is প্রতিদিন পুরো মেশিন। (বিশেষত যদি আপনি 6 মাসের জন্য 8000 কিলোমিটার দূরে থাকেন)
জিপস জাকব

1

উপরের সমাধানগুলির সাথে সমস্যাটি হ'ল তাদের ডিভাইসের সমবায় প্রয়োজন; তবে বেশিরভাগ পরিস্থিতিতে এটি পুনরায় সেট করার কারণ হ'ল এটির অসহযোগিতা।

তবে, এখানে যেমন বর্ণনা করা হয়েছে , পিসিআই স্তরে এটি পুনরায় সেট করার জন্য আরও একটি "শক্ত" উপায় রয়েছে: আমরা এটিকে পিসিআই বাস থেকে সরিয়ে ফেলি এবং তারপরে এটি পুনরায় aোকানোর মাধ্যমে একটি রিসান দিয়ে .োকান।

পদক্ষেপগুলি:

  1. echo 1 >/sys/bus/pci/<pci-id-of-device>/remove। আমরা একটি lspciকমান্ড সহ এর পিসিআই আইডি খুঁজে পেতে পারি ।
  2. echo 1 >/sys/bus/pci/rescan

আমার এখানে একটি বগি পিসিআই ডিভাইস রয়েছে, কখনও কখনও পিসিআই-লেভেল রিসেট হয়, কখনও কখনও এই অপসারণ-পঠিত কৌশল এটি ঠিক করে দেয়। আমি এটি স্বয়ংক্রিয়ভাবে করতে একটি স্ক্রিপ্ট লিখতে চলেছি। :-)


বিতৃষ্ণা। আমার ইউএসবি নিয়ামকটি এই রিসেটের পরেও বগি।
ক্রিস

@ ক্রিস আপনি কি নিশ্চিত যে এটি নিয়ামক এবং এটির কোনও ডিভাইস নয়?
পিটারহ - মনিকা পুনরায় ইনস্টল করুন

হ্যাঁ, আমি নিশ্চিত এটি নিয়ামক 00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller। আমি এটি ভিএফআইও এর মাধ্যমে ভিএম এ পাস করি এবং ভিএম রিবুট করার পরে হোস্টটিকে আবার কাজ করতে পুনরায় বুট করতে হবে, অন্যথায় কোনও ইউএসবি প্লাগ ইন সনাক্ত করা হলেও যোগাযোগ ব্যর্থ হয়।
ক্রিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.