লিনাক্স সহ একটি ইউএসবি পাওয়ার সাপ্লাই (চালু / বন্ধ) নিয়ন্ত্রণ করা হচ্ছে


164

লিনাক্সের মাধ্যমে ইউএসবি থেকে ম্যানুয়ালি পাওয়ার সাপ্লাই চালু / বন্ধ করা সম্ভব?

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

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


9
আমাকে লিনাক্স> = 2.6.38 এর জন্য পুনরায় সংশোধন করতে দাও: ফাইলটি power/level এখন অবচয় করা হয়েছে; power/control পরিবর্তে ব্যবহার করুন । ( power/wakeupঠিক আছে।) তদ্ব্যতীত, এটি কেবল "অটো" এবং "চালু" গ্রহণ করে, "স্থগিত" করে না। "অটো" যথেষ্ট স্মার্ট, এবং যদি অলস অবস্থায় বিদ্যুৎটি বন্ধ না করা হয় তবে এটি ডিভাইসের দোষ। যাইহোক আপনি ম্যানুয়ালি পাওয়ারটি বন্ধ করতে পারবেন না। আরো জানার জন্য, দেখুন নিচের উত্তর দ্বারা tlwhitec : এবং কার্নেলের ডক kernel.org/doc/Documentation/usb/power-management.txt
teika kazura


2
এই বৈশিষ্ট্যটি সত্যিই একটি ভাল জিইউআই
মাইকেববকক

এটির জন্য কি কোনও বিশেষ হার্ডওয়্যার প্রয়োজন? উত্তরগুলি থেকে এটি সম্পূর্ণ পরিষ্কার নয়,
ভোজটাচ দোহনাল

উত্তর:


63

বিঃদ্রঃ. এই উত্তরের তথ্যগুলি পুরানো কার্নেলগুলির জন্য প্রাসঙ্গিক (2.6.32 অবধি)। আরও নতুন কার্নেল সম্পর্কিত তথ্যের জন্য tlWitec এর উত্তর দেখুন ।

# disable external wake-up; do this only once
echo disabled > /sys/bus/usb/devices/usb1/power/wakeup 

echo on > /sys/bus/usb/devices/usb1/power/level       # turn on
echo suspend > /sys/bus/usb/devices/usb1/power/level  # turn off

(আপনি USB- এর usb1 পরিবর্তন করার প্রয়োজন হতে পারে এন )

উত্স: ডকুমেন্টেশন / ইউএসবি / শক্তি-পরিচালনা.txt.gz


1
ওহ, এর জন্য ধন্যবাদ আমি ভাবছিলাম আমাকে যাই হোক না কেন libUSB দিয়ে যেতে হবে। সংযুক্ত ডিভাইসগুলির পাশাপাশি নাম কীভাবে পাবেন?
কামজিরো

এই পোস্ট অনুসারে, বিশেষ হার্ডওয়্যার ছাড়া এটি সম্ভব নয়? blog.andrew.net.au/2009/01/17
NoBugs

7
আমি সুডো ব্যবহার করলেও আমি অনুমতি ত্রুটিটিকে অস্বীকার করছি!
ওয়ালি

3
আমার জন্য একই "অনুমতি অস্বীকার করা হয়েছে" এমনকি সুডো ব্যবহারের পরেও
রাউল্প

2
অনুমতিটি অস্বীকার করা হয়েছে কারণ আকারে একটি কমান্ড আউটপুটকে সরাসরিsudo foo > bar আংশিকভাবে পার্স করা হয় bar, তারপরে fooব্যবহার করে চালানsudo । পুনঃনির্দেশটি ব্যর্থ হয়েছে কারণ আপনি রুট অ্যাক্সেস পাওয়ার আগে এটি ঘটে। সমাধানটি হ'ল ব্যবহার sudo sh -c 'echo disabled > /sys/bus/usb/devices/usb1/power/wakeup'করা হবে এবং এগুলিই: রুট অর্জন করুন, একটি পুনর্নির্দেশ সম্পাদন করতে একটি নতুন নরক চালান, তারপরে পুনঃনির্দেশিত ফাইল বিবরণীতে কিছু আউটপুট করুন।
খনন করুন

60

মতে ডক্স , সেখানে কার্নেলের থেকে USB পাওয়ার ম্যানেজমেন্ট বেশ কয়েকটি পরিবর্তন ছিল 2.6.32 , যা নিষ্পত্তির বলে মনে হচ্ছে 2.6.38 । এখন আপনাকে ডিভাইসটি অলস হওয়ার জন্য অপেক্ষা করতে হবে , যা নির্দিষ্ট ডিভাইস ড্রাইভার দ্বারা নিয়ন্ত্রিত হয়। ড্রাইভারকে এটি সমর্থন করা দরকার, অন্যথায় ডিভাইসটি কখনও এই অবস্থায় পৌঁছাতে পারে না। দুর্ভাগ্যক্রমে, এখন ব্যবহারকারীর এটিকে জোর করার কোনও সুযোগ নেই। তবে, আপনি যদি ভাগ্যবান হন এবং আপনার ডিভাইস অলস হয়ে উঠতে পারে, তবে এটি বন্ধ করতে আপনার প্রয়োজন:

echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend"
echo "auto" > "/sys/bus/usb/devices/usbX/power/level"

বা, প্রায় 2.6.38 বা তার বেশি কার্নেলের জন্য:

echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend_delay_ms"
echo "auto" > "/sys/bus/usb/devices/usbX/power/control"

এর আক্ষরিক অর্থ, ডিভাইসটি নিষ্ক্রিয় হওয়ার মুহুর্তে স্থগিত হয়ে যান ।

সুতরাং যদি না আপনার ফ্যান এমন কোনও "বুদ্ধিমান" থাকে যা একটি ডিভাইস হিসাবে দেখা যায় এবং কোনও ড্রাইভার দ্বারা নিয়ন্ত্রিত হয়, আপনি সম্ভবত বর্তমান কার্নেলগুলিতে খুব বেশি ভাগ্য পাবেন না।


দেখে মনে হচ্ছে এটি ইউএসবি ডিভাইসকে অবিচ্ছিন্নভাবে চালিত করে তুলবে ... (?) এই কাজ করার পরে কীভাবে আমার দ্বারা শক্তি পুনরায় চালু করা উচিত? আমার লক্ষ্য হ'ল একবার ডিভাইসটি পুনরায় চালু করা, স্থগিতাদেশের স্থগিতকরণ কনফিগারেশনটি স্থায়ীভাবে পরিবর্তন না করা।
ম্যাটানস্টার

4
করতে সারসংকলন একটি স্থগিত ডিভাইস, আপনি আবার সঙ্গে "autosuspend" নিষ্ক্রিয় করতে পারেন echo "on" > "/sys/bus/usb/devices/usbX/power/control", কিন্তু আমি মনে করি আপনি মূল উদ্দেশ্যের বুঝতে হবে। অটোসপেন্ড বৈশিষ্ট্যটি এখানে কেবল নিখরচায় ডিভাইসগুলিকে স্বল্প-শক্তি অবস্থায় প্রবেশ করতে সক্ষম করার জন্য (যেখানে এটি প্রদর্শিত হতে পারে) কেবল হোস্ট বা কোনও বাহ্যিক ইভেন্ট দ্বারা প্রয়োজন হলে এটি পুনরায় শুরু করতে হবে। এটি স্বয়ংক্রিয়ভাবে ঘটে (বা হওয়া উচিত)। বন্দরটি আসলে সত্যই কখনও বন্ধ হয় না। সত্যিই, ডক্সগুলি পড়ুন ;)
tlWitec

4
আমি নিশ্চিত করতে পারি যে এটি কার্নেল> 3.10 এর সাথে কাজ করে। : শুধু নিশ্চিত করুন যে ডিভাইস "ID" আপনি ব্যবহার করছেন সঠিক হতে হবে dmesg | grep "usb"এবং "USB" পরে নম্বরটি ব্যবহার, উদাহরণস্বরূপ: usb 2-4.4: SerialNumber: A0848020আপনি ব্যবহার করা হবে: /sys/bus/usb/devices/2-4.4/power/...। এছাড়াও, নিশ্চিত হয়ে নিন যে ডিভাইসটি ব্যবহার হচ্ছে না। আমি সৃষ্টি এই প্রক্রিয়া প্রক্রিয়া সহজ করার জন্য স্ক্রিপ্ট
Lepe

এই কনফিগারেশনটি সংরক্ষণ করার কোনও উপায় কী যাতে প্রতিবার এটি প্লাগ হয় তবে ডিফল্টগুলিতে ফিরে না যায়? আমার একটি ডিভাইস রয়েছে যা চার্জ হওয়ার জন্য আমার "চালু" এ পাওয়ার কন্ট্রোল সেট করতে হবে।
quickblueblur

একটি মত @quickblueblur শব্দসমূহ udev দ্বারা নিয়ম আমাকে।
tlWitec

24

আমি এই সমাধানগুলি খুঁজে পেয়েছি যা কমপক্ষে সঠিকভাবে কনফিগার করা টার্মিনাস এফই 1.1 ইউএসবি হাব চিপটির জন্য কাজ করে:

1. কোনও হাবের সমস্ত ইউএসবি পোর্টে পাওয়ার বন্ধ করতে, আপনি কার্নেল থেকে হাবটি আবদ্ধ করতে পারেন:

echo "1-4.4.4" > /sys/bus/usb/drivers/usb/unbind

শক্তি আবার চালু করতে - আপনি এটি ব্যবহার করে এটি আবার বাঁধতে পারেন

echo "1-4.4.4" > /sys/bus/usb/drivers/usb/bind

২. প্রতিটি বন্দরে স্বতন্ত্রভাবে বিদ্যুত্চালনাটি জটিলতর: আমি প্রতিটি বন্দর নিয়ন্ত্রণের জন্য হাবপাওয়ার ব্যবহার করতে সক্ষম হয়েছি - তবে এটি একটি খারাপ দিক দিয়ে আসে: হাবপাওয়ার প্রথমে ইউএসডিজেডফ সংযোগ বিচ্ছিন্ন করে, যার ফলে ইউএসবি ডিভাইসগুলির সমস্তটি কমপক্ষে উবুন্টুতে বিচ্ছিন্ন হয়ে যায় :

usb_ioctl.ioctl_code = USBDEVFS_DISCONNECT;
rc = ioctl(fd, USBDEVFS_IOCTL, &usb_ioctl);

এই ioctlঅক্ষম হয়ে আমি সমস্ত ডিভাইসকে আলাদা না করে স্বতন্ত্র বন্দর শক্তিটি স্যুইচ করতে সক্ষম হয়েছি - তবে পাওয়ারটি তাত্ক্ষণিকভাবে আবার চালু হয়ে যায় (সম্ভবত কার্নেলের কারণে একটি অবিচ্ছিন্ন ডিভাইস দেখার কারণে) যার ফলে ইউএসবি ডিভাইসকে কেবল "কোল্ড রিস্টার্ট" করতে হয় যা আমিই সাধারণত করতে চেয়েছিলেন। আমার প্যাচড হাবপাওয়ার এখানে


লাইনাক্স / আনবাইন্ড এন্ট্রিগুলি লিনাক্স কার্নেল ২.6.৩৪, আইসিএইচপি চিপসেট এবং উবুন্টু ১০.০৪ এ কাজ করার জন্য নিশ্চিত করা হয়েছে।
ব্যবহারকারী1357196

5
বাঁধাই / আনবাইন্ড চিপসেট নির্বিশেষে USB পোর্টকে পাওয়ার অফ করে না। ডিভাইসটি এখনও পাওয়ার পায় ...
18 ই

1
মাউস লেজার বন্ধ আছে, কীবোর্ড ক্যান্ট টাইপ করতে পারে না, মডেম জ্বলতে থেমে যায় - আমার প্ল্যাটফর্মে সব ভাল
এরি

24

ইন্টেল থেকে পাওয়ার টপ আপনাকে রিয়েল-টাইমে ইউএসবি পেরিফেরিয়ালগুলির মতো ডিভাইসগুলি টগল করার অনুমতি দেয়। এগুলিকে বলা হয় 'টিউনেবল'।

sudo apt install powertop
sudo powertop
  • 'টিউনেবল' -র উপরে ট্যাব।
  • আপনার ডিভাইসে নিচে স্ক্রোল করুন।
  • বিদ্যুৎ সাশ্রয় মোডে টগল করতে এন্টার টিপুন ( ভাল / খারাপ )

এখানে চিত্র বর্ণনা লিখুন

নোট করুন বাজে মানে ডিভাইসটি সর্বদা চালু থাকে। টুগলিংয়ে গুড প্রিসেট নিষ্ক্রিয় সাশ্রয় সময় (ডিফল্ট 2000 মিমি) পরে ডিভাইস বন্ধ হবে।

কীভাবে এই পরিবর্তনগুলি স্থায়ী করা যায় সে সম্পর্কে বিশদ পাওয়ার জন্য পাওয়ারটপ ডক্স দেখুন ।
এটি আপনার জন্য কনফিগার স্ক্রিপ্টগুলি উত্পন্ন করে (এই থ্রেডের অন্যান্য পোস্টারগুলির দ্বারা বর্ণিত বেশ)।

দ্রষ্টব্য: এই স্ক্রিপ্টগুলি ইউএসবি পিন পাওয়ারকে প্রভাবিত করে না (যা সর্বদা চালু থাকে)।
এগুলি কেবল কোনও ডিভাইসকে সক্রিয় এবং নিষ্ক্রিয় করতে ড্রাইভার প্রোটোকল প্রেরণ করে।

আপনি যদি পিন শক্তি নিয়ন্ত্রণ করতে চান তবে আপনি কোনও সমর্থিত স্মার্ট ইউএসবি হাব ব্যবহার করতে পারেন বা আরও ভাল কোনও মাইক্রোকন্ট্রোলার ব্যবহার করতে পারেন ।


2
অসাধারণ! : ডিআই মনে করে এটি এটি ব্যবহারকারীর বন্ধুত্বের সবচেয়ে সহজ উপায় (যদিও নিম্ন স্তরে এটি অন্যান্য উত্তরগুলিতে বর্ণিত একই কাজ করে makes) আপনাকে ধন্যবাদ, এবং আপনার উত্তরটি শীর্ষে পৌঁছে যেতে পারে;)
ম্যাটিস

1
আপনার উত্তরের জন্য ধন্যবাদ. প্রিসেট নিষ্ক্রিয় সাশ্রয়ের সময় পরিবর্তন করতে আমাকে কোথায় খনন শুরু করতে হবে?
মাইকেজটার

পূর্ববর্তী পোস্টারগুলির দ্বারা উল্লিখিত হিসাবে, কার্নেল ডক্সগুলি এখানে রয়েছে: কার্নেল.আর
ডমিনিক সেরিসানো

10

আপনি সামঞ্জস্যপূর্ণ ইউএসবি হাবের জন্য প্রতি বন্দরে ইউএসবি পাওয়ার নিয়ন্ত্রণ করতে আমার সরঞ্জাম uhubctl ব্যবহার করতে পারেন ।


অসক্সে দুর্দান্ত সরঞ্জাম, তবে আমার জন্য ডেবিয়ানে কোনও 'সমর্থিত স্মার্ট হাব' খুঁজে পাচ্ছে না।
jitter

1
লিনাক্সে আপনাকে এটি মূল হিসাবে চালাতে হবে (sudo এর অধীনে), অথবা udev ডিভাইসের অনুমতিগুলি কনফিগার করতে হবে। আপনার লিনাক্স হোস্টের সাথে সামঞ্জস্যপূর্ণ হাব সংযুক্ত না থাকাও সম্ভব।
এমভিপি

এটি একটি 'বিগল হাড় সবুজ' বিটিডাব্লু।
jitter

7

আমি এটি করতে চেয়েছিলাম, এবং আমার ইউএসবি হার্ডওয়্যার দিয়ে আমি পারি না। আমি কীভাবে এখানে এটি করতে পারি তা একটি হ্যাকি পদ্ধতিতে লিখেছি:

http://pintant.cat/2012/05/12/power-off-usb-device/

সংক্ষিপ্ত উপায়ে: আমি অন্য ইউএসবি তারের ভিসি সিসি খুলতে / বন্ধ করতে একটি ইউএসবি রিলে ব্যবহার করেছি ...


5
echo '2-1' |sudo tee /sys/bus/usb/drivers/usb/unbind

উবুন্টুর পক্ষে কাজ করে


1
আপনার একমাত্র সমাধান যা আমার মামলায় কাজ করেছে। আমি এসার মেক ল্যাপটপ 12.04LTS উবুন্টু ব্যবহার করছি।
রিকোরিকোচেট

1
ডিভাইসটিকে পাওয়ার অফ করে না, কেবল এটি ডিভাইস তালিকা থেকে সরিয়ে দেয়। আমি কীভাবে ইউএসবি পোর্ট পাওয়ার করব?
rustyx

1
এটি কেবলমাত্র সমাধান যা আমার জন্য ওয়াকম ইন্টুওস 5 টাচ এম ট্যাবলেটটি আনপ্লাগ না করে বিদ্যুৎ ব্যবহারের জন্য কাজ করেছিল (ফেডোরার ২৮ এ)
ব্যবহারকারীর737384

2

ইউএসবি 5 ভি শক্তি সর্বদা চালু থাকে (কম্পিউটার বন্ধ থাকে এমনকী কিছু কম্পিউটার এবং কিছু বন্দরগুলিতেও probably কম্পিউটার।

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


2

লোকেরা কেন এ জাতীয় পোস্ট করে তার কারণ হ'ল ভয়ঙ্কর- সত্যই " ইভিল " - ইউএসবি অটো-সাসপেন্ড " বৈশিষ্ট্য "।

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

আমি আপনাকে কীভাবে ইউএসবি পোর্টগুলি ম্যানুয়ালি টগল করার এবং বন্ধ করার প্রয়োজনটিকে অগ্রাহ্য করে স্বতঃ-স্থগিত নিষ্ক্রিয় করব তা দেখাব :

সংক্ষিপ্ত উত্তর:

আপনি সম্পাদনা "প্রয়োজন হবে না autosuspend_delay_ms ইউএসবি autosuspend বিশ্বব্যাপী এবং অক্ষম করা যেতে পারে:" স্বতন্ত্রভাবে নিরবচ্ছিন্নভাবে নিম্নলিখিত কমান্ড ব্যবহার করছে:

sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/&usbcore.autosuspend=-1 /' /etc/default/grub

update-grub

systemctl reboot

একটি উবুন্টু 18.04 -এর স্ক্রিন- দখলটি "লং উত্তর" এর শেষে অনুসরণ করবে যা আমার ফলাফলগুলি কীভাবে অর্জিত হয়েছে তা চিত্রিত করে।

দীর্ঘ উত্তর:

এটি সত্য যে ইউএসবি পাওয়ার ম্যানেজমেন্ট কার্নেল ডকুমেন্টেশনে অটোসপেন্ডকে অবমূল্যায়ন করতে হবে এবং তার "জায়গায়" ইউটিউব অটোসপেন্ডকে অক্ষম করার জন্য ব্যবহৃত হয়েছে " অটোসপেন্ড_ডলে_এমএস ":

"In 2.6.38 the "autosuspend" file will be deprecated
and replaced by the "autosuspend_delay_ms" file."

তা যে আমার পরীক্ষাকার্যের সেই সেটিং প্রকাশ usbcore.autosuspend=-1মধ্যে , / etc / ডিফল্ট / কীড়া নীচে হিসেবে ব্যবহার করা যেতে পারে গ্লোবাল functionality- আপনি কি ইউএসবি autosuspend জন্য টগল না সম্পাদন করা পৃথক "প্রয়োজন autosuspend_delay_ms " ফাইল।

একই নথিতে রাজ্যের উপরে "0" মান লিঙ্ক করা সক্ষম করা হবে এবং একটি নেতিবাচক মান অক্ষম করা হয়েছে :

power/autosuspend_delay_ms

    <snip> 0 means to autosuspend
    as soon as the device becomes idle, and negative
    values mean never to autosuspend.  You can write a
    number to the file to change the autosuspend
    idle-delay time.

সটীক সালে উবুন্টু 18.04 ব্যাখ্যা আমার ফলাফল অর্জন করা হয় (এবং পুনরায় উত্পাদন) নিচের স্ক্রিন-দখল, দয়া করে লক্ষ্য ডিফল্ট "0" ( সক্রিয় ) এ autosuspend_delay_ms

তারপরে নোট করুন যে গ্রুবে কেবলমাত্র সেটিংয়ের পরে usbcore.autosuspend=-1, এই মানগুলি পুনরায় বুটের পরে নেতিবাচক ( অক্ষম ) are এটি আমাকে স্বতন্ত্র মানগুলি সম্পাদনা করার বিরক্তিকে রক্ষা করবে এবং এখন ইউএসবি অটোসপেন্ড অক্ষম করে স্ক্রিপ্ট করতে পারে।

স্ক্রিনগ্র্যাব: বিশ্বব্যাপী সম্পাদনার আগে এবং পরে অটোসপেন্ড মান

আশা করি এটি ইউএসবি অটোসপেন্ডকে অক্ষম করে তোলে কিছুটা সহজ এবং আরও স্ক্রিপ্টযোগ্য-


1

আমার অ্যান্ড্রয়েড ফোন সংযোগ করার সময় আমার একটি সমস্যা হয়েছিল, আমি আমার ফোনটি চার্জ করতে পারি না কারণ পাওয়ার স্যুইচ চালু এবং বন্ধ হয় ... পাওয়ার টপ আমাকে এই সেটিংটি খুঁজে পেতে দেয় এবং সমস্যাটি সমাধানের জন্য দরকারী ছিল (স্বয়ংক্রিয় মানটি সমস্যা সৃষ্টি করছিল):

echo 'on' | sudo tee /sys/bus/usb/devices/1-1/power/control
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.