আমি কীভাবে ল্যাপটপ অপটিকাল ড্রাইভ ইজেক্ট বোতামটি অক্ষম করব এবং কী-বোর্ড শর্টকাটে ইজেক্ট বরাদ্দ করব?


8

দ্রষ্টব্য: উত্তর এখন 19.04 এর অধীনে কাজ করতে আপডেট হয়েছে

আমি 14.04 এ আছি এবং দুর্ঘটনাক্রমে আমার সিডি / ডিভিডি / ব্লু ড্রাইভটি দিনে প্রায় 20 বার খুলুন। আমি এখানে কয়েকটি প্রশ্ন দেখেছি যা কোনও কার্যকর সমাধান সরবরাহ করে না।

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

আমি যখন করি তখন আমার eject -i onসাথে দেখা হয়eject: unable to find or open device for: 'cdrom'

আমি যখন করি তখন আমি eject -i on /dev/sr0আরও অনুকূল প্রতিক্রিয়া পাই: CD-Drive may NOT be ejected with device buttonতবে দুর্ভাগ্যক্রমে বোতামটি এখনও সক্ষম আছে।

প্রাপ্ত তথ্যের সাহায্যে /proc/sys/dev/cdrom/infoবোঝা যায় যে লক করা সম্ভব:

CD-ROM information, Id: cdrom.c 3.20 2003/12/17

drive name:             sr0
drive speed:            24
drive # of slots:       1
Can close tray:         1
Can open tray:          1
Can lock tray:          1
Can change speed:       1
Can select disk:        0
Can read multisession:  1
Can read MCN:           1
Reports media changed:  1
Can play audio:         1
Can write CD-R:         1
Can write CD-RW:        1

এই উত্তরের একটি কার্যক্ষম সমাধান রয়েছে যা ড্রাইভ লক করতে সক্ষম করার জন্য একটি ইউডিইভি বিধি স্থির করে। আমি সমাধানটিতে কিছু ব্যবহারিক তথ্য যুক্ত করেছি, যার মধ্যে একটিটিকে এটিকে অনুমতি দেয়:

  • প্রারম্ভকালে অপটিকাল ড্রাইভ হার্ডওয়্যার ইজেক্ট বোতামটি অক্ষম করুন
  • অপটিকাল ড্রাইভটি বের করে দেওয়ার জন্য একটি কীবোর্ড শর্টকাট যুক্ত করুন
  • স্থগিতাদেশ থেকে জেগে ওঠার পরে ড্রাইভটি লক থাকা নিশ্চিত করে

1
এটা আমার জন্য কাজ করছে। আপনি কি "udevadm নিয়ন্ত্রণ --reload- বিধি" দিয়ে udev নিয়মগুলি আবার লোড করেছেন ???
solsTiCe

উত্তর:


11

ড্রাইভ লক করা সক্ষম করুন

(দ্রষ্টব্য: যদি eject -i onইতিমধ্যে কাজ করে তবে আপনি "স্টার্টআপে ড্রাইভটি লক করুন" এড়িয়ে যেতে পারেন)

প্রথমে /lib/udev/rules.d/60-cdrom_id.rulesএটি /etc/udev/rules.d/পছন্দ করতে অনুলিপি করুন :

cp /lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/

এরপরে, /etc/udev/rules.d/60-cdrom_id.rules সম্পাদনা করুন এবং সমস্যাযুক্ত লাইনটি মন্তব্য করুন:

sudoedit /etc/udev/rules.d/60-cdrom_id.rules

এই লাইনটি সনাক্ত করুন:

ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"

এখন #এটিকে সামনে দেখানোর জন্য সামনের একটি (এই "মন্তব্যগুলি" কার্যকরভাবে মোছা ছাড়াই বাতিল করুন) যুক্ত করুন:

# ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"

এখন Ctrl+ টিপে সংরক্ষণ করুন এবং বন্ধ করুন X, তারপরে Yনিশ্চিত Enterকরতে, বর্তমান ফাইলের নামটি স্বীকার করার পরে । চিন্তা করবেন না যে এটি একটি অদ্ভুত অস্থায়ী ফাইল নাম হিসাবে প্রদর্শিত হচ্ছে, এটি ঠিক কীভাবে কাজ করে।

এখন আপনি এটি দিয়ে অপটিকাল ড্রাইভ হার্ডওয়্যার বোতামটি অক্ষম করতে সক্ষম হবেন (মূলত আমরা ড্রাইভটি লক করছি):

eject -i on /dev/sr0~ বা ~ eject -i 1 /dev/sr0তারা একই কাজ করে।


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

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

প্রোগ্রামটি খুলুন এবং তারপরে "যুক্ত করুন" বোতামটি ক্লিক করুন, একটি নতুন কথোপকথন বাক্স খোলে।

একটি নাম টাইপ করুন (আমি বর্ণনামূলক "লক অপটিক্যাল ড্রাইভ" নিয়ে গিয়েছিলাম) এবং "কমান্ড:" ফিল্ডটি প্রবেশ করান bash -c 'eject -i on /dev/sr0'

প্রোগ্রামটি সম্পূর্ণ করতে "যুক্ত করুন" এ ক্লিক করুন এবং তারপরে প্রোগ্রামটি বন্ধ করুন।


একটি কীবোর্ড শর্টকাট যুক্ত করুন

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

এই কী-বোর্ড শর্টকাটটি কীভাবে সম্পন্ন করতে হবে তা এখানে:

  • ড্যাশের মধ্যে পাওয়া "কীবোর্ড" প্রোগ্রামটি খুলুন।
  • "শর্টকাটস" ট্যাবে ক্লিক করুন
  • তালিকার নীচে "কাস্টম শর্টকাটস" এ ক্লিক করুন
  • "+" চিহ্নটিতে ক্লিক করুন, একটি নতুন ডায়ালগ বক্স খুলবে
  • শর্টকাটটির নাম দিন (আমি "আনলক, ইজেক্ট, সিডি রিলক" ব্যবহার করেছি)
  • এটি "কমান্ড:" ক্ষেত্রে প্রবেশ করুন:

    bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
    
  • "প্রয়োগ" ক্লিক করুন

  • আপনার শর্টকাটের নামের ডানদিকে ক্লিক করুন যেখানে এটি "অক্ষম" আছে। একবার আপনি এটি ক্লিক করুন, "অক্ষম" পরিবর্তন "নতুন ত্বরণকারী":

    আপনি যে কী সংমিশ্রণটি ব্যবহার করতে চান তা টিপুন। আমি Ctrl+ Alt+ ব্যবহার করেছিE

এরপরে আপনি তাৎক্ষণিকভাবে শর্টকাটটি পরীক্ষা করতে পারেন। সবকিছু ঠিকঠাক থাকলে এবং আপনার কাজ শেষ!


স্থগিতাদেশ থেকে জাগ্রত হওয়ার পরে ড্রাইভ লক করুন (প্রাক-পদ্ধতিযুক্ত পদ্ধতি)

আমি লক্ষ্য করেছি যে আমার ড্রাইভ স্থগিত করা থেকে পুনরায় শুরু হওয়ার পরে আবার আনলক হয়ে গেছে তাই এই ক্ষেত্রে ড্রাইভটি তালাবদ্ধ থাকে তা নিশ্চিত করার জন্য আমি একটি স্ক্রিপ্ট তৈরি করেছি।

স্ক্রিপ্ট ফাইলটি তৈরি করুন:

sudoedit /usr/lib/pm-utils/sleep.d/99lock-optical

নতুন ফাইলটিতে নিম্নলিখিতগুলি আটকে দিন:

#!/bin/sh
# lock the optical drive upon resume from suspend

case "${1}" in
    resume|thaw)
        eject -i 1 /dev/sr0    
;;
esac

স্থগিতাদেশ থেকে জাগ্রত হওয়ার পরে ড্রাইভ লক করুন (পদ্ধতিযুক্ত পদ্ধতি)

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

স্ক্রিপ্ট ফাইলটি তৈরি করুন:

sudoedit /lib/systemd/system-sleep/00start_my_connection

নতুন ফাইলটিতে নিম্নলিখিতগুলি আটকে দিন:

 #!/bin/sh
 if [ $1 = post ]
 then eject -i 1 /dev/sr0
 fi

সংরক্ষণ করুন এবং বন্ধ করুন এবং আপনি প্রস্তুত!


ভাল একটা! (এবং নিরীহ জীবন হ্যাকের প্রয়োজন নেই! দুর্দান্ত ! ) আপনি কি আমাকে পিন দিয়ে মুছতে চান?
ফাব্বী

1
ধন্যবাদ! অন্য কোনও সমাধান নেই এমন লোকদের জন্য রেখে দেওয়া আমার পক্ষে ঠিক। এটি "হ্যাক" এর আর একটি সম্পূর্ণ অর্থ :)
ইন্সপায়ার্টাস

স্পষ্টতই স্থগিত করা রিভার্টগুলি আবার ড্রাইভটি আনলক করে।
ইন্ডিপ্রেটাস 16'15

"সাসপেন্ড / জাগ্রত স্ক্রিপ্ট" নামে পরিচিত এমন কিছু আছে যা সাসপেন্ড / জাগ্রত হওয়ার সময় ডেকে আনে। আমি
আপনাকেও

1
হ্যাঁ, আমি হিসাবে ভাল হিসাবে অনুমান। সমাধানের জন্য এখানে এবং এখানে চেক করা হচ্ছে ।
ইন্সপায়ারটাস

1

আমার জন্য তথ্য এখানে সহায়তা করে: https://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6

আমি / lib / ডিরেক্টরিতে ফাইল সম্পাদনা করেছি , / ইত্যাদি / এখন আমার উবুন্টুতে নেই 14.04 কমান্ডটি কাজ করে: বের করান -i 1 / dev / sr0


দুর্ভাগ্যক্রমে এটি আমার পক্ষে কাজ করে না।
অনুপ্রেরণা

আমার জন্য কাজ করেছেন (উবুন্টু একটি থিংকপ্যাড টি 420-তে লিব ফাইলটি সম্পাদনা করেছেন, যেমন লঞ্চপ্যাডে প্রস্তাবিত
গঞ্জো

প্রকৃতপক্ষে আমি ডিরেক্টরি কাঠামো আঁকছি, আপনি এই উত্তরটি দিয়ে সঠিক পথে ছিলেন!
ইন্সপায়ার্টাস

1

অন্য সব ব্যর্থ হলে:

একটি পিন নিন (আপনার নিজের ক্ষতি করার মতো সুই নয়), ডিভিডি ড্রাইভের বোতামের পিছনে দৃ push়ভাবে চাপুন এবং বোতামটি বেরোনোর ​​জন্য এটি লিভার হিসাবে ব্যবহার করুন। তারপরে প্লাস্টিকের 1 মিমি প্রশস্ত এবং এর পরে বৃহত্তর বৃহত আকারের একটি ছোট টুকরো নিন, তার উপর কিছু সুপার আঠালো রাখুন এবং যত্ন করে যত্ন করে গর্তের উপর আঠালো রাখুন যাতে এটি তার পাশের ছোট গর্তের উপরে না রাখে

এখন থেকে ডিভিডি ড্রাইভটি খোলার জন্য নিম্নলিখিত 2 টি পদ্ধতি ব্যবহার করুন:

  1. ড্যাশের মাধ্যমে উবুন্টু "ইজেক্ট" ব্যবহার করুন
  2. এখন থেকে আপনার পিসির চারপাশে সেই লাইফ-হ্যাক পিনটি রাখুন এবং আপনার ল্যাপটপটি বন্ধ হয়ে যাওয়ার পরে ডিভিডি বের করার জন্য আপনার প্লাস্টিকের টুকরোটির পাশের ছোট্ট গর্তের মধ্যে চাপ দিন । (আপনার ল্যাপটপের নীচে লাইফ-হ্যাক পিনটি দৃten় করতে এক টুকরো আঠালো টেপ ব্যবহার করুন)

1
তবে আমার সিড্রোম-ড্রাইভটি ধ্বংস করা ট্রিকে সফটওয়্যার-লক করার কীভাবে উত্তর হিসাবে প্রত্যাশা করব তা আসলে নয়! এটি করার আগে, আমি এমনকি কার্ডবোর্ডের একটি ছোট টুকরা নিতে চাইতাম, এতে বোতামের মতো আকারের একটি গর্ত কেটে বেরোনোর ​​বোতামের উপরে টেপ করব যাতে এটি দুর্ঘটনাক্রমে যেমন স্পর্শ করা যেমন আপনার হাঁটুর সাথে এটি ট্রিগার না করে।
বাইট কমান্ডার

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

খুব ভাল লাগলো, কিন্তু আমি এটিকে রূপান্তর করতে পারি না এবং আমি এটি আর লিখতে চাই না। এটি যদি কাউকে সহায়তা করে তবে তা ঠিক আছে। এবং আপনি মন্তব্যগুলি upvote করতে পারেন। যাইহোক, আপনি কীভাবে জানতে চান যে প্রশ্ন পোস্টার থেকে আপনি আপনার ভোট পেয়েছেন?
বাইট কমান্ডার

@ বাইটকম্যান্ডার: আপাতত মন্তব্যগুলি আপনাকে কোনও জবাব দেয় না। আমি অন্য মন্তব্যটি না রাখলে আমি কেবল একটি মন্তব্য আপভোট করি। এটি পিছনে একটি থাপ্পর মত। এবং একটি অতিরিক্ত মন্তব্য একটি বড় আলিঙ্গন মত! > :)
ফবি

@ বাইটকম্যান্ডার: সাধারণত আপনি জানেন না কে কারা আপ / ডাউনভোট করে, কিন্তু আমি দেখেছি উর্ধ্বতনটি এসেছিল, প্রশ্নে গেছে, ওপি ব্যবহারকারী পৃষ্ঠায় গিয়ে "শেষ ক্রিয়াকলাপ: 1 মিনিট" দেখেছিল। সুতরাং আমি অনুমিত করেছি যে এটি তার / এটিই ছিল এবং এটি আমাকে একটি হাসিও দিয়েছে।
ফবি

0

বোতামটি বেরোনোর ​​চেষ্টা করতে এটি চেষ্টা করুন:

  1. খুলুন: সিস্টেম সেটিংস > কীবোর্ড > শর্টকাটস > শব্দ এবং মিডিয়া

  2. "ইজেক্ট" নির্বাচন করুন এবং শর্টকাটটি সাফ করুন ("ব্যাকস্পেস" টিপে)।

পরিবর্তে কিছু বেশি কার্যকর করার জন্য আপনি শর্টকাট সেটিংস ব্যবহার করতে পারেন, যেমন সাধারণভাবে ব্যবহৃত অ্যাপ্লিকেশনটি খুলুন, আপনার স্ক্রীনটি লক করুন বা আপনার ওয়াইফাইটি পুনরায় সেট করুন।


সূত্র:

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


প্রকৃত ড্রাইভের বোতামটি চাপছি এবং কীবোর্ড বোতামটি নয় বলে এটি আমার পক্ষে কার্যকর হয়নি।
ইন্সপায়ার্টাস

0

এই সাইটে আমি এই পরামর্শটি eject -i 1কাজ না করে পেয়েছি :
sudo echo 1 > /proc/sys/dev/cdrom/lockলক করা (আনলক করার জন্য 1 এর পরিবর্তে 0)
এছাড়াও অন্যান্য কয়েকটি বিকল্পও ডিকাসড রয়েছে।

এখানে একটি ছোট সি সোর্স কোড রয়েছে যা অন্য বিকল্পটি সম্পাদন করছে: লিঙ্ক (উপরের মন্তব্যে নতুন সংস্করণগুলির জন্য বাগফিক্সটি লক্ষ্য করুন!)

তবে আমি অন্য কয়েকটি ফোরামে পড়েছি যে এই সমস্ত ইজেক্ট-কমান্ডগুলি কেবল ডিস্ক sertedোকানো এবং মাউন্ট করা হলেই ড্রাইভের লকিংয়ের স্থিতি পরিবর্তন করে। একমাত্র সমাধানটি একটি সরঞ্জাম বলে মনে হচ্ছে cdctl, তবে আমি মন্তব্যগুলি অধ্যয়ন করার সাথে সাথে এটি অনেকগুলি সিস্টেমের সাথে খুব সামঞ্জস্যপূর্ণ নয়।

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