লিনাক্স / ইউনিক্স কমান্ড: ইন্সএমড

লিনাক্স / ইউনিক্স কমান্ড insmod চালনা কার্নেলে একটি লোডযোগ্য মডিউল ইনস্টল করেinsmod কার্নেলের রপ্তানি প্রতীক টেবিলের সমস্ত চিহ্নগুলি সমাধান করে চলমান কার্নেলের মধ্যে একটি মডিউল লিঙ্ক করার চেষ্টা করে।

যদি ডিরেক্টরী বা এক্সটেনশন ছাড়া মডিউল ফাইলের নাম দেওয়া হয়, insmod কিছু সাধারণ ডিফল্ট ডিরেক্টরিগুলির মধ্যে মডিউল অনুসন্ধান করবে। পরিবেশগত পরিবর্তনশীল MODPATH এই ডিফল্টটি ওভাররাইড করতে ব্যবহার করা যেতে পারে। যদি একটি মডিউল কনফিগারেশন ফাইল যেমন /etc/modules.conf বিদ্যমান থাকে, তাহলে এটি MODPATH- এ চিহ্নিত পাথগুলিকে ওভাররাইড করবে।

পরিবেশগত পরিবর্তনশীল MODULECONF ডিফল্ট /etc/modules.conf (অথবা /etc/conf.modules (অপ্রচলিত) থেকে ভিন্ন কনফিগারেশন ফাইল নির্বাচন করতে ব্যবহার করা যেতে পারে। এই পরিবেশের ভেরিয়েবলটি উপরের সমস্ত সংজ্ঞাকে ওভাররাইড করবে।

যখন পরিবেশ পরিবর্তনশীল UNAME_MACHINE সেট করা হয়, modutils uname () syscall থেকে মেশিন ক্ষেত্রের পরিবর্তে তার মান ব্যবহার করবে এটি 64-বিট মডিউলগুলি 32-বিট ইউজার স্পেস বা ঊর্ধ্বে বিপরীতভাবে সংকলন করার সময়, UNAME_MACHINE মডিউলের প্রকার সেট করার জন্য এটি প্রধানত ব্যবহার। বর্তমান modutils মডিউল জন্য পূর্ণ ক্রস বিল্ড মোড সমর্থন করে না, হোস্ট আর্কিটেকচারের 32- এবং 64-বিট সংস্করণ মধ্যে নির্বাচন করার জন্য এটি সীমিত।

বিকল্প

-e persist_name , --persist = persist_name

সুনির্দিষ্ট করুন যেখানে মডিউলটির জন্য কোনও স্থায়ী ডেটা লোড থেকে পড়তে হয় এবং লিখিত অবস্থায় যখন মডিউলটি লোড হয় তখন এটি লিখিত হয়। মডিউল কোন স্থায়ী ডেটা না থাকলে এই বিকল্পটি নিঃশব্দে উপেক্ষা করা হয়। এই বিকল্পটি উপস্থিত থাকলে কেবলমাত্র ইনডমড দ্বারা স্থির তথ্যগুলি পড়া হয়, ডিফল্টভাবে insmod দ্বারা স্থায়ী ডেটা প্রক্রিয়া করা হয় না

একটি শরীয়ত ফর্ম হিসাবে, -e "" (একটি ফাঁকা স্ট্রিং) insmod দ্বারা modules.conf এ বর্ণিত হিসাবে persistdir মান হিসাবে ব্যাখ্যা করা হয়, মডিউল অনুসন্ধান পাথ এটি মডিউল খুঁজে পাওয়া যায় নি, এটি খুঁজে পাওয়া যায় নি অনুসরণ ".gz", ".o" বা ".mod" যদি modules.conf " persistdir = " (অর্থাত্ persistdir একটি খালি ক্ষেত্র) নির্দিষ্ট করে তবে এই শর্টদন্ডের ফর্মটি নিঃশব্দে উপেক্ষা করা হয়। ( Modules.conf (5) দেখুন।)

-ফ , --বলস

চলমান কার্নেলের সংস্করণ এবং কার্নেলের সংস্করণের জন্য মডিউলটি লোড করার চেষ্টা করুন যার জন্য মডিউলটি সংকলন করা হয়েছিলো না। এটি শুধুমাত্র কার্নেলের সংস্করণ চেককে অগ্রাহ্য করে, এর প্রতীক নাম চেকগুলিতে কোন প্রভাব নেই। যদি মডিউলের প্রতীক নামগুলি কার্নেলের সাথে মেলে না, তাহলে insmod- কে মডিউল লোড করতে বাধ্য করার কোন উপায় নেই।

-হ , - সহায়তা

বিকল্পগুলির একটি সারসংক্ষেপ প্রদর্শন করুন এবং অবিলম্বে প্রস্থান করুন।

-ক , --আউটোক্লিয়েন

মডিউলটিতে অটো-পরিষ্কার ফ্ল্যাগ সেট করুন। এই ফ্ল্যাড Kerneld দ্বারা ব্যবহৃত হবে (8) কিছু সময়ের মধ্যে ব্যবহৃত হয় না মডিউল অপসারণ করতে - সাধারণত এক মিনিট।

-এল , - লক

একই মডিউল একসাথে লোড প্রতিরোধ ঝাল (2) ব্যবহার করুন।

-ম , --ম্যাপ

Stdout- এ একটি লোড ম্যাপ আউটপুট, কার্নেল প্যানিকের ঘটনায় মডিউলের ডিবাব করা সহজ করে তোলে।

-n , --noload

ডামি রান, কার্নেল মডিউল লোড ব্যতীত সবকিছু করে। যদি একটি- এম বা-ও দ্বারা অনুরোধ করা হয়, রান একটি মানচিত্র বা ব্লব ফাইল তৈরি করবে। যেহেতু মডিউল লোড করা না হয়, প্রকৃত কার্নেল লোড অ্যাড্রেস অজানা তাই ম্যাপ এবং ব্লব ফাইল 0x12340000 এর একটি অবাধ লোড অ্যাড্রেস এর উপর ভিত্তি করে।

-o মডিউল_নাম , --name = module_name

উৎস বস্তুর ফাইলের বেস নাম থেকে নাম আহরণ করার পরিবর্তে মডিউলটি স্পষ্টভাবে নাম দিন

-O blob_name , --blob = blob_name

Blob_name এ বাইনারি বস্তু সংরক্ষণ করুন ফলাফলটি একটি বাইনারি ফ্ল্যাশ (কোন ELF শিরোলেখ) নয় যা সেকশন ম্যানিপুলেশন এবং স্থানান্তরণের পরে কার্নেলে লোড করা হয়। অপশন- m বস্তুর একটি মানচিত্র পেতে সুপারিশ করা হয়।

-পি , --probe

এটি সফলভাবে লোড হতে পারে কিনা দেখতে মডিউল পরীক্ষা করুন। এতে মডিউল পাথের মধ্যে অবজেক্ট ফাইলটি সনাক্তকরণ, সংস্করণ সংখ্যার পরীক্ষা করা এবং প্রতীকগুলি সংশোধন করা অন্তর্ভুক্ত। এটি পুনঃস্থাপন চেক করে না এবং এটি একটি মানচিত্র বা ব্লব ফাইল তৈরি করে না।

-পি উপসর্গ , --prefix = উপসর্গ

এই বিকল্পটি একটি SMP বা bigmem কার্নেলের জন্য সংস্করণযুক্ত মডিউলগুলির সাথে ব্যবহার করা যেতে পারে, যেহেতু এই ধরনের মডিউলগুলিতে তাদের প্রতীক নামের অতিরিক্ত উপসর্গ যোগ করা হয়েছে। যদি কার্নেলটি প্রতীক সংস্করণ দিয়ে তৈরি করা হয় তাহলে insmod স্বয়ংক্রিয়ভাবে "get_module_symbol" বা "inter_module_get" এর সংজ্ঞা থেকে প্রিফিক্সটি বের করে আনবে, যার মধ্যে একটি মডিউল সমর্থন করে এমন কোনও কার্নেলের মধ্যে থাকা আবশ্যক। যদি কার্নেলের কোনো প্রতীক সংস্করণ না থাকে তবে মডিউলটি প্রতীক সংস্করণের সাথে নির্মিত হলে ব্যবহারকারীকে অবশ্যই -P সরবরাহ করতে হবে।

-q , --quiet

কোনও আনুমানিক চিহ্নগুলির তালিকা মুদ্রণ করবেন না। সংস্করণ মিলহীনতা সম্পর্কে অভিযোগ করবেন না। সমস্যাটি শুধুমাত্র insmod এর প্রস্থান স্থিতিতে প্রতিফলিত হবে।

-r , - root

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

ডিফল্টরূপে, modutils রুট দ্বারা মালিকানাধীন একটি মডিউল ব্যবহার করার প্রচেষ্টা প্রত্যাখ্যান করবে। নির্দিষ্টকরণ -r চেকটি টগল করবে এবং রুট দ্বারা মডিউল লোড করার অনুমতি দেবে যা রুট দ্বারা মালিকানাধীন নয়। দ্রষ্টব্য: modutils কনফিগার করা হলে root চেকের জন্য ডিফল্ট মান পরিবর্তন করা যায়।

-r- র রুট চেক নিষ্ক্রিয় অথবা কনফিগারেশন সময় "ডিফল্ট বুট চেক" -এ ডিফল্ট সেটিংটি একটি প্রধান নিরাপত্তা এক্সপোজার হয় এবং এটি সুপারিশ করা হয় না।

-স , - syslog

টার্মিনাল এর পরিবর্তে সবকিছু syslog (3) আউটপুট করুন

-এস ,

লোড মডিউলকে kolesyms তথ্য থাকতে বাধ্য করুন, এমনকি কার্নেলটি এটি সমর্থন করে না। এই বিকল্পটি ছোট সিস্টেমের জন্য যেখানে কার্নেলগুলি কোলশলি ব্যবহার না করে লোড হয়, কিন্তু নির্বাচিত মডিউলগুলি ডিবাগিংয়ের জন্য kolsyms প্রয়োজন। এই বিকল্পটি Red Hat Linux- এ ডিফল্ট।

-ভি , --ভারবোস

Verbose থাকুন

-ভি , --ভারশন

Insmod এর সংস্করণটি প্রদর্শন করুন

-X , - এক্সপোর্ট ; -x , - নন এক্সপোর্ট

যথাক্রমে মডিউল এর বহিরাগত চিহ্নগুলি এবং সব রপ্তানি করে না। ডিফল্ট চিহ্নগুলি এক্সপোর্ট করা হবে। এই বিকল্পটি শুধুমাত্র কার্যকর হলে মডিউলটি স্পষ্টভাবে নিজস্ব নিয়ন্ত্রিত প্রতীক সারণীটি রপ্তানি করে না, এবং এইভাবে অপ্রচলিত হয়।

-Y , --সেকোমোওপ ; -y , --noksymoops

Ksyms- এ ksymoops চিহ্ন যোগ করো না এই মডিউলগুলি এই মডিউলে একটি ওহোতে ভাল ডিবাগিং প্রদানের জন্য ksymoops দ্বারা ব্যবহৃত হয়। ডিফল্টরূপে, ksymoops চিহ্ন নির্ধারণ করা হবে। এই বিকল্পটি -X / -x বিকল্পগুলি থেকে স্বাধীন।

ksymoops প্রতীক লোড মডিউল প্রতি প্রায় 260 বাইট যোগ। আপনি কার্নেল স্পেসে খুব কমই থাকুন এবং এটির সর্বনিম্ন আকারে ksyms কমানোর চেষ্টা করছেন, ডিফল্টটি নিন এবং আরো সঠিক ওহে ডিবাগিং পেতে পারেন। স্থির মডিউল ডেটা সংরক্ষণ করার জন্য ksymoops চিহ্নগুলি প্রয়োজন।

-এন , - সংখ্যাগত-শুধুমাত্র

শুধুমাত্র কার্নেল সংস্করণের সাথে মডিউল সংস্করণের সাংখ্যিক অংশটি চেক করুন, অর্থাত্ একটি মডিউল একটি কার্নেলের সাথে সম্পর্কিত কিনা তা EXTRAVERSION কে উপেক্ষা করুন। এই পতাকা স্বয়ংক্রিয়ভাবে কার্নেল 2.5 এর জন্য সেট করা হয়, এটি পূর্বের কার্নেলগুলির জন্য ঐচ্ছিক।

মডিউল পরামিতি

কিছু মডিউল তাদের অপারেশন কাস্টমাইজ লোড-সময় পরামিতি গ্রহণ। এই প্যারামিটারগুলি প্রায়ই I / O পোর্ট এবং IRQ সংখ্যার হয় যা মেশিন থেকে মেশিনে পরিবর্তিত হয় এবং হার্ডওয়্যার থেকে নির্ধারণ করা যায় না।

2.0 সিরিজ কার্নেলগুলির জন্য নির্মিত মডিউলগুলিতে, কোনও পূর্ণসংখ্যা বা চরিত্র পয়েন্টার প্রতীকটি একটি প্যারামিটার হিসেবে গণ্য করা যেতে পারে এবং সংশোধন করা হতে পারে। 2.1 সিরিজ কার্নেলের শুরুতে, প্রতীকটি স্পষ্টভাবে পরামিতি হিসাবে চিহ্নিত করা হয় যাতে শুধুমাত্র নির্দিষ্ট মান পরিবর্তন করা যায়। উপরন্তু, লোডের সময় প্রদত্ত মানগুলি চেক করার জন্য টাইপ তথ্য সরবরাহ করা হয়।

পূর্ণসংখ্যার ক্ষেত্রে, সমস্ত মান দশমিক, অকট্যাল বা হেক্সাডেসিমাল একটি la C: 17, 021 বা 0x11 হতে পারে। অ্যারে উপাদান ক্রম দ্বারা পৃথক ক্রম নির্দিষ্ট করা হয়। উপাদানটি বাদ দিয়ে উপাদানগুলিকে এড়িয়ে যেতে পারে।

2.0 সিরিজের মডিউলে, একটি সংখ্যা দিয়ে শুরু না করা মানগুলি স্ট্রিং বলে মনে করা হয়। 2.1 এর শুরুতে, প্যারামিটারের প্রকারের তথ্য ইঙ্গিত দেয় যে, স্ট্রিং হিসাবে মান ব্যাখ্যা করা হবে কিনা। যদি মানটি দ্বিগুণ উদ্ধৃতি ( " ) দিয়ে শুরু হয় তবে স্ট্রিংটিকে সি, অব্যাহতির অনুক্রম এবং সমস্ত হিসাবে ব্যাখ্যা করা হয়। নোট করুন যে শেল প্রম্পট থেকে, উদ্ধৃতিগুলি শেল ব্যাখ্যার থেকে সুরক্ষিত হতে পারে।

জিপিএল লাইসেন্সড মডিউল এবং প্রতীক

কার্নেল 2.4.10 দিয়ে শুরু, মডিউলগুলির একটি লাইসেন্স স্ট্রিং থাকা উচিত, MODULE_LICENSE () ব্যবহার করে। বিভিন্ন স্ট্রিংগুলি জিপিএল সুসংগত হিসাবে স্বীকৃত; অন্য কোনও লাইসেন্সের স্ট্রিং বা কোনও লাইসেন্স নেই যেটি মডিউলকে মালিকানা হিসাবে বিবেচনা করা হয়।

যদি কার্নেল / proc / sys / kernel / tainted flag সমর্থন করে তবে insmod বা GPL লাইসেন্স ছাড়া একটি মডিউল লোড করার সময় '1' দিয়ে ক্ষতিকারক পতাকা প্রদর্শন করবে। একটি সতর্কবাণী জারি করা হয় যদি কার্নেল ট্যান্টিং সমর্থন করে এবং একটি লাইসেন্স ছাড়া একটি মডিউল লোড হয়। মডিউলগুলির জন্য একটি সতর্কতা সর্বদা ইস্যু করা হয় যার একটি MODULE_LICENSE () থাকে যা GPL- র সামঞ্জস্যপূর্ণ নয়, এমনকি পুরানো কার্নেলগুলিও যারা ট্যান্টিং সমর্থন করে না। পুরানো কার্নেলগুলিতে একটি নতুন modutils ব্যবহার করা হয় যখন এটি সতর্কতা minimizes।

insmod -f (বল) মোড বা tainting সমর্থন কর্নেল '2' সঙ্গে ক্ষতিকারক পতাকা। এটি সবসময় একটি সতর্কবাণী সমস্যা।

কিছু কার্নেল ডেভেলপারদের প্রয়োজন তাদের কোড দ্বারা এক্সপোর্ট করা প্রতীক শুধুমাত্র একটি GPL সামঞ্জস্যপূর্ণ লাইসেন্স মডিউল দ্বারা ব্যবহার করা আবশ্যক। এই চিহ্ন সাধারণ EXPORT_SYMBOL এর পরিবর্তে EXPORT_SYMBOL_GPL দ্বারা রপ্তানি করা হয়। শুধুমাত্র GPL- সামঞ্জস্যপূর্ণ লাইসেন্সের সাথে মডিউলগুলি দেখতে কার্নেল দ্বারা এবং অন্যান্য মডিউল দ্বারা রপ্তানি করা জিপি-কেবল প্রতীক, এই প্রতীকগুলি ' GPLONLY_ ' এর একটি উপসর্গ সহ / proc / ksyms- এ প্রদর্শিত হয়। একটি GPL লাইসেন্সধারী মডিউল লোড করার সময় insmod চিহ্ন GPLONLY_ প্রিফিক্স উপেক্ষা করে যাতে মডিউল উপসর্গ ছাড়া, স্বাভাবিক প্রতীক নামটি বোঝায়। জিপিএল শুধুমাত্র চিহ্ন একটি জিপিএল সামঞ্জস্যপূর্ণ লাইসেন্স ছাড়া মডিউল উপলব্ধ করা হয় না, এটি সব কোন লাইসেন্সের সঙ্গে মডিউল অন্তর্ভুক্ত।

Ksymoops সহায়তা

কার্নেল ডিবাগিংয়ের সাথে সহায়তা করতে ওহো মডিউল ব্যবহার করার সময়, insmod ডিফল্টকে ksyms এর কিছু চিহ্ন যোগ করার জন্য, -Y বিকল্পটি দেখুন এই চিহ্নগুলি __insmod_modulename_ দিয়ে শুরু হয় মডুল্যানেমটি প্রতীককে অনন্য করে তুলতে প্রয়োজন। বিভিন্ন মডিউল নামের অধীনে একই বস্তুর একাধিক বার লোড করার জন্য এটি আইনি। বর্তমানে সংজ্ঞায়িত সংকেতগুলি হল:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile ফাইলটি যে বস্তুর থেকে লোড করা হয়েছিল তার নাম। এটি নিশ্চিত করে যে ksymoops কোড সঠিক বস্তুর সাথে মেলাতে পারে। mtime এই ফাইলে সর্বশেষ সংশোধিত টাইমস্ট্যাম্প, হেক্সে শূন্য, যদি স্ট্যাট ব্যর্থ হয়। সংস্করণটি কার্নেল সংস্করণ যা মডিউলটির জন্য কম্পাইল করা হয়েছিল, -1 যদি কোন সংস্করণ উপলব্ধ না হয়। _O প্রতীকটি মডিউলের হেডার হিসাবে একই শুরু ঠিকানা আছে।

__insmod_modulename_Ssectionname_Llength

এই প্রতীকটি নির্বাচিত ELF বিভাগের শুরুতে প্রদর্শিত হবে, বর্তমানে। Text, .rodata, .data, .bss এবং .sbss। এটা শুধুমাত্র যদি বিভাগে একটি অ শূন্য আকার আছে প্রদর্শিত হবে। sectionname হল ELF বিভাগের নাম, দৈর্ঘ্য দৈর্ঘ্যের দৈর্ঘ্য। কোন চিহ্ন উপলব্ধ না হলে এই প্রতীকগুলি বিভাগে ksymoops মানচিত্র ঠিকানাগুলি সহায়তা করে।

__insmod_modulename_Ppersistent_filename

শুধুমাত্র insmod দ্বারা নির্মিত যদি মডিউল এক বা একাধিক প্যারামিটার যা স্থির তথ্য হিসাবে চিহ্নিত করা হয় এবং স্থায়ী ডেটা সংরক্ষণের জন্য একটি ফাইলের নাম (উপরে দেখুন -e ,) পাওয়া যায়।

ডিবাগিং কার্নেলের সাথে অন্য সমস্যা মডিউলগুলির মধ্যে ওপসগুলি হল / proc / ksyms এবং / proc / modules এর সামগ্রীগুলি ওহেগুলির মধ্যে পরিবর্তন করতে পারে এবং আপনি লগ ফাইলটি প্রক্রিয়া করলে। এই সমস্যাটি অতিক্রম করতে সহায়তা করার জন্য, যদি ডিরেক্টরী / var / log / ksymoops বিদ্যমান থাকে তবে insmod এবং rmmod স্বয়ংক্রিয়ভাবে / proc / ksyms এবং / proc / modules / var / log / ksymoops- এর একটি প্রিফিক্স সহ 'date +% Y% m কপি করবে। % d টি% এইচ% এম% S`। সিস্টেম অ্যাডমিনিস্ট্রেটর ksymoops বলতে পারেন যা ডিপ্যাগিং করার সময় স্ফপ্যাট ফাইল ব্যবহার করে। এই স্বয়ংক্রিয় কপি নিষ্ক্রিয় করতে নেই সুইচ। যদি আপনি এটি না চান, তাহলে / var / log / ksymoops তৈরি করবেন না। যদি সেই ডিরেক্টরিটি বিদ্যমান থাকে তবে এটি রুট দ্বারা মালিকানাধীন এবং 644 অথবা 600 মোড হওয়া উচিত এবং আপনাকে প্রতিদিন এই স্ক্রিপ্ট চালানো উচিত। নীচের স্ক্রিপ্টটি insmod_ksymoops_clean হিসাবে ইনস্টল করা আছে

মৌলিক তথ্য জানতে

NAME এর

insmod - লোডযোগ্য কার্নেল মডিউল ইনস্টল করুন

সংক্ষিপ্তসার

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o মডিউল_name ] [-O ব্লোব_নাম ] [ -পি উপসর্গ ] মডিউল [ প্রতীক = মান ...]