3.7.10 বা তার উপরের কার্নেলটিতে ইউএসবি অটোসপেন্ডকে কীভাবে অক্ষম করবেন?


37

আমি আমার এইচটিপিসিটি কার্নেল 3.7.10 থেকে 3.10.7 থেকে আপডেট করেছি এবং মনে হচ্ছে CONFIG_USB_SUSPEND এখন কার্নেল বিকল্প থেকে বাদ পড়েছে এবং প্রধানমন্ত্রীর অন্তর্ভুক্ত রয়েছে।

আমি যে প্রধান সমস্যাটির মুখোমুখি হচ্ছি তা হ'ল আমার একটি বাহ্যিক এইচডিডি রয়েছে এবং এইচটিপিসি স্থগিত ও জাগ্রত করার সময়, এটি সিস্টেমে উপলব্ধ নয়। এইচডিডি ঘুম থেকে ওঠে (আপনি এটি আবার স্পিন করতে শুনতে পাচ্ছেন), তবে আপনি যখন মাউন্ট পয়েন্টটি অ্যাক্সেস করার চেষ্টা করবেন তখন নীচের ত্রুটিটি পাবেন:

ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error

এবং ডেমসগে:

[  253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading   directory block (ino 2, block 0)

পূর্ববর্তী কার্নেলগুলিতে, CONFIG_USB_SUSPEND = N নির্ধারণ করা সমস্যার সমাধান করবে কারণ এইচডিডি নিজেই এর হাইবারনেশন পরিচালনা করবে এবং মাউন্ট পয়েন্টটি সর্বদা অ্যাক্সেসযোগ্য ছিল। যখন এইচডিডি ঘুমোচ্ছিল এবং এইচটিপিসির এইচডিডি এর মাউন্ট পয়েন্ট থেকে কোনও কিছুর প্রয়োজন ছিল, তখন এইচডিডি নিজেই জেগে উঠত এবং কোনও সমস্যা ছাড়াই কাজ করবে।

এই মুহূর্তে আমি সফলতা ছাড়াই নিম্নলিখিতগুলি চেষ্টা করেছি:

  1. ম্যানুয়ালি পরিবর্তন / sys / বাস / ইউএসবি / ডিভাইস / USB * / শক্তি / নিয়ন্ত্রণ করতে "চালু" পরিবর্তে "অটো"
  2. ম্যানুয়ালি পরিবর্তন / sys / বাস / ইউএসবি / ডিভাইস / USB * / শক্তি / autosuspend করতে "-1" মান পরিবর্তে "0"

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

কার্নেল ৩.7.১০ বা তারপরে ইউএসবি অটোসপেন্ডকে কীভাবে অক্ষম করবেন তার কোনও ধারণা?


লেজ /sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persistআপনাকে দেয় কি 1? না grep CONFIG_PM_RUNTIME /boot/config-$(uname -r)আপনাকে দিতে y? পাওয়ার-ম্যানেজমেন্ট।
টেক্সট

1
power/persistদেয় 1এবং আমার কোনও কনফিগার ফাইল নেই /bootCONFIG_PM_RUNTIME=yকার্নেলের .configফাইলটিতে কনফিগার করা আছে ।
পিটার

উত্তর:


32

জন্য উবুন্টু এবং ডেবিয়ান , usbcoreকার্নেলের মধ্যে কম্পাইল করা হয়, তাই উপর এন্ট্রি তৈরি /etc/modprobe.dহবে না কাজ: আমরা কার্নেল বুট প্যারামিটার পরিবর্তন করতে হবে।

/etc/default/grubফাইলটি সম্পাদনা GRUB_CMDLINE_LINUX_DEFAULTকরুন এবং usbcore.autosuspend=-1বিকল্পটি যুক্ত করতে লাইনটি পরিবর্তন করুন :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"

নোট যে quit splashইতিমধ্যে উপস্থিত বিকল্প ছিল। সুতরাং আপনার অন্যান্য অপশনও রাখুন।

ফাইল সংরক্ষণের পরে, গ্রাব আপডেট করুন:

sudo update-grub

এবং রিবুট

এখন autosuspendমূল্য পরীক্ষা করুন :

cat /sys/module/usbcore/parameters/autosuspend

এবং এটি প্রদর্শিত হবে -1

কার্নেলের ডকুমেন্টেশনে বলা হয়েছে যে ভবিষ্যতে কোনও দিন এই পরম পরিবর্তিত হবে autosuspend_delay_ms(পরিবর্তে autosuspend)।


1
এটি দেবিয়ানদের জন্যও সত্য বলে মনে হয়।
বেনিয়ামিন ট্রেন্ট

2
রায়েল, এর জন্য আপনাকে অনেক ধন্যবাদ। কালের সবচেয়ে সাম্প্রতিক সংস্করণেও এটি একই। আমি উপরেরটি যুক্ত করেছি এবং আমার ইউএসবি আইআরটয় (v2) এখন সঠিকভাবে কাজ করছে।
জোত

1
আমার একটি এমপিসিআইই স্লটে একটি ইউএসবি কার্ড রয়েছে এবং কেবল সত্যটি চাননি। চলছে দেবিয়ান জেসি। এটি আমার সমস্যাটিকে একটি বিশাল মাথাব্যথার সমাধান করেছে, ধন্যবাদ!
xebo

আমি এটি উবুন্টু 15.10 এ চেষ্টা করেছি তবে মান প্রয়োগ করা হয়নি (মানটি 2)। আমি চেষ্টা করতে পারেন অন্য কিছু আছে?
জোনাস অ্যাডলার

আমি এখনও 14.04 এ আছি। তবে আফিক, সর্বশেষতম কার্নেল সংস্করণগুলিতে, পরম পরিবর্তন করতে হবে autosuspend_delay_ms
রায়েল গুগেলিন চুনহা 25'15

19

কার্নেল ট্রি ডকুমেন্টেশন অনুসারে অটোসপেন্ড অলস-বিলম্ব সময়টি autosuspendমডিউল পরামিতি দ্বারা নিয়ন্ত্রণ করা হয় usbcore। প্রাথমিক ডিফল্ট অলস-দেরি -1-এ সেট করা কোনও ইউএসবি ডিভাইসের স্ব-দোষ আটকাবে। আপনার এখনও নির্বাচিত ডিভাইসগুলির জন্য অটোসপেন্ড সক্ষম করতে সক্ষম হওয়া উচিত।

usbcore.autosuspendমডিউলটি ম্যানুয়ালি লোড হওয়ার পরে কার্নেল প্যারামিটার সেট করা যেতে পারে:

$ modprobe usbcore autosuspend=-1

বা একটি কনফিগারেশন ফাইলে নিম্নলিখিত লাইনটি যুক্ত করে /etc/modprobe.d:

options usbcore autosuspend=-1

তাহলে usbcoreকার্নেলের মধ্যে কম্পাইল করা হয়, প্যারামিটার Kernel কমান্ড-লাইনের নিম্নলিখিত যোগ করে স্থায়ী করা যেতে পারে:

usbcore.autosuspend=-1

শেষ অবধি, বিকল্পটি রানটাইমে এডজাস্ট করা যেতে পারে:

echo -1 >/sys/module/usbcore/parameters/autosuspend

পরিবর্তনটি সমস্ত নতুন ইউএসবি ডিভাইসগুলিকে প্রভাবিত করবে। ইতিমধ্যে বিদ্যমান ডিভাইসগুলি প্রভাবিত হবে না।


2
আমি usbcoreকার্নেলের মধ্যে সংকলন করেছি , তবে modprobe.dবিকল্পটি ব্যবহার করা কার্যকর বলে মনে হচ্ছে না। modprobe -c usbcore | grep autosuspendএটি হিসাবে প্রদর্শন করেও -1, cat /sys/module/usbcore/parameters/autosuspendআমি পেয়ে যাচ্ছি2
পিটার

1
@ পিটার: হ্রাস autosuspendকরা হয়েছে। নতুন ফাইলটি autosuspend_delay_msযা সেকেন্ডের পরিবর্তে এমএস নেয়। সুত্র । তবে power/controlসেট onএকই প্রভাব থাকতে হবে।
রুনিয়াম

@ সুকিমিন্ডার, অটোসপেন্ডকে চিরকালের জন্য অক্ষম রাখার জন্য আমার তখন কী কনফিগার করা উচিত? আমি autosuspend=-1উভয় modprobe.dএবং kernelপরামিতি ব্যবহার করার চেষ্টা করেছি , কিন্তু এইচডিডি এখনও স্থগিত করে এবং ভালভাবে জাগ্রত হয় না।
পিটার

1
@ পিটার: আমি যদি জানতাম আমি আপনাকে বলব :)। আমি কেবল কোন ডকটি উদ্ধৃত করছি। বলেছেন। আপনার পিটি। আপনার পোস্টের 1 টি যতদূর আমি বলতে পারি এটি করা উচিত ছিল কেন আমি তা জানি না। আপনি সেট autosuspend_delay_msকরার চেষ্টা করেছেন -1? (ইন /sys/bus/usb/devices/<device>/power/autosuspend_delay_ms)
রুনিয়াম

1
আমি কার্নেল 4.4 এ আছি এবং autosuspend_delay_msসেখানে নেই। তবে autosuspendআইএস।
মারিয়ানো ডুপোন্ট

2

আমি সঙ্গে একটি অনুরূপ সমস্যা আছে মাইক্রোসফট চাকা মাউস অপটিক্যাল ইউএসবি এবং PS / 2 সমঞ্জসে একটি আপগ্রেড যেহেতু লিনাক্স মিন্ট ডেবিয়ান এডিশন কার্নেল সিস্টেম 3.10-2-amd64। কার্নেলের USB পাওয়ার ম্যানেজমেন্টের দ্বারা একটি অনুপযুক্ত অটোসপেন্ড সন্দেহ করা হয়েছিল। দেবিয়ানতে usbcoreএটি কার্নেলের মধ্যে মডিউল হিসাবে সংকলিত হয় ।

আপনি কমান্ড লাইনে জারি করে স্থায়ীভাবে এটি পরিবর্তন করতে পারেন:

sudo echo "options usbcore autosuspend=-1" | sudo tee /etc/modprobe.d/disable-usb-autosuspend.conf > /dev/null

autosuspend=0যদিও কিছু কার্নেলের প্রয়োজন হতে পারে ।

যদি আপনার সিস্টেম ব্যবহার করে initrd(সম্ভবত এটি করে) তবে initrdআপনার কার্নেলের জন্য পুনরায় বিল্ড করুন।

উদাহরণ স্বরূপ:

uname -r
sudo dpkg-reconfigure linux-image-3.10-2-amd64

পুনরায় বুট করুন এবং সাথে চেক করুন:

cat /sys/module/usbcore/parameters/autosuspend

যা -1এখন ফলন করা উচিত ।


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