আমি কীভাবে একটি ওয়্যারলেস কার্ডের রেডিও ডিফল্টভাবে চালিত রাখতে পারি?


11

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

উত্তর:


4

কমপক্ষে দুটি আপসার্ট কাজ রয়েছে যা ডিফল্ট ওয়্যারলেস রাষ্ট্রকে প্রভাবিত করে:

  • /etc/init/rfkill-restore.confরেকর্ড অনুসারে, সর্বশেষ শাটডাউনে যা ছিল তার সমস্ত রেডিওর জন্য সফট ব্লক অবস্থা পুনরুদ্ধার করে /var/lib/rfkill/saved-state
  • /etc/init/network-manager.confনেটওয়ার্ক ম্যানেজার শুরু হয় যা ঘুরে তার থেকে বেতার অবস্থার ধারণাটিকে পুনরুদ্ধার করে /var/lib/NetworkManager/NetworkManager.state

আপনি যদি এই দুটি কাজের কনফিগারেশনটি লক্ষ্য করেন তবে দেখতে পাবেন যে তাদের কোনও অস্থায়ী সম্পর্ক নেই , যা আমার কাছে কোনও ডিজাইনের ত্রুটির মতো বলে মনে হয়। আমি অনুমান করছি এই রেসের অবস্থাটি খুব কমই একটি সমস্যা কারণ /etc/init/rfkill-restore.confএটি খুব সহজ এবং শুরুর শর্ত খুব কম।

সকল ব্যবহারের একটি বেতার বন্ধ ডিফল্ট যে আমি দেখা করেছি চেষ্টা প্রয়োগ সমাধান /etc/rc.localসহ, "আধুনিক" সমাধান যে @Lekensteyn এবং @ rubo77 নিয়ে এসেছেন। দুর্ভাগ্যক্রমে, আমি যে দুটি ল্যাপটপের চেষ্টা করেছি সেগুলির সমাধান আমার পক্ষে কার্যকর হয় না। এই প্রবণতা বিশেষ করে বিস্ময়কর নয় কারণ /etc/rc.local এছাড়াও রয়েছে কোন সময়গত সম্পর্ক যে আমি হয় এর খুঁজে পেতে পারেন /etc/init/rfkill-restore.confএবং /etc/init/network-manager.conf। একটি /etc/rc.localজারি করার আগে দীর্ঘ ঘুমের মধ্যে নিক্ষেপ করা rfkill block wifiএই রেসের শর্তের জগাখিচুড়ি জন্য কুৎসিত কাজ, তবে দেরি যদি দীর্ঘ হয় তবে এটি কাজ করে।

একটি ভাল সমাধান আমাদের মধ্যে আমাদের কাঙ্ক্ষিত রাজ্যের আরোপ করার জন্য হবে /var/lib/rfkill/saved-stateএবং /var/lib/NetworkManager/NetworkManager.state সামনে ঐ দুই ভুঁইফোড় কাজ এমনকি চালানোর জন্য অনুমতি দেওয়া হয়েছে। আমরা আমাদের নিজস্ব আপস্টার্ট কাজ তৈরি করে এটি অর্জন করতে পারি। প্রকৃতপক্ষে, আমাদের প্রয়োজনীয় সময়টি অর্জন করতে আমাদের দুটি কাজের কনফিগারেশন ফাইলের প্রয়োজন হবে।

আমাদের প্রথম কাজের কনফিগারেশনটি আমাদের প্রয়োজনীয় প্রকৃত ফাইল পরিবর্তনগুলি করে। এটি যত তাড়াতাড়ি সম্ভব চলবে এবং কেবল একবার চালানো হবে। /etc/init/radio-silence.confএই বিষয়বস্তু দিয়ে তৈরি করুন :

# radio-silence - Ensure radio silence on startup
#
# Override default startup behaviour of radios to ensure they are all
# disabled until the user deliberately enables them. This job requires
# radio-silence-wait to delay start of any services that may depend on
# resources manipulated by this job.

description "Disable all radios by default"

start on local-filesystems

pre-start script
  sed -i -re "s/^(.+[[:space:]]+)[01][[:space:]]*\$/\11/" /var/lib/rfkill/saved-state
  sed -i -re "s/^(WirelessEnabled=).*\$/\1false/" /var/lib/NetworkManager/NetworkManager.state
end script

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

আমাদের দ্বিতীয় কাজের কনফিগারেশন ফাইলের পরিবর্তনগুলি সম্পন্ন করার আগে rfkill-restoreএবং network-managerচাকরির কোনওটিই শুরু হবে না তা নিশ্চিত করার জন্য দায়বদ্ধ radio-silence/etc/init/radio-silence-wait.confনিম্নলিখিত হিসাবে তৈরি করুন :

# radio-silence-wait - Helper task for radio-silence
#
# Delays the start of all jobs that may depend on resources manipulated
# by radio-silence job. Avoids the need to modify job configuration of
# those other jobs.

description "Assist radio-silence by delaying jobs it affects"

start on (starting rfkill-restore or starting network-manager)
stop on (started radio-silence or stopped radio-silence)

instance $JOB
normal exit 0 2
task

script
  status radio-silence | grep -q "start/running" && exit 0
  start radio-silence || true
  sleep infinity
end script

এই সমাধানের সাথে আমি আর দৌড়ের অবস্থার সমস্যাগুলি দেখতে পাচ্ছি না, যদিও আমি rfkill-restoreএবং এর মধ্যে তাত্ত্বিক জাতিটির দিকে নজর দিইনি network-manager

এই কাজগুলি কীভাবে আমাদের অস্থায়ী লক্ষ্য অর্জনের জন্য একসাথে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, আমার প্রশ্ন এবং উত্তরটি দেখুন, "আমি অন্য দুটি কাজ শুরুর আগে গ্যারান্টিযুক্ত একক-প্রয়োগকারী আপস্টার্ট কাজ কীভাবে তৈরি করব?"


7

নেটওয়ার্ক ম্যানেজার ব্যবহার করে "আধুনিক" সমাধান: কেবলমাত্র নেটওয়ার্ক ম্যানেজার অ্যাপলেট (কেডিএ: নেটওয়ার্ক ম্যানেজমেন্ট) এর ওয়্যারলেস সক্ষম সক্ষম বিকল্পটি চেক করুন che কমান্ড nmcli nm wifi offসমান। আপনি যদি বিক্ষিপ্তভাবে Wi-Fi সক্ষম করেন তবে পড়া চালিয়ে যান, তবে পুনরায় বুট করার সময় এটিকে অক্ষম করে তুলতে চান।

ওয়্যারলেস স্টেটটি ফাইলটিতে মনে আছে /var/lib/NetworkManager/NetworkManager.state। বুটে ওয়াই-ফাই নিষ্ক্রিয় করতে, নিশ্চিত হয়ে নিন যে কীটি WirelessEnabledচালু রয়েছে false। আপনি নেটওয়ার্ক ম্যানেজারের init স্ক্রিপ্ট সম্পাদনা করে বা /etc/rc.localনীচের কৌশলটি ব্যবহার করে এটি করতে পারেন । আপনার যে আদেশটি প্রয়োজন তা হ'ল:

sed s/^WirelessEnabled=true/WirelessEnabled=false/ -i /var/lib/NetworkManager/NetworkManager.state
rfkill block wifi

এটি আগে রাখুন exit 0(নীচে বর্ণিত হিসাবে) rfkill block wifiকমান্ড এখনো নেটওয়ার্ক ম্যানেজার (NM) প্রারম্ভে সঙ্গে একটি জাতি কারণে প্রয়োজন হয়। একবার এনএম শুরু হয়ে গেলে, স্টেট ফাইলটিতে পরিবর্তনগুলি কার্যকর হয় না।


(পুরানো উত্তর যা কমান্ডের /etc/rc.localব্যাখ্যা সহ ফাইল সম্পাদনা জড়িত rfkill)

কিছুটা হ্যাকি, তবে এটি কাজ করা উচিত। rfkillকমান্ডটি ব্যবহার করে একটি ওয়্যারলেস কার্ড অক্ষম করা যায় । আরএফকিলে ব্যবহৃত সমস্ত ডিভাইস ব্যবহার করে দেখানো যেতে পারে rfkill list। নমুনা আউটপুট:

0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

Hard blockedএটি একটি হার্ডওয়্যার সেটিংয়ের উপর নির্ভরশীল, যেমন একটি নোটবুকের একটি বেতার সুইচ। Soft blockedওএস (উবুন্টু) দ্বারা নিয়ন্ত্রিত হতে পারে।

এটা কিভাবে কাজ করে? এটিতে কোনও ম্যানপেজ নেই, চালানো rfkillএই ক্ষেত্রে একটি সহায়তা পাঠ্য সরবরাহ করে:

Usage:  rfkill [options] command
Options:
        --version       show version (0.4)
Commands:
        help
        event
        list [IDENTIFIER]
        block IDENTIFIER
        unblock IDENTIFIER
where IDENTIFIER is the index no. of an rfkill switch or one of:
        <idx> all wifi wlan bluetooth uwb ultrawideband wimax wwan gps fm

আহ, এখন আমরা কোথাও পাচ্ছি। rfkill block wifiওয়্যারলেস ডিভাইসটি অক্ষম করতে আপনাকে রুট হিসাবে চালানো দরকার । (WLAN ওয়াইফাই একজন ওরফে হয়, দেখতে সোর্স কোড এর rfkill )।

এখন, আপনি যদি বুটটাইমের সময় ওয়্যারলেস ফাংশনগুলি অক্ষম করতে চান, তবে চালিয়ে কমান্ডটি /etc/rc.local যোগ করুন sudo nano /etc/rc.local। লাইনের আগে নেভিগেট করতে exit 0এবং যুক্ত করতে তীর কী / পৃষ্ঠা আপ / ডাউন কীগুলি ব্যবহার করুন rfkill block wifi, যাতে ফাইলটি এর মতো শেষ হয়:

# By default, this script does nothing

rfkill block wifi
exit 0

শেষ হয়ে গেলে, Ctrl+ টিপুন X, তারপরে Yএটি সংরক্ষণ করতে টিপুন Enterএবং ফাইলের নামটি স্বীকার করতে টিপুন ।

আপনি পরে ডিভাইসটি সক্রিয় করার জন্য সিদ্ধান্ত নেন, সঞ্চালন করুন: sudo rfkill unblock wifi। আপনি যদি বেতার কার্ড ব্যবহার করার সিদ্ধান্ত নেন তবে /etc/rc.local থেকে লাইনটি সরাতে ভুলবেন না।


ধন্যবাদ। আমি বুঝতে পারছি না কেন, তবে দেখে মনে হচ্ছে আরএফকিলে কাজ করার জন্য সুডো ব্যবহার করার দরকার নেই।
ündrük

1
/etc/rc.localস্ক্রিপ্টটি রুট অনুমতি নিয়ে চালিত হওয়ায় আপনার সুডো দরকার নেই । রুট অনুমতি ব্যতীত আপনি ওয়াইফাই অক্ষম করতে পারবেন এটি খুব সম্ভবত। যদি আমি চেষ্টা করি rfkill block wifiবা rfkill unblock wifi, আমি "আরএফকিআইএল নিয়ন্ত্রণ ডিভাইসটি খুলতে পারি না: অনুমতি অস্বীকার করা হয়েছে" get
লেকেনস্টেইন

আমার থিঙ্কপ্যাড এক্স 60 এবং আমার ডেস্কটপটিতে একটি পিসিআই ওয়্যারলেস কার্ড সহ, চলমান $ rfkill block wifiনেটওয়ার্ক ম্যানেজার অ্যাপলেটটিকে "ওয়্যারলেস অক্ষম করা আছে" $ iwconfigপ্রদর্শন এবং প্রদর্শন করার কারণ করে Tx-Power=off$ rfkill unblock wifiএই প্রভাবটিকে পূর্বাবস্থায় ফেলেছে।
ündrük

1
আমি এটি একটি বিলম্বের সাথে সমাধান করেছি: উবুন্টু 14.04 এর মতো মনে হচ্ছে আপনি ওয়াইফাই অক্ষম করার আগে আপনাকে কয়েক সেকেন্ড অপেক্ষা করতে হবে /etc/rc.local। পরিবর্তে এটি ব্যবহার করুন:/bin/sleep 10 && rfkill block wifi
rubo77

1
@ রুবো 7777 এখানে (আর্চ লিনাক্স, নেটওয়ার্ক ম্যানেজার ০.৯.৮.১০-৩) রয়েছে, একটি /var/lib/NetworkManager/NetworkManager.stateফাইল রয়েছে যা সেটিংসকে বহাল রাখে, সেগুলির মধ্যে একটি WirelessEnabled=false। আমি আপনার প্রশ্নে পোস্ট করব ..
Lekensteyn

1

আপনার ওয়্যারলেস কার্ডটি অক্ষম করার সহজতম উপায় হ'ল নেটওয়ার্ক ম্যানেজার সূচকটি (প্যানেলে শীর্ষে ডানদিকে ছোট আইকন) টিপুন এবং আনটিক করুন Enable Wireless। এটি ( ifconfig wlan0 down) ইন্টারফেসটি নীচে আনবে এবং এটি আর স্ক্যানিং সম্পাদন করে না।


2
এই মেনু আইটেমটি চেক করা ডিফল্ট আচরণকে প্রভাবিত করে না। পরের বার আমি কম্পিউটারটি চালু করি, ওয়্যারলেস রেডিও আবার সক্রিয় হয়।
ündrük

1
আমার উবুন্টু 14.04 এ এটি যদি নেটওয়ার্ক ম্যানেজার অ্যাপলেট
রুও 7777

1

দ্রষ্টব্য: আপনি যদি ব্যবহার করেন tlpতবে দয়া করে পুরো উত্তরটি পড়ুন।

এই প্রশ্নের সমস্ত উত্তর এখন বেশ পুরানো এবং নতুন উবুন্টু রিলিজ যা সিস্টেমেড ব্যবহার করে কাজ করে না। ফ্রুজের উত্তর আমার জন্য 14.04 এ কাজ করেছিল তবে 16.04 এ কাজ করে না।

সিস্টেমড systemd-rfkill.serviceশাটডাউন চলাকালীন আরএফকিিল স্যুইচ অবস্থা সংরক্ষণ করতে এবং প্রতিটি বুটে পুনরুদ্ধার করতে ব্যবহার করে।

প্রতিটি বুটে আরএফকিিল স্যুইচ অবস্থা পুনরুদ্ধার করতে আপনাকে কার্নেল কমান্ড লাইন প্যারামিটারটি পাস করতে হবে।

  1. /etc/default/grubআপনার পছন্দসই পাঠ্য সম্পাদক দিয়ে খুলুন ।
  2. systemd.restore_state=1একটি প্যারামিটার হিসাবে যুক্ত করুন GRUB_CMDLINE_LINUX। সেই লাইনটি এখন পড়া উচিত GRUB_CMDLINE_LINUX="systemd.restore_state=1"। আপনি এটি যুক্ত করতে পারেন GRUB_CMDLINE_LINUX_DEFAULT। তাদের উভয়ই কাজ করে। আরও তথ্যের জন্য এই প্রশ্নটি দেখুন

এটি নিশ্চিত করবে যে প্রতিটি বুটে আরএফকিিলের অবস্থা পুনরুদ্ধার হবে। পুনরায় চালু করার আগে ব্লুটুথ এবং ওয়াইফাইটি বন্ধ করে দেওয়া নিশ্চিত করুন।


এর সাথে ইস্যুগুলি tlp:

আপডেট: এই সমস্যাগুলি উপস্থিত ছিল tlp 0.8-1যা 16.04 সংগ্রহস্থলগুলিতে উপলব্ধ। tlp 0.9-1লিনারার পিপিএ ব্যবহার করে আপডেট করার পরে , সমস্ত ইসসেসগুলি সমাধান করা হয়েছিল।

আসল উত্তর:

tlp"সংঘাতগুলি এড়াতে এবং টিএলপির রেডিও ডিভাইস স্যুইচিং বিকল্পগুলির যথাযথ পরিচালনার নিশ্চয়তাsystemd-rfkill.service দিতে " মাস্ক / অক্ষম করে । ( সূত্র -১ , উত্স -২ )

এর অর্থ কার্নেল প্যারামিটারটি পাস করা আপনার পক্ষে কার্যকর হবে না।

Tlp এর ডিফল্ট কনফিগারেশন ফাইল ( /etc/default/tlp) থেকে এখানে একটি ছোট স্নিপেট (লাইন নং 195 এর চারপাশে ) রয়েছে।

# Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown
# on system startup: 0=disable, 1=enable.
# Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below
#   are ignored when this is enabled!
RESTORE_DEVICE_STATE_ON_STARTUP=0

# Radio devices to disable on startup: bluetooth, wifi, wwan.
# Separate multiple devices with spaces.
#DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"

# Radio devices to enable on startup: bluetooth, wifi, wwan.
# Separate multiple devices with spaces.
#DEVICES_TO_ENABLE_ON_STARTUP="wifi"
  • আপনি দেখতে পাচ্ছেন বিকল্পটি RESTORE_DEVICE_STATE_ON_STARTUPডিফল্টরূপে অক্ষম করা আছে। তবে এই বিকল্পটি সক্ষম করা কোনও লাভ করে না।

    আপনি অপশনটি সক্ষম করার পরেও RESTORE_DEVICE_STATE_ON_STARTUP , ওয়াইফাই এবং ব্লুটুথ (ব্যবহার করে rfkill block all) অক্ষম করুন এবং পুনরায় চালু করতে থাকুন, প্রতি ২ য় বা তৃতীয় বুটে কোনওভাবেই ওয়াইফাই সক্ষম হয়ে উঠবে। পরবর্তী বুটে ওয়াইফাই অক্ষম হবে এমন কোনও গ্যারান্টি নেই। আশ্চর্যজনকভাবে tlpপ্রতিটি বুটে ব্লুটুথ অক্ষম রাখতে পরিচালনা করে।

  • স্নিপেটে একই বিকল্পটি দ্বিতীয় বিকল্পের জন্য যায় DEVICES_TO_DISABLE_ON_STARTUP, এটি ডিফল্টরূপে অক্ষমও থাকে। এটি সক্ষম করা কোনও কাজ করে না। Network Mangerদেখায় যে ওয়াইফাই অক্ষম আছে তবে ওয়াইফাইতে rfkill listকোনও সফট-ব্লক দেখায় না।

    দ্রষ্টব্য: আমি লাইনটি পড়েছি "Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below are ignored when this is enabled!"

    বিরোধগুলি এড়াতে RESTORE_DEVICE_STATE_ON_STARTUPসক্ষম DEVICES_TO_DISABLE_ON_STARTUPকরার আগে আমি অক্ষম করেছিলাম ।

  • একইভাবে প্রদত্ত অন্যান্য বিকল্পগুলি tlp-rdwপ্রত্যাশার মতো কাজ করে না।


tlpব্যবহারকারীদের জন্য সমাধান :

আপডেট: tlp 0.9-1লিনার পিপিএ ব্যবহার করার আপডেট Update

আসল উত্তর:

  1. DEVICES_TO_DISABLE_ON_STARTUPএটি ব্লুটুথ এবং ওয়াইফাই অক্ষম করার জন্য এটি সক্ষম ও সেট করা আপনার পক্ষে কাজ করতে পারে (( এটি এই ব্যক্তির পক্ষে কাজ করেছে )

  2. এই প্রশ্নের askubuntu এখানে। এটি এই প্রশ্নের একটি পুরানো উত্তর অনুরূপ। তবে দয়া করে মনে রাখবেন যে আমি নিজে চেষ্টা করে দেখিনি। এটি নাও কাজ করতে পারে।


অন্যান্য উত্স: systemd-rfkill , tlp- কনফিগারেশন



আমি আপনার উত্তরটি উভয় GRUB_CMDLINE_LINUXএবং GRUB_CMDLINE_LINUX_DEFAULTপ্লাস (নিঃশব্দ) sudo update-grubকমান্ডের সংশোধন করে জবাব দিয়েছি এবং আমি এটি পপ_স-এ কাজ করতে পারি না! 19.10 (যা উবুন্টু 19.10 এর উপর ভিত্তি করে)। মতে systemctl status systemd-rfkill, এই পরিষেবাটি ইতিমধ্যে প্রতিটি বুটে চলছে এবং যেহেতু ডিফল্ট মান হয় 1, তাই এই প্রচেষ্টার প্রয়োজন হবে না। তথ্যের ভিত্তিতে man systemd-rfkill, "প্রারম্ভিক বুট করার সময়" রেডিওর অবস্থা মনে রাখা ডিফল্ট আচরণ হওয়া উচিত, যা আমাকে বিশ্বাস করতে পরিচালিত করে যে এই উপাদানটি কোনওভাবে ভেঙে গেছে।
প্যাট্রিক ডার্ক

0

আমি ব্যক্তিগতভাবে আমি বৃহস্পতিটি আমার ল্যাপটপে ওয়্যারলেসটি অক্ষম করতে পাওয়ার ম্যানেজমেন্ট অ্যাপলেট ব্যবহার করি কারণ এটি একটি বিশেষ বোতাম দ্বারা নিয়ন্ত্রিত হয়। আমি মনে করি না যে মূল রেপোতে আমাকে এটি পেতে ওয়েবআপড 8 এ অ্যান্ড্রু থেকে পিপিএ যোগ করতে হয়েছিল।

আশাকরি এটা সাহায্য করবে.


0

আপনি যোগ করতে পারে

ifconfig wlan0 down

যাও /etc/rc.local, কিন্তু প্রথম,

নিশ্চিত করুন যে আপনি যদি নেটওয়ার্কম্যানেজারটি ব্যবহার করেন (আমার কাছে সংস্করণ 0.8.4 ~ git.20110319t175609.d14809b-0ubuntu3) রয়েছে, আপনি মেনুতে " সংযোগগুলি সম্পাদনা করুন " -> " ওয়্যারলেস " ট্যাবটিতে যান, সংযোগে ক্লিক করুন, " সম্পাদনা " ক্লিক করুন , এবং নিশ্চিত করুন যে " ওয়্যারলেস " ট্যাবে, " স্বয়ংক্রিয়ভাবে সংযুক্ত করুন " চেকবক্সটি চেক করা হয়নি।


1
এটি যখন ইন্টারফেসটি কমিয়ে আনবে, এটি রেডিও ব্যবহার করে অক্ষম করার মতো শক্তি সঞ্চয় করবে না rfkill
gertvdijk
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.