কীভাবে আরডিআরডে একটি মডিউল লোড করবেন?


13

আমি মূলত স্টার্টআপ পদ্ধতিতে netconsoleএকইভাবে, আরআরডি পর্যায়ে মডিউলটি (স্পষ্টভাবে) লোড করতে চাই /etc/modules

প্রথমত, আমি পরীক্ষা করেছিলাম যে আমার সিস্টেমে আরআরআরডিটিতে ইতিমধ্যে ওয়ান্টেড মডিউল রয়েছে (পরিশিষ্ট দেখুন)।

আমি এটি দেখেছি /initrd.img(যা একটি সংকীর্ণ সিপিও সংরক্ষণাগার, তাই এটির সন্ধানের জন্য, আমি zcat /initrd.img > initrd.cpioএটি দিয়ে এর ভিতরে চলে এসেছি mc)। আমি modprobeস্ক্রিপ্টগুলির মধ্যে যে কোনও আহ্বানের সন্ধান করেছি এবং বুঝতে পেরেছি যে /conf/modules( /এখানে initrd এর মূল এখানে তালিকাভুক্ত) মডিউলগুলি স্বয়ংক্রিয়ভাবে লোড হয়ে load_modules()যায় /scripts/functions(দ্বারা ডাকা /init) থেকে ফাংশনটি দ্বারা লোড হবে ।

তবে উবার্টু সিস্টেমে /conf/modulesআরআরআরডি আপডেট করার মানক সরঞ্জামটি কী হবে ?

(BTW, উবুন্টু এর initrd- র কোড নিয়ে অধ্যয়নের সময়, আমি লক্ষ্য করেছি কিছু বিশেষ সমর্থন আছে netconsole/initস্ক্রিপ্ট, যা আমি আমার প্রয়োজনের জন্য কাজ করতে পারে, কিন্তু যাহাই হউক না কেন, আমার প্রশ্ন, আরো সাধারণ অন্য কোন কাস্টম মডিউল বিষয়ে ।)

উপাঙ্গ

যেমন আমি উপরে বলেছি: প্রথমে, আমি পরীক্ষা করেছিলাম যে আমার সিস্টেমে আরআরআরডিটিতে ইতিমধ্যে ওয়ান্টেড মডিউল রয়েছে (যথা, netconsole)। এই হল কিভাবে:

# zcat /initrd.img | cpio --extract --verbose --list  | fgrep netconsole
-rw-r--r--   1 root     root        25372 Aug 31 20:59 lib/modules/3.19.0-28-generic/kernel/drivers/net/netconsole.ko
109504 blocks
# 

এবং আমি এটিও পরীক্ষা করেছিলাম যে এটিতে ইতিমধ্যে প্রয়োজনীয় নেটওয়ার্ক ড্রাইভার রয়েছে:

# ls -ld /sys/class/net/eth0/device/driver
lrwxrwxrwx 1 root root 0 Sep 21 15:34 /sys/class/net/eth0/device/driver -> ../../../../bus/pci/drivers/sky2
# zcat /initrd.img | cpio --extract --verbose --list  | fgrep sky2
-rw-r--r--   1 root     root        92948 Aug 31 20:49 lib/modules/3.19.0-28-generic/kernel/drivers/net/ethernet/marvell/sky2.ko
109504 blocks
# 

3
ভবিষ্যতের রেফারেন্সের জন্য, এখানে বর্ণিত কমান্ডের মতোই lsinitramfsঅন্তর্ভুক্ত রয়েছে । initramfs-toolszcat /initrd.img ..
টিমাস

উত্তর:


14

আমি আবিষ্কার করেছি যে উবুন্টুতে কীভাবে আরআরডি-তে মডিউল যুক্ত করা যায় 14.04 আমি মডিউলগুলির নাম / ইত্যাদি / ইনিরামফেস-সরঞ্জাম / মডিউলগুলিতে যুক্ত করেছি। এটি initrd ফাইলটিতে মডিউল যুক্ত করেছে ules / Etc / initramfs- সরঞ্জাম / মডিউলগুলিতে পরিবর্তন করার পরে initrd ফাইলটি আপডেট করতে ভুলবেন না (আপডেট-initramfs -u)।


আপনি মডিউল নামগুলি কীভাবে সংজ্ঞায়িত করবেন? এখন আমি ahci.ko মডিউল যুক্ত করতে হবে? সুতরাং যে ফাইল অন্তর্ভুক্ত করা উচিত?
সানুন ধম্মিকা

@ সানন্দধামিকাahci
কেন শার্প

3

উবার্টু আরআরআরডি-র নির্মাণ পরিচালনা করার জন্য initramfs- সরঞ্জামগুলি (একটি পরিচিতির জন্য man initramfs- সরঞ্জামগুলি দেখুন) ব্যবহার করে।

আরআরআরডি তে মডিউল নেটকনসোল যুক্ত করতে এবং এটিকে জোরপূর্বক লোড করা বিষয়বস্তু সহ / etc / initramfs- সরঞ্জাম / হুকগুলিতে (যেমন / etc / initramfs- সরঞ্জাম / হুক্স / নেটকনসোল) একটি ফাইল তৈরি করুন:

#! / বিন / SH
PREREQ = ""
prereqs ()
{
   প্রতিধ্বনি "$ PREREQ"
}

কেস $ 1 ইন
prereqs)
   prereqs
   প্রস্থান 0
   ;;
esac

। / Usr / share / initramfs -র-সরঞ্জামগুলি চালু / হুক ফাংশন

ফোর্স_লোড নেটকনসোল

এবং এটি কার্যকর করা। তারপরে চালান:

update-initramfs -u

নতুন কার্নেলের initrd আপডেট করতে।


1
তবে কেবলমাত্র মডিউলটির নাম যুক্ত করার কোনও সহজ উপায় নেই /conf/modules? এটি update-initramfs -uব্যবহার করার জন্য আমার এটি কোথায় রাখা উচিত ?
ইম্জ - ইভান জ্যাচারিয়াশেভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.