`Udev s ব্যবহার করে আমি কীভাবে / সিসিতে অনুমতিগুলি পরিবর্তন করতে পারি?


11

আমি একটি থিঙ্কপ্যাড পেয়েছি এবং আগত জব্বার বার্তাগুলির বিজ্ঞপ্তিগুলির জন্য থিঙ্কলাইট (কীবোর্ডটি আলোকিত করার জন্য পর্দার উপরে সাদা ফ্ল্যাশ লাইট) ব্যবহার করতে চাই।

এটি কেবল /sys/class/leds/tpacpi::thinklight/brightness255 এ পরিবর্তিত হওয়া দরকার তা উপলব্ধি করা সহজ I'll

তবে এটি করতে সক্ষম হওয়ার জন্য আমাকে অনুমতিগুলি পরিবর্তন করতে হবে, কেবল রুটই এই ফাইলটি পরিবর্তন করতে সক্ষম নয়।
এবং আমি sudo chmod o+w /sys/class/leds/tpacpi::thinklight/brightnessপ্রতিটি বুট পরে চাই না ।

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

আমি এই udevনিয়মটি চেষ্টা করেছি :

KERNEL=="tpacpi::thinklight", MODE="0666"

পাশাপাশি

KERNEL="thinklight", MODE="0666"

কিন্তু এটা কাজ করে না। যদিও দৌড়ানোর সময় আমি ত্রুটি পাচ্ছি নাudevadm test /class/leds

কোন সাহায্য এবং হিট জন্য ধন্যবাদ। বা অন্য সমাধান হতে পারে।


বিজ্ঞপ্তিটি সহ ভাল ধারণা, এটিও করতে হবে :) ধন্যবাদ
1773 আর

উত্তর:


7

আমি ledsসমস্ত এলইডি তে গ্রুপের সদস্যদের অ্যাক্সেস দিতে নীচে দুটি উদেব নিয়ম ব্যবহার করছি :

SUBSYSTEM=="leds", ACTION=="add", RUN+="/bin/chgrp -R leds /sys%p", RUN+="/bin/chmod -R g=u /sys%p"
SUBSYSTEM=="leds", ACTION=="change", ENV{TRIGGER}!="none", RUN+="/bin/chgrp -R leds /sys%p", RUN+="/bin/chmod -R g=u /sys%p"

লক্ষ্য করুন ACTION=="change"গতিশীলভাবে তৈরি বৈশিষ্ট্যগুলি হ্যান্ডেল করার জন্য নিয়মটি প্রয়োজন। উদাহরণস্বরূপ, যদি LED এর ট্রিগার "টাইমার" (সেট করা হয় echo timer > trigger), তারপর অতিরিক্ত বৈশিষ্ট্যাবলী delay_onএবং delay_offনির্মিত হয়। changeযাতে এই নতুন বৈশিষ্ট্যাবলী তাদের গ্রুপ এবং অনুমতি সেট আছে কর্ম উল্লেখ করা হয়।

আমি লক্ষ করেছি যে changeপ্রতিবার এলইডি বন্ধ করে প্রতিযোগিতায় একটি ইভেন্ট তৈরি করা 0হয়েছে /sys/class/leds/.../brightness। এটি লিনাক্স এলইডি ড্রাইভার কোড ক্লিয়ারিং ট্রিগারগুলির কারণে বলে মনে হচ্ছে যখনই উজ্জ্বলতা সেট করা থাকে 0। এজন্য দ্বিতীয়বার নিয়মের ENV{TRIGGER}!="none"শর্ত রয়েছে, প্রতিবার কোনও এলইডি বন্ধ থাকা অবস্থায় নিয়মটি ট্রিগার করা রোধ করতে।


1

আমার মনে হয় আপনার ভুল 'কার্নেল' সেটিংস রয়েছে। ওদেব বিধিগুলি লিখিত এবং ডিবাগ করার জন্য দুর্দান্ত এই ডক থেকে:

http://www.reactivated.net/writing_udev_rules.html#basic

আমার মনে হয় আপনার KERNEL = উজ্জ্বলতা এবং সম্ভবত একটি সাবসাইটিএম = নেতৃত্বের প্রয়োজন

তারপরে, যদি আপনার ডিস্ট্রোতে ইনোটিফাই সমর্থন না থাকে। আপনার পরিবর্তনগুলি udevd দ্বারা দেখা হচ্ছে তা নিশ্চিত করুন:

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