systemd: বুট করার সময় স্বয়ংক্রিয় Modprobe কমান্ড


20

আমার বিতরণ ফেডোরা 17 গনোম। প্রতিবার যখনই আমি আমার কম্পিউটারটি পুনরায় চালু / পুনরায় চালু করি তখন এই কমান্ডটি রুট হিসাবে চালানো দরকার:

modprobe rt2800usb

আমি কীভাবে এটি স্থায়ী করতে পারি?


1
হাই, আপনার প্রথম প্রশ্নের জন্য ধন্যবাদ। আপনি কোন লিনাক্স বিতরণ উল্লেখ করছেন তা উল্লেখ করতে
— পারলে ভালো লাগবে

1
@ বনসিস্কট বিতরণটি সম্ভবত প্রশ্নের পাঠ্যেও যুক্ত করা উচিত, তবে ট্যাগটি ফেডোরা বলে।
— ছাড়ুন

(এছাড়াও, আমার নিজের উত্তর মুছে ফেলা হয়েছে কারণ এটি ফেডোরা-নির্দিষ্ট নয়)
— বনসী স্কট

@ বনসিস্কট, আপনার উত্তরটি অন্যদের পক্ষে বেশ কার্যকর হতে পারে ...
— ভনব্র্যান্ড

উত্তর:


34

কোনও ডিস্ট্রো ব্যবহার করে systemdআপনি মডিউলটি স্বয়ংক্রিয়ভাবে এর মাধ্যমে লোড করতে পারেন modules-load.d:

  • কনফিগারেশন ফাইলটি তৈরি করুন:

    /etc/modules-load.d/rt2800usb.conf

  • এটি খুলুন এবং এটির মতো সম্পাদনা করুন (মডিউলটির নাম যুক্ত করুন):

    rt2800usb

  • পরের বার আপনি পুনরায় বুট করুন মডিউলটি স্বয়ংক্রিয়ভাবে লোড হওয়া উচিত


সমস্যা সমাধান:

systemdপরিষেবাটি মডিউলটি লোড করেছে কিনা তা পরীক্ষা করুন :

systemctl status systemd-modules-load.service

আউটপুটটি দেখতে এইরকম হওয়া উচিত:

systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: active (exited) since Wed, 03 Apr 2013 22:50:57 +0000; 46s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)

শেষ লাইনে PID(প্রক্রিয়া আইডি) এবং প্রস্থান কোড রয়েছে। status=0/SUCCESSমানে মডিউলটি সফলভাবে inোকানো হয়েছিল, এর দ্বারা নিশ্চিত হয়েছে:

journalctl -b _PID=260

আউটপুট হচ্ছে:

Apr 03 22:50:57 mxhst systemd-modules-load[260]: Inserted module 'rt2800usb'

ব্যর্থতার ক্ষেত্রে, systemctlআউটপুট এইরকম দেখাচ্ছে:

systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: failed (Result: exit-code) since Wed, 03 Apr 2013 22:50:59 +0000; 43s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)

সঙ্গে journalctl -bপ্রতিবেদন:

Apr 03 22:50:59 mxhst systemd-modules-load[260]: Failed to find module 'fakert2800usb'

যখন প্রস্থান কোডটি হ'ল এর 0/SUCCESSঅর্থ আপনার মডিউলটি সফলভাবে sertedোকানো হয়েছে; চলমান

lsmod | grep rt2800

এটি নিশ্চিত করা উচিত:

rt2800usb              26854  0 
rt2x00usb              19757  1 rt2800usb
rt2800lib              64762  1 rt2800usb
rt2x00lib              66520  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              578735  3 rt2x00lib,rt2x00usb,rt2800lib

যদি lsmodআউটপুট নিশ্চিত না করে (পরিষেবা বহির্গমন কোড থাকা সত্ত্বেও 0/SUCCESS) এর অর্থ হল লোড হওয়ার পরে মডিউলটি সরানো হয়েছে modules-load.service। একটি সম্ভাব্য কারণ হ'ল অন্য *.confফাইল যা মডিউলটিকে কালো তালিকাভুক্ত করেছে। একটি লাইনের সন্ধান করুন:

blacklist rt2800usb

মধ্যে /etc/modprobe.d/*.conf, /usr/lib/modprobe.d/*.confবা /run/modprobe.d/*.confতা মন্তব্য আউট / এটি মুছে দিন।


আমি এটি করেছি, তবে মডিউলটি পুনরায় বুটে ফেলা হয়নি।
— কিছু 21

মূল ফাইলটির মালিক হওয়ায় এটি কি?
— কিছু কিছু 21

আমি পুনরায় বুট করার সময়, আমাকে এখনও Modprbe কমান্ড করতে হবে। তালিকাটি মোডপ্রোব কমান্ড চালানোর পরেও তালিকাভুক্ত করা হচ্ছে না কেন?
— somethingSomething

5

বুটে একটি মডিউল লোড করতে, আপনি একটি ফাইল তৈরি করবেন /etc/modules-load.d/; এই ফাইলটির কোনও নাম থাকতে পারে তবে শেষ হওয়া আবশ্যক .conf। আপনার ওয়াইফাই ড্রাইভারের ক্ষেত্রে আপনি উদাহরণস্বরূপ ফাইলটি তৈরি করতে পারেন /etc/modules-load.d/rt2800.conf।

ফাইলটিতে আপনি যে মডিউলের মতো লোড করতে চান তার নামের সাথে একটি একক লাইন যুক্ত করুন:

rt2800usb

কার্নেল মডিউলগুলির আর্ক উইকি পৃষ্ঠায় আরও তথ্য রয়েছে।

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