Linux / Unix Buyruq: insmod

Linux / Unix buyrug'i insmod ishlaydigan yadroga o'rnatiladigan modulni o'rnatadi . insmod yadro tomonidan eksport qilinadigan ramz stolidagi barcha belgilarni echish orqali ishlaydigan yadroga modulni ulashga harakat qiladi.

Moduli fayl nomi katalog yoki kengaytmasiz berilsa, insmod ba'zi umumiy standart kataloglarda modulni izlaydi. MODPATH muhit o'zgaruvchisi bu ko'rsatuvni bekor qilish uchun ishlatilishi mumkin. Agar /etc/modules.conf kabi bir modul konfiguratsiya fayli mavjud bo'lsa, MODPATH da belgilangan yo'llarni bekor qiladi.

MODULECONF muhit o'zgaruvchisi ham /etc/modules.conf (yoki /etc/conf.modules (eskirgan)) dan boshqa konfiguratsion faylni tanlash uchun ham ishlatilishi mumkin. Ushbu atrof-muhit o'zgaruvchisi yuqoridagi barcha tushunchalarni bekor qiladi.

UNAME_MACHINE muhit o'zgaruvchisi o'rnatilganda, modutils uname () tizimidagi mashina o'rniga uning qiymatidan foydalanadi. Bu 32-bitli foydalanuvchi maydonida 64-bitli modullarni tuzishda yoki aksincha, UNAME_MACHINEni modul turiga o'rnatishda ishlatiladi . Mavjud modutils modullar uchun to'liq o'zaro tuzish rejimini qo'llab-quvvatlamaydi, bu server arxitekturasining 32- va 64-bit versiyalarini tanlash bilan cheklanadi.

Tanlovlar

-e persist_name , --persist = persist_name

Modul uchun har qanday doimiy ma'lumotni yukdan o'qilganligini va modulning ushbu tasviri tushirilganda yozilishi kerakligini bildiradi. Ushbu parametr modulda qat'iy ma'lumotlar bo'lmasa, jimgina e'tiborsiz qoladi. Doimiy ma'lumotlar faqat ushbu parametr mavjud bo'lsa, insmod tomonidan o'qiladi, aslida insmod doimiy ma'lumotni ishlamaydi.

Stenografiya shaklida - "" (bo'sh satr) insmod tomonidan modules.conf da ta'riflanganidek, persistdir qiymati sifatida sharhlanadi , keyin modulning fayl nomi modul qidirish yo'liga nisbatan, ".gz", ".o" yoki ".mod" lardan foydalaning. Agar modules.conf " persistdir = " (ya'ni, bo'sh joy bo'lsa) belgilab qo'yilgan bo'lsa, unda bu stsenariy shakli jimgina e'tiborsiz qoladi. ( Modules.conf ga qarang (5).)

-f , - kuch

Modulni ishga tushirishga urinish, agar ishlaydigan yadro versiyasi va modul olingan yadro versiyasi mos bo'lmasa ham. Bu faqat yadro versiyasi tekshiruvini bekor qiladi, u simvolik nomi tekshiruviga ta'sir qilmaydi. Moduldagi ramz nomlari yadroga mos kelmasa, u holda modulni o'rnatish uchun insmodni majburlashning iloji yo'q.

-h , - yordam

Variantlarning xulosasini ko'ring va darhol chiqing.

-k , --autoclean

Moduldagi avtomatik tozalash bayroqini o'rnating. Ushbu bayroq kerneld (8) tomonidan ma'lum vaqt ichida ishlatilmaydigan modullarni (odatda, bir daqiqa) olib tashlash uchun ishlatiladi.

-L , - quloq

Shu bilan modulning bir vaqtning o'zida yuklanishini oldini olish uchun suruvni (2) ishlating.

-m , --map

Stdout'dagi yuk xaritasi chiqadi, bu esa yadro vahima holatlarida modulni disk raskadrovka qilishni osonlashtiradi.

-n , - noload

Dummy ishlaydi, modulni yadroga qo'yib qo'yishdan tashqari hamma narsani bajaring. Agar -m yoki -O bilan talab qilinsa, ish xarita yoki blob faylini ishlab chiqaradi. Modul yuklanmaganligi sababli, haqiqiy yadro yuk manzillari noma'lum, shuning uchun xarita va blob fayli 0x12340000 tasodifiy yuk manziliga asoslanadi.

-o module_name , --name = module_name

Resurs ob'ekt fayli nomining nomidan nom olishdan ko'ra, modulni aniq nomlang.

-O blob_name , --blob = blob_name

Ikkilangan ob'ektni blob_name- da saqlang . Natijada, ikkilamchi blob (ELF sarlavhalari yo'q), bo'limni o'zgartirish va joylashtirishdan keyin yadroga yuklangan narsalarni aniq ko'rsatmoqda. Option -m ob'ektining xaritasini olish tavsiya etiladi.

-p , --probe

Modulni muvaffaqiyatli yuklanganligini tekshirish uchun tekshiring . Bunga modul yo'lidagi obyekt faylini topish, versiya raqamlarini tekshirish va belgilarni echish kiradi. Joylashuvni tekshirib bo'lmaydi, yoki xarita yoki blob faylini yaratmaydi.

-P prefiksi , --prefix = prefiks

Ushbu parametr SMP yoki bigmem yadrosi uchun versiyalangan modul bilan ishlatilishi mumkin, chunki bunday modullarda ularning ramz nomlarida qo'shimcha prefiks qo'shilgan. Agar yadro ramz versiyalari bilan qurilgan bo'lsa, u holda insmod avtomatik ravishda "get_module_symbol" yoki "inter_module_get" ta'rifidan oldingi qo'shimchani oladi, ulardan biri modullarni qo'llab-quvvatlaydigan har qanday yadroda bo'lishi kerak. Agar yadro simvol versiyasi bo'lmasa, lekin modul ramziy versiyalari bilan qurilgan bo'lsa, foydalanuvchi foydalanuvchi -P .

-q , - yaxshi

Hech qanday qaror qabul qilinmagan belgilar ro'yxatini chop qilmang. Versiya mos kelmasligi haqida shikoyat qilmang. Muammo faqat insmodning chiqish holatida aks ettiriladi.

-r , - root

Ba'zi foydalanuvchilar modullarni root bo'lmagan userid ostida to'plashadi va keyinchalik modullarni ildiz sifatida o'rnatadilar. Ushbu jarayon root bo'lmagan foydalanuvchilar tomonidan tegishli modullarni tark etishi mumkin, modullar katalogi ildizga tegishli bo'lsa ham. Agar root userid buzilgan bo'lsa, foydalanuvchi tajovuzkorga tegishli bo'lgan modullarni yozishi va rootka kirishni boshlash uchun ushbu ta'sirni ishlatishi mumkin.

Odatiy bo'lib, modutils ildizga tegishli bo'lmagan moduldan foydalanishga urinishni rad etadi. -R belgilari-ro o'zgaradi va ildizning ildizga tegishli bo'lmagan modullarni yuklashiga imkon beradi. Eslatma: ildizni tekshirish uchun standart qiymat modutils konfiguratsiya qilinganida o'zgarishi mumkin.

"Root check" ni o'chirish yoki "konfiguratsiya" vaqtida "no root check" ("ildiz tekshirish") parametrini belgilash uchun -r-dan foydalanish katta xavfsizlikka ta'sir qilishdir va tavsiya qilinmaydi.

-s , - syslog

Terminal o'rniga syslog (3) ga hamma narsani chiqaring .

-S , - yig'lar

Yuklab olingan modul yadrosi uni qo'llab-quvvatlamasa ham, kallimsim ma'lumotlariga ega bo'lishi uchun majbur . Ushbu parametr yadrosi tanlov ma'lumotlaridan foydalanmasdan kichik tizimlarga mo'ljallangan bo'lsa-da, tanlangan modullarni disk raskadrovka qilish uchun tanlov kerak. Ushbu parametr Red Hat Linux-da yozilgan.

-v , -verbose

Yaxshilik qiling.

-V , - qaytish

Insmod versiyasini ko'rsatish.

-X , - eksport ; -x , --noexport

Barcha modulning tashqi belgilarini o'zingiz va tashingizdan eksport qilmang. Asl qiymati eksport qilinadigan belgilar uchun. Ushbu parametr faqatgina modul o'z nazorat ostidagi ramziy jadvalini ochiqchasiga eksport qilmasa samarali bo'ladi va shu sababli bekor qilinadi.

-Y , -ximoops ; -y , - noksymoops

Ksymoops ramzlarini ksymlarga qo'shmang va qo'shmang. Ushbu ramzlar ksymoops tomonidan ushbu modulda "Oops" bo'lsa, yaxshiroq tuzatishni ta'minlash uchun qo'llaniladi. Asl qiymati ksymoops belgilari uchun belgilanadi. Ushbu parametr -X / -x parametrlaridan mustaqil emas.

ksymoops ramzlari o'rnatilgan modulda taxminan 260 bayt qo'shimchalar. Agar siz yadro maydonida chindan ham qisqa bo'lsa va ksymsni minimal hajmiga tushirishga harakat qilsangiz, standartni qabul qiling va aniqroq tuzing. ksymoops ramzlari doimiy modul ma'lumotlarini saqlash uchun talab qilinadi.

-N , - faqat raqamli

Faqat modul versiyasining yadro versiyasini yadro versiyasiga qarab tekshiring, ya'ni modul yadroga tegishli ekanligiga qaror qabul qilganda EXTRAVERSIONni e'tiborsiz qoldiring. Ushbu bayroq avtomatik ravishda yadro 2.5 uchun o'rnatiladi, oldingi yadrolar uchun ixtiyoriy.

Moduli parametrlari

Ba'zi modullar ularning ishlashini sozlash uchun yuk vaqt parametrlarini qabul qiladi. Ushbu parametrlar ko'pincha I / U porti va IRQ raqamlari mashinadan mashinaga farq qiladi va apparatdan aniqlanmaydi.

2.0 seriyali yadrolar uchun tuzilgan modullarda biron bir tamsayı yoki belgi ko'rsatgich belgisi parametr sifatida ko'rib chiqilishi va o'zgartirilishi mumkin. 2.1 seriyali yadrolardan boshlab, faqat maxsus qiymatlar o'zgarishi mumkin, shuning uchun ramzlar aniq parametrlar sifatida belgilanadi. Bundan tashqari, yuk ma'lumoti vaqtida taqdim etilgan qiymatlarni tekshirish uchun ma'lumot olish mumkin.

To'liq sonlar bo'lsa, barcha qiymatlar o'nli, sektsional yoki o'n oltinchi sonli A la C: 17, 021 yoki 0x11 da bo'lishi mumkin. Array elementlari vergul bilan ajralib turadigan ketma-ketlikda ko'rsatilgan. Elementlar qiymati bekor qilish orqali o'tkazib yuborilishi mumkin.

2.0 seriyali modullarda raqam bilan boshlanmagan qiymatlar satr hisoblangan. 2.1 dan boshlab, parametrning turi ma'lumoti qiymatni magistral deb izohlashni bildiradi. Qiymat juftlik-tirnoq ( " ) bilan boshlangan bo'lsa, satr C kabi talqin qilinadi, eskirishlar ketma-ketligi va barcha.Qobul so'rovida she'rlarni talqin qilishdan himoya qilinishi kerak bo'lishi mumkin.

GPL litsenziyalangan modul va ramzlar

2.4.10 yadrosi bilan boshlangan modullar MODULE_LICENSE () yordamida aniqlangan litsenziyaga ega bo'lishi kerak. Bir necha qatorlar GPLga mos keluvchi sifatida tan olinadi; boshqa litsenziyali magistral yoki hech qanday litsenziya umuman hech qanday litsenziyani mulkiy deb hisoblash ma'nosini anglatadi.

Agar yadro / proc / sys / kernel / tainted bayroqni qo'llab-quvvatlasa, u holda INMOB GPL litsenziyasiz holda modulni o'rnatish vaqtida '1' bilan yopilgan bayroqqa ega bo'ladi. Agar yadro qo'llab-quvvatlamasa va modul litsenziyasiz yuklansa ogohlantirish beriladi. GPLga mos bo'lmagan MODULE_LICENSE () ga ega bo'lgan modullar uchun ogohlantirish har doim chiqariladi. Bu eski nurlar uchun yangi modutillar ishlatilganda ogohlantirishlarni kamaytiradi.

insmod -f (kuch-quvvat) rejimida YO'Q yoki nayzalangan bayroqni '2' bilan ishora qiladi. Har doim ogohlantirish beradi.

Ba'zi yadro ishlab chiquvchilari kodlari bilan eksport qilinadigan belgilarni faqat GPL muvofiq litsenziyasi bo'lgan modullardan foydalanishi kerak. Ushbu ramzlar EXPORT_SYMBOL o'rniga EXPORT_SYMBOL_GPL tomonidan eksport qilinadi. Faqat GPL-faqat yadro va boshqa modullar tomonidan eksport qilinadigan belgilar GPL-mos litsenziyasi bo'lgan modullarda ko'rinadi, bu belgilar « GPLONLY_ » ning prefiksi bilan / proc / ksyms ko'rinishida. GPLONLY_ prefiksini GPL litsenziyalashtirilgan modulni yuklayotganda simvollarga e'tibor bermaslik uchun modul faqat oddiy ramziy nomga, prefikssiz ishora qiladi. GPLga faqatgina GPLga mos litsenziyasiz modullar taqdim etilmaydi, bu litsenziyasiz modullarni o'z ichiga oladi.

Ksymoops Assistance

Moduli ishlatilganda, yadro Oops-ni disk raskadrovka qilishga yordam berish uchun, ksymsga ba'zi belgilarni qo'shish uchun standartlarni sozlash, -Y ni ko'ring. Ushbu belgilar __insmod_modulename_ bilan boshlanadi . Modul nomi simvollarni yagona qilish uchun talab qilinadi. Turli xil modul nomlari ostida bir xil ob'ektni bir necha marta yuklash qonuniydir. Hozirda belgilangan belgilar:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile , ob'ektdan yuklangan fayl nomidir. Bu ksymoops kodni to'g'ri ob'ektga mos kelishi mumkinligini ta'minlaydi. mtime , bu faylda oltinchi marta o'zgartirilgan vaqt tamg'asi, agar stat holatlarida muvaffaqiyatsiz bo'lsa. versiyasi - bu modul uchun tuzilgan yadro versiyasi, -1 versiyasi mavjud bo'lmasa. _O belgisi modul sarlavhasi bilan bir xil boshlang'ich manzilga ega.

__nsmod_modulename_Ssectionname_Llength

Ushbu belgi tanlangan alf bo'limlari boshida, hozirda .text, .rodata, .data, .bss va .sbss ko'rinishida paydo bo'ladi. Bu bo'lim faqat nol bo'lmagan hajmga ega bo'lsa paydo bo'ladi. bo'lim nomi ELF bo'limining nomi, uzunligi kasr sonining uzunligi. Ushbu ramzlar ksymoops manzil belgilariga ega bo'lmaganda manzillarni manzillarga yo'naltirishga yordam beradi.

__insmod_modulename_Ppersistent_filename

Faqatgina modulda doimiy ma'lumot sifatida qayd etilgan bir yoki bir nechta parametrlarga ega bo'lsa va doimiy ma'lumotlar (yuqorida-ga, yuqorida) ni saqlash uchun fayl nomi mavjud bo'lsa.

Moduldagi xatolarni tuzatuvchi yadro bilan bog'liq boshqa muammo, kundalik faylni qayta ishlash paytida / proc / ksims va / proc / modullarining mazmuni Oops bilan o'zgarishi mumkin. Ushbu muammolarni bartaraf etish uchun agar / var / log / ksymoops katalogi mavjud bo'lsa, u holda insmod va rmmod avtomatik ravishda / proc / ksyms va / proc / modules / var / log / ksymoops- ga o'tadi, % d% H% M% S`. Tizim ma'muri ksymoops- ni ayta olishi mumkin. Ushbu avtomatik nusxani o'chirish uchun hech qanday kalit yo'q. Agar buni amalga oshirishni xohlamasangiz, / var / log / ksymoops yaratmangiz . Agar u katalog mavjud bo'lsa, uni ildiz egasi bo'lishi va 644 yoki 600 rejimiga ega bo'lishi kerak va bu skriptni har kuni yoki shunga o'xshash qilishingiz kerak. Quyidagi skript insmod_ksymoops_clean sifatida o'rnatiladi.

Bilish uchun asosiy ma'lumotlar

NAME

insmod - o'rnatish mumkin yadro moduli

SYNOPSIS

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o module_name ] [-O blob_name ] [-P old ] modul [ ramz = qiymat ...]