লিনাক্স / ইউনিক্স কমান্ড insmod চলমান কার্নেলের মধ্যে একটি লোডযোগ্য মডিউল ইনস্টল করা হয়।insmod কার্নেলের এক্সপোর্ট করা প্রতীক টেবিল থেকে সমস্ত প্রতীক সমাধান করে চলমান কার্নেলের মধ্যে একটি মডিউল লিঙ্ক করার চেষ্টা করে।
যদি মডিউল ফাইল নাম ডিরেক্টরি বা এক্সটেনশান ছাড়া দেওয়া হয়,insmod কিছু সাধারণ ডিফল্ট ডিরেক্টরি মডিউল জন্য অনুসন্ধান করা হবে। পরিবেশ পরিবর্তনশীলMODPATH এই ডিফল্ট override করতে ব্যবহার করা যেতে পারে। যেমন একটি মডিউল কনফিগারেশন ফাইল/etc/modules.conf বিদ্যমান, এটি সংজ্ঞায়িত পাথ ওভাররাইড করা হবেMODPATH.
পরিবেশ পরিবর্তনশীলMODULECONF ডিফল্ট থেকে একটি ভিন্ন কনফিগারেশন ফাইল নির্বাচন করতে ব্যবহার করা যেতে পারে/etc/modules.conf (অথবা/etc/conf.modules (থামানো হয়েছে))। এই পরিবেশ পরিবর্তনশীল উপরে সমস্ত সংজ্ঞা override হবে।
যখন পরিবেশ পরিবর্তনশীলUNAME_MACHINE সেট করা হয়েছে, modutils uname () syscall থেকে মেশিন ক্ষেত্রের পরিবর্তে তার মান ব্যবহার করবে। এটি যখন আপনি 32-বিট ব্যবহারকারীর স্পেসে বিপরীত 64-বিট মডিউলগুলি সংকলন করছেন বা এর বিপরীতে সেট ব্যবহার করেন তখন সেটিকে প্রধানত ব্যবহার করা হয়UNAME_MACHINE মডিউল টাইপ। বর্তমান modutils মডিউল জন্য পূর্ণ ক্রস বিল্ড মোড সমর্থন করে না, এটি হোস্ট আর্কিটেকচারের 32 এবং 64 বিট সংস্করণ মধ্যে নির্বাচন সীমিত।
বিকল্প
-e persist_name , --persist= persist_name
মডিউলটির যে কোনও স্থায়ী ডেটা লোড থেকে পড়তে হয় এবং মডিউলটির এই তাত্ক্ষণিকতাটি আনলোড হওয়া অবস্থায় লিখিত হয় তা উল্লেখ করে। মডিউলটিতে কোন স্থায়ী ডেটা থাকলে এই বিকল্পটি চুপ করে অবহেলা করা হয়। স্থায়ী তথ্য শুধুমাত্র দ্বারা পড়া হয়insmod যদি এই বিকল্প উপস্থিত থাকে, ডিফল্টরূপেinsmod স্থায়ী তথ্য প্রক্রিয়া করে না।
একটি সংক্ষিপ্ত রূপ হিসাবে,-ই "" (একটি খালি স্ট্রিং) দ্বারা ব্যাখ্যা করা হয়insmod মূল্য হিসাবেpersistdir হিসাবে সংজ্ঞায়িতmodules.conf, মডিউল অনুসন্ধানের পাথের সাথে সম্পর্কিত মডিউলের ফাইল নাম অনুসারে অনুসরণ করা হয়েছে, যে কোনও পূর্ববর্তী ".gz", ".o" বা ".mod" বাদে। যদিmodules.conf নির্দিষ্ট করে "persistdir ="(অর্থাত্।persistdir একটি খালি ক্ষেত্র) তারপর এই shorthand ফর্ম নীরবভাবে উপেক্ষা করা হয়। (দেখুনmodules.conf (5).)
-f, --force
চলমান কার্নেলের সংস্করণ এবং কার্নেলের সংস্করণ যা মডিউল সংকলিত হয়েছিল সেটিও মিললেও মডিউলটি লোড করুন। এটি শুধুমাত্র কার্নেল সংস্করণ চেককে ওভাররাইড করে, এটি প্রতীক নাম চেকগুলিতে কোন প্রভাব ফেলে না। যদি মডিউলের প্রতীক নাম কার্নেলের সাথে মেলে না তবে বলার কোন উপায় নেইinsmod মডিউল লোড করতে।
-h, --help
বিকল্প সংক্ষিপ্ত বিবরণ প্রদর্শন এবং অবিলম্বে প্রস্থান।
-k, --স্বয়ংক্রিয় পরিষ্কার
মডিউলে স্বয়ংক্রিয়-পরিচ্ছন্ন পতাকা সেট করুন। এই পতাকা ব্যবহার করা হবেkerneld(8) কিছু সময়ের মধ্যে ব্যবহার করা হয় না যে মডিউল অপসারণ - সাধারণত এক মিনিট।
-L, --lock
ব্যবহারপাল(2) একই মডিউল একযোগে লোড প্রতিরোধ।
-m, --map
আউটপুট stdout এ লোড মানচিত্র, কার্নেল প্যানিকের ক্ষেত্রে মডিউল ডিবাগ করা সহজ করে।
-n, --চাপ নাই
ডামি রান, কার্নেলের মধ্যে মডিউল লোড ছাড়া সবকিছু না। একটি দ্বারা অনুরোধ করা হলে-m অথবা-O, রান একটি মানচিত্র বা blob ফাইল উত্পাদন করবে। যেহেতু মডিউলটি লোড করা হয় না, তাই আসল কার্নেল লোড ঠিকানা অজানা তাই মানচিত্র এবং ব্লব ফাইল 0x12340000 এর নির্বিচারে লোড ঠিকানার উপর ভিত্তি করে।
-o module_name , --name= module_name
সোর্স অবজেক্ট ফাইলটির বেস নাম থেকে নামটি সরিয়ে নেওয়ার পরিবর্তে মডিউলটি স্পষ্টভাবে উল্লেখ করুন।
-O blob_name , --blob= blob_name
বাইনারি বস্তু সংরক্ষণ করুন blob_name । ফলাফল একটি বাইনারি ব্লব (কোন এলএলএফ শিরোলেখ নয়) যা বিভাগ ম্যানিপুলেশন এবং স্থানান্তরের পরে কার্নেলে লোড করা হয় তা দেখাচ্ছে। পছন্দ-m বস্তুর একটি মানচিত্র পেতে সুপারিশ করা হয়।
-p, --probe
এটি সফলভাবে লোড হতে পারে কিনা দেখতে মডিউল অনুসন্ধান করুন। এতে মডিউল পাথের বস্তু ফাইলটি সনাক্ত করা, সংস্করণ সংখ্যার চেক করা এবং প্রতীকগুলি সমাধান করা রয়েছে। এটি স্থানান্তর পরীক্ষা করে না এবং এটি একটি মানচিত্র বা ব্লব ফাইল তৈরি করে না।
-P উপসর্গ , --prefix= উপসর্গ
এই বিকল্পটি একটি SMP বা bigmem কার্নেলের জন্য সংস্করণযুক্ত মডিউলগুলির সাথে ব্যবহার করা যেতে পারে, কারণ এই মডিউলগুলিতে তাদের প্রতীক নামগুলিতে একটি অতিরিক্ত উপসর্গ যোগ করা হয়েছে। যদি কার্নেলটি প্রতীক সংস্করণগুলির সাথে নির্মিত হয় তবেinsmod স্বয়ংক্রিয়ভাবে "get_module_symbol" বা "inter_module_get" সংজ্ঞা থেকে উপসর্গটি সরাবে, যার মধ্যে একটি মডিউলকে সমর্থন করে এমন কোনও কার্নেলের মধ্যে উপস্থিত থাকা আবশ্যক। কার্নেলের কোন প্রতীক সংস্করণ নেই তবে মডিউলটি প্রতীক সংস্করণগুলির সাথে তৈরি করা হয়েছে তবে ব্যবহারকারী সরবরাহ করতে হবে-P.
-q, --quiet
কোন অমীমাংসিত চিহ্ন একটি তালিকা মুদ্রণ করবেন না। সংস্করণ দ্বিধা সম্পর্কে অভিযোগ করবেন না। সমস্যা শুধুমাত্র প্রস্থান অবস্থা মধ্যে প্রতিফলিত হবেinsmod.
-r, --root
কিছু ব্যবহারকারী একটি নন-রুট ব্যবহারকারীর অধীনে মডিউলগুলি সংকলন করে তারপর মডিউলগুলি রুট হিসাবে ইনস্টল করে। এই প্রক্রিয়াটি অ-রুট ব্যবহারকারীর মালিকানাধীন মডিউলগুলি ছেড়ে যেতে পারে, যদিও মডিউল ডিরেক্টরিটি রুটের মালিকানাধীন। যদি নন-রুট ব্যবহারকারীর সাথে আপোস করা হয়, তবে একজন অনুপ্রবেশকারী ব্যবহারকারীর মালিকানাধীন বিদ্যমান মডিউলগুলি ওভাররাইট করতে এবং রুট অ্যাক্সেসে বুটস্ট্র্যাপ পর্যন্ত এই এক্সপোজারটি ব্যবহার করতে পারেন।
ডিফল্টরূপে, modutils রুট দ্বারা মালিকানাধীন একটি মডিউল ব্যবহার করার প্রচেষ্টা প্রত্যাখ্যান করবে। নির্দিষ্ট করা -r চেক টগল করবে এবং রুট মডিউলের লোড লোড করবে যা রুট দ্বারা মালিকানাধীন নয়।
বিঃদ্রঃ: মডুলিল কনফিগার করা হলে রুট চেকের জন্য ডিফল্ট মান পরিবর্তন করা যেতে পারে।রুট পরীক্ষণ নিষ্ক্রিয় করতে অথবা ডিফল্ট সেটিংটি কনফিগারেশনের সময় "কোন রুট চেক" -এ ব্যবহার করার জন্য একটি প্রধান নিরাপত্তা এক্সপোজার এবং এটি সুপারিশ করা হয় না।
-s, --syslog
আউটপুট সবকিছুsyslog- র(3) পরিবর্তে টার্মিনাল।
-S, --kallsyms
লোড মডিউল জোর আছেkallsyms তথ্য, এমনকি যদি কার্নেল এটি সমর্থন করে না। এই বিকল্পটি ছোট সিস্টেমের জন্য যেখানে কার্নেলটি লোড করা হয়kallsyms তথ্য কিন্তু নির্বাচিত মডিউল প্রয়োজনkallsyms ডিবাগিং জন্য। এই বিকল্পটি Red Hat Linux এ ডিফল্ট।
-v, --verbose
Verbose হতে।
-V, --version
এর সংস্করণ প্রদর্শন করুনinsmod.
-এক্স, --export; -এক্স, --noexport
করবেন এবং যথাক্রমে মডিউল এর বহিরাগত প্রতীক সব রপ্তানি করবেন না। প্রতীক রপ্তানি করার জন্য ডিফল্ট হয়। এই বিকল্পটি শুধুমাত্র কার্যকর হলে মডিউল স্পষ্টভাবে নিজের নিয়ন্ত্রণিত প্রতীক টেবিলটি রপ্তানি করে না এবং এভাবে অব্যবহৃত হয়।
-y, --ksymoops; -y, --noksymoops
না এবং যোগ করবেন নাksymoops ksyms প্রতীক। এই প্রতীক দ্বারা ব্যবহার করা হয়ksymoops এই মডিউলে একটি ওপস থাকলে উন্নত ডিবাগিং প্রদান করতে। ডিফল্ট জন্য হয়ksymoopsসংজ্ঞায়িত করা হবে প্রতীক। এই বিকল্পটি স্বাধীন-এক্স/-এক্স অপশন।
ksymoops প্রতীক লোড মডিউল প্রতি আনুমানিক 260 বাইট যোগ করুন। আপনি কার্নেলের স্থানটিতে সত্যিই ছোট না হওয়া পর্যন্ত এবং ক্সমিনিকে তার সর্বনিম্ন আকারে কমাতে চেষ্টা করছেন, ডিফল্ট গ্রহণ করুন এবং আরো সঠিক ওপস ডিবাগিং পান।ksymoops প্রতীকগুলি স্থায়ী মডিউল ডেটা সংরক্ষণ করার প্রয়োজন হয়।
-n, --সাংখ্যিক শুধুমাত্র
শুধুমাত্র কার্নেল সংস্করণের বিরুদ্ধে মডিউল সংস্করণের সাংখ্যিক অংশ পরীক্ষা করুন, যেমন একটি মডিউল কার্নেলের সাথে সম্পর্কিত কিনা তা নির্ধারণ করার সময় EXTRAVERSION টি উপেক্ষা করুন। এই পতাকাটি স্বয়ংক্রিয়ভাবে কার্নেল 2.5 এর জন্য সেট করা হয়, এটি পূর্ববর্তী কার্নেলগুলির জন্য ঐচ্ছিক।
মডিউল পরামিতি
কিছু মডিউল তাদের অপারেশন কাস্টমাইজ লোড সময় পরামিতি গ্রহণ। এই পরামিতিগুলি প্রায়ই I / O পোর্ট এবং আইআরকিউ নম্বরগুলি মেশিন থেকে মেশিনে পরিবর্তিত হয় এবং হার্ডওয়্যার থেকে নির্ধারিত হয় না।
2.0 সিরিজ কার্নেলের জন্য নির্মিত মডিউলগুলিতে, যেকোনো পূর্ণসংখ্যা বা চরিত্র পয়েন্টার প্রতীককে পরামিতি হিসাবে এবং বিবেচনা করা যেতে পারে। 2.1 সিরিজ কার্নেলের শুরুতে, চিহ্নগুলি স্পষ্টভাবে পরামিতি হিসাবে চিহ্নিত করা হয়েছে যাতে শুধুমাত্র নির্দিষ্ট মান পরিবর্তিত হতে পারে। উপরন্তু, টাইপ তথ্য লোড সময় উপলব্ধ মান চেক করার জন্য প্রদান করা হয়।
পূর্ণসংখ্যার ক্ষেত্রে, সমস্ত মান দশমিক, অক্টাল বা হেক্সাডেসিমিলের একটি লা C: 17, 021 বা 0x11 হতে পারে। অ্যারের উপাদান কমা দ্বারা পৃথক ক্রম নির্দিষ্ট করা হয়। উপাদান মান বাদ দিয়ে বাদ দেওয়া যেতে পারে।
2.0 সিরিজ মডিউলগুলিতে, যে মানগুলি একটি সংখ্যা দিয়ে শুরু হয় তা স্ট্রিং হিসাবে বিবেচিত হয় না। 2.1 থেকে শুরু করে, প্যারামিটারের টাইপ তথ্য একটি স্ট্রিং হিসাবে মান ব্যাখ্যা করতে হবে কিনা তা নির্দেশ করে। মান দ্বিগুণ উদ্ধৃতি দিয়ে শুরু হয় ('), স্ট্রিংটি C, escape sequences এবং সমস্ত হিসাবে ব্যাখ্যা করা হয়। শেল প্রম্পট থেকে উল্লেখ্য, উদ্ধৃতিগুলি শেলের ব্যাখ্যা থেকে সুরক্ষিত হতে পারে।
জিপিএল লাইসেন্সযুক্ত মডিউল এবং প্রতীক
কার্নেল 2.4.10 দিয়ে শুরু হচ্ছে, মডিউলে একটি লাইসেন্স স্ট্রিং থাকা উচিত, যা সংজ্ঞায়িত করেMODULE_LICENSE ()। বিভিন্ন স্ট্রিং জিপিএল সামঞ্জস্যপূর্ণ হিসাবে স্বীকৃত হয়; মডিউল মালিকানা হিসাবে গণ্য করা হয় যে সব মানে অন্য কোন লাইসেন্স স্ট্রিং বা কোন লাইসেন্স।
কার্নেল সমর্থন করেজন্য / proc / sys / kernel / দূষিত তারপর পতাকাinsmod কোনও GPL লাইসেন্স ছাড়া কোনও মডিউল লোড করার সময় '1' এর সাথে দাগযুক্ত পতাকাটি বা হবে। কার্নেল tainting সমর্থন করে এবং একটি লাইসেন্স ছাড়া একটি মডিউল লোড করা হয় তাহলে একটি সতর্কতা জারি করা হয়। একটি সতর্কতা সবসময় আছে যা মডিউল জন্য জারি করা হয়MODULE_LICENSE () যে জিপিএল সামঞ্জস্যপূর্ণ নয়, এমনকি পুরোনো কার্নেলগুলিতে যা টেনটিং সমর্থন করে না। এটি যখন পুরানো কার্নেলগুলিতে একটি নতুন মডুলিল ব্যবহার করা হয় তখন সতর্কতা কমিয়ে দেয়।
insmod -f (বল) মোড বা tainting সমর্থন করে কার্নেল উপর '2' সঙ্গে দাগযুক্ত পতাকা হবে। এটা সবসময় একটি সতর্কবার্তা সমস্যা।
কিছু কার্নেল ডেভেলপারদের তাদের কোড দ্বারা এক্সপোর্ট করা প্রতীকগুলিকে শুধুমাত্র জিপিএল সামঞ্জস্যপূর্ণ লাইসেন্সের সাথে মডিউলগুলি ব্যবহার করতে হবে। এই প্রতীক দ্বারা রপ্তানি করা হয়EXPORT_SYMBOL_GPL পরিবর্তে স্বাভাবিকEXPORT_SYMBOL। শুধুমাত্র জিপিএল-সামঞ্জস্যপূর্ণ লাইসেন্সের সাথে মডিউলগুলিতে দৃশ্যমান কেবল কার্নেল দ্বারা রপ্তানি করা জিপিএল প্রতীকগুলি, এই প্রতীকগুলি প্রদর্শিত হয়জন্য / proc / ksyms একটি উপসর্গ সঙ্গে 'GPLONLY_'. insmod উপেক্ষা করেGPLONLY_ একটি জিপিএল লাইসেন্সযুক্ত মডিউল লোড করার সময় প্রতীকগুলিতে উপসর্গ যাতে মডিউলটি কেবলমাত্র পূর্বের নাম ছাড়া সাধারণ প্রতীক নামটি বোঝায়। জিপিএল শুধুমাত্র প্রতীকগুলি জিপিএল সামঞ্জস্যপূর্ণ লাইসেন্স ছাড়াই মডিউলগুলিতে উপলব্ধ করা হয় না, এতে কোনও লাইসেন্স সহ মডিউল অন্তর্ভুক্ত থাকে।
Ksymoops সহায়তা
কার্নেলের ডিবাগিংয়ের সহায়তায় ওপসগুলি মডিউল ব্যবহার করার সময়,insmod ksyms কিছু প্রতীক যোগ ডিফল্ট, দেখুন-y বিকল্প। এই প্রতীক দিয়ে শুরু__insmod_ modulename_ । দ্য moduleName প্রতীক অনন্য করতে প্রয়োজন হয়। বিভিন্ন মডিউল নামের অধীনে একাধিকবার একই বস্তু লোড করা বৈধ। বর্তমানে, সংজ্ঞায়িত প্রতীকগুলি হল:
__insmod_ moduleName _ Oobjectfile _ Mmtime _ Vversion
objectfile ফাইলটি যে নামটি লোড করা হয়েছিল তার নাম। এটি নিশ্চিত করে যে ksymoops সঠিক বস্তুর সাথে কোডটি মিলতে পারে। র দ্বারা mtime হ্যাকের মধ্যে সেই ফাইলটির সর্বশেষ সংশোধিত টাইমস্ট্যাম্প, স্ট্যাট ব্যর্থ হলে শূন্য। সংস্করণ কার্নেল সংস্করণ যে মডিউল কম্পাইল করা হয়, -1 যদি কোন সংস্করণ পাওয়া যায় না। দ্য_O প্রতীক মডিউল শিরোনাম হিসাবে একই শুরু ঠিকানা আছে।
__insmod_ moduleName _ Ssectionname _ Llength
এই প্রতীক নির্বাচিত ইএলএফ বিভাগের শুরুতে, বর্তমানে .text, .rodata, .data, .bss এবং .sbs গুলি উপস্থিত হয়। এটি কেবল তখন প্রদর্শিত হবে যদি বিভাগটি একটি অ-শূন্য আকার ধারণ করে। sectionname এলএলএফ বিভাগের নাম, লম্বা দশমিক মধ্যে অধ্যায় দৈর্ঘ্য। কোন প্রতীক পাওয়া যায় না যখন এই প্রতীক ksymoops মানচিত্র ঠিকানা বিভাগে সাহায্য।
__insmod_ moduleName _Ppersistent_ ফাইলের নাম
শুধুমাত্র তৈরি করেছেনinsmod যদি মডিউলটিতে এক বা একাধিক পরামিতি থাকে যা স্থায়ী ডেটা হিসাবে চিহ্নিত থাকে এবং স্থায়ী ডেটা সংরক্ষণ করার জন্য একটি ফাইলের নাম থাকে (দেখুন-e, উপরে) পাওয়া যায়।
ডিবাগিং কার্নেলের সাথে অন্য সমস্যাটি হ'ল মডিউলগুলির মধ্যে রয়েছে যে / proc / ksyms এর বিষয়বস্তু এবং / proc / modules ওপস এবং আপনি লগ ফাইল প্রক্রিয়া যখন মধ্যে পরিবর্তন করতে পারেন। এই সমস্যাটি কাটানোর জন্য, ডিরেক্টরি / var / log / ksymoops উপস্থিত থাকলেinsmod এবংrmmod `date +% Y% m% d% H% M% S` এর পূর্বরূপ সহ / var / log / ksymoops এ স্বয়ংক্রিয়ভাবে / proc / ksyms এবং / proc / modules অনুলিপি করবে। সিস্টেম অ্যাডমিনিস্ট্রেটররা ksymoops কে বলতে পারেন যা স্ন্যাপশট ফাইলগুলি যখন ওপস ডিবাগ করার সময় ব্যবহার করতে পারে। এই স্বয়ংক্রিয় অনুলিপি নিষ্ক্রিয় করার জন্য কোন সুইচ নেই। যদি আপনি এটি ঘটতে না চান তবে / var / log / ksymoops তৈরি করবেন না। যদি সেই ডিরেক্টরিটি বিদ্যমান থাকে, এটি রুট দ্বারা মালিকানাধীন হওয়া উচিত এবং 644 বা 600 মোড হতে হবে এবং আপনাকে প্রতিদিন এই স্ক্রিপ্টটি চালানো উচিত। নীচের লিপি insmod_ksymoops_clean হিসাবে ইনস্টল করা হয়।
#! / বিন / SH # সংরক্ষিত শব্দ এবং মডিউল মুছুন 2 দিনের মধ্যে অ্যাক্সেস না যদি -d / var / log / ksymoops তারপর সেট-ই # নিশ্চিত করুন যে সর্বদা অন্তত একটি সংস্করণ আছে d = `তারিখ +% Y% মি% d% H% M% S` cp -a / proc / ksyms /var/log/ksymoops/${d}.ksyms cp -a / proc / modules /var/log/ksymoops/${d}.modules / var / log / ksymoops -type f -atime +2 -exec rm {} খুঁজে বের করুন; ফাই NAME এর insmod - লোডযোগ্য কার্নেল মডিউল ইনস্টল করুন সংক্ষিপ্তসার insmod -এফএইচএলএমএনপিকারসএসভিএক্সএক্সওয়াইএন -ই persist_name -ও module_name -O blob_name -পি উপসর্গ মডিউল প্রতীক= মান … জানতে প্রাথমিক তথ্য