Linux / Unix Command: insmod

Linux / Unix буйрук insmod бир loadable модулун орнотуп созулган ядро ичинде. insmod ядро чыккан белгиси столдун бардык белгилери чечүү чуркап ядро бир модулду шилтеме кылат.

Модулу Имя каталогдорго же узартуу бериле турган болсо, insmod кээ бир жалпы демейки каталогдорго модулду издей берет. Чөйрө өзгөрмө MODPATH бул демейки нерсени жоюп үчүн колдонсо болот. Модулдук тарам билэ Эгерде /etc/modules.conf бар эле, ал MODPATH аныкталган жолду алмаштырылат.

Чөйрө өзгөрүлмө MODULECONF да демейки /etc/modules.conf башкача тарам билэни тандоо үчүн колдонулат (же /etc/conf.modules (сунушталбайт)) болот. Бул чөйрө өзгөрмө жогоруда бардык аныктамаларды жокко чыгара алат.

Чөйрө өзгөрмө UNAME_MACHINE коюлганда, modutils анын наркын uname чейин машина талаа ордуна () syscall колдонот. Бул модулдан түрүнө UNAME_MACHINE белгиленген 32-бит колдонуучу космоско же тескерисинче 64-бит модулдарды түзүүнүн, кийин, негизинен, пайдалануу болуп саналат. Учурдагы modutils модулдар боюнча толук кайчылаш куруу режимин колдогон жок, аны кабыл алуучу архитектуралык 32- жана 64-бит нускаларынын ортосунда тандоо менен чектелет.

Жолдор

-e persist_name, --persist = persist_name

Модулдун үчүн кандайдыр бир туруктуу маалымат жүктөлгөндө окуп жана модулунун бул апай кетирилет качан жазылган жерде белгилейт. модулу эч кандай туруктуу маалымат бар болсо, бул параметрди унчукпай эске алынбайт. Демейки insmod туруктуу маалыматтарды иштеп чыгууну эмес, бул чечим, ушул болсо, туруктуу маалымат гана insmod окуп жатат.

Бир эле өтмө түрүндө , -e "" (бош сап) modules.conf аныкталган persistdir наркы insmod тарабынан жоромолдонот модулу издөө жолуна модулу салыштырмалуу аты аркылуу ээрчип, ал табылган, минус бир ".gz", ".О" же ".mod" добуш алууда. Modules.conf "persistdir =" (б.а. persistdir бош талаа) көрсөтүлгөн болсо, анда бул өтмө түрү унчукпай эске алынбайт. (Modules.conf (5) карагыла.)

-f, --force

чуркап ядро ​​модулу версия да жүктөөгө аракет жана сынак дал келбейт түзүлөт, ал үчүн ядро ​​менен чыгаруу. Бул ядро ​​версия текшерүүнү жокко чыгарат, ал белгиси аты текшерүүлөр эч кандай таасир тийгизбейт. Модул ичинде белгиси аттары ядросу дал келбейт, анда модулун жүктөөгө insmod мажбурлоого эч кандай жол жок.

-h, --help

жолдору жана ошол замат чыгуу кыскача көрсөтүү.

-k, --autoclean

Модулдун боюнча унаам-таза желегин орнотуу. Бул желек kerneld (8) бир нече убакытка колдонулган эмес, модулдарды алып салуу менен колдонулат - эреже катары, бир мүнөт.

-L, --lock

Оторду (2) Ошол эле модулунун бир эле мезгилде жүк жол бербөө үчүн колдон.

-м, --map

Output жүзүнө өзөк паника учурда модулду Индиядан даярдоо, stdout боюнча жүк карта.

-н, --noload

Үйрөнчүк Нускасы, ядро ​​салып модулун жүктөлгөн башка баарын кылабыз. Бир же епо өтүнүчү боюнча, Нускасы карта же Blob билэни берет. модулу жүктөлгөн эмес, демек, чыныгы өзөк груз дареги карта жана Blob билэ 0x12340000 эркин жүк дареги негизделет да белгисиз.

епо module_name, --name = module_name

Так эмес булагы объект делосуна базалык атынан аты чыккан караганда, модулду атын.

-O blob_name, --blob = blob_name

Blob_name менен бинардык объект сактоо. натыйжасы так бөлүм башкаруудан жана көчүрүүгө кийин ядро ​​жүктөлгөн жатат көрсөтүү бинардык Blob (эч кандай ELF аталыштары) болуп саналат. Option объектинин картасын алуу сунуш кылынат.

-p, --probe

Эгер мүмкүн болсо, билиш үчүн модулду иликтөө ийгиликтүү жүктөлгөн . Бул модулда жолунда объект баар таап, версия номерин текшерүү жана белгилерди чечүү кирет. Бул жерде турбаган, текшерет да, ал карта же Blob билэни өндүрө албайт.

-P приставка, --prefix = приставка

Бул параметр, мисалы, модулдар кошумча приставка, алардын белгиси аттары менен кошо бар, анткени, бир SMP же bigmem ядро ​​versioned модулдары менен колдонсо болот. Ядро белгиси котормолорунда менен курулган болсо, анда insmod жазуусу "get_module_symbol" же "inter_module_get", модулдарды колдогон кандайдыр бир ядро ичинде болушу керек болгон бир аныктоодон байлм бөлүп берет. Ядро эч кандай белгиси котормолор бар, бирок модулу белгиси котормолордо менен курулган болсо, анда колдонуучу -P жеткирүү керек.

-q, --quiet

кандайдыр бир чечилбеген белгилер тизмесин басып алба. версия дал келбестиги жөнүндө нааразы деле болушпайт. Гана insmod менен чыгуу абалы чагылдырылат.

-r, - тамыр

Кээ бир колдонуучулар тамыры катары модулдарды орнотуу эмес тамыр userid боюнча модулдарды түзөт. Бул жараян модулдар каталог тамыры таандык болсо да, азык-тамыр userid таандык модулдарды чыгып кете алышат. Азык-тамыры userid бузулган болсо, зыян деп userid таандык болгон модулдарды үстүнө жана жеткиликтүүлүгүн тамыры чейин баштапкы бул таасири тийиши мүмкүн.

Алыдын ала, modutils тамыры таандык эмес модулду пайдалануу үчүн аракет кылганын да танышат. -r көрсөтүү текшерүүнү иштетет жана түпкү тамыры менен таандык эмес, модулдарды жүктөй мүмкүндүк берет. Эскертүү: тамыр текшерүү үчүн жарыяланбаган маани modutils өзгөрүүлөр болгондо өзгөртүлүшү мүмкүн.

-r колдонуу тамыры текшерүүү, же тарам учурда демейки "ал үчүн эч кандай тамыр текшерүү" орнотууну өчүрүү үчүн негизги коопсуздук таасири жана сунушталбайт.

сатылышы, - Syslog

Ордуна терминалынын Syslog (3) Output баары.

-S, --kallsyms

Ядро, аны колдоого албайт да, kallsyms маалыматтарды жүк артылган модулду мажбур. Бул параметр ядро kallsyms маалыматтар жок жүктөлгөн, бирок тандалып алынган модулдар жөндөө үчүн kallsyms зарыл чакан системалар үчүн. Бул параметр Red Hat Linux демейки болуп саналат.

-v, --verbose

дайын бол.

-V, --version

Insmod нускасын көрсөтүү.

-X, --export; -x, --noexport

Кыл жана тиешелүүлүгүнө жараша, Module тышкы белгилер бардык экспорттой жок. демейки белгилер ташылып керек. модулу ачык өз көзөмөлүндө белгиси дасторкон экспорт эмес, ошентип, эскирип калган болсо, бул параметрди гана натыйжалуу болот.

-Y, --ksymoops; -y, --noksymoops

Жана ksyms үчүн ksymoops белгилерди кошуу жок. Бул белгилер Бул модулда бир Ой жок болсо жакшы түзөтүүнү камсыз кылуу ksymoops тарабынан пайдаланылат. Демейки ksymoops белгилер аныкталган керек. Бул параметр -X / -x тандоолордун ичинен көз каранды эмес.

шарттуу жүктөлгөн модулда болжол менен 260 байт кошуу ksymoops. Сиз ядро ​​мейкиндигинде чын эле кыска болуп саналат жана анын минималдуу өлчөмү ksyms азайтууга аракет кылып жатышат каралбаса, демейки алып, тагыраак Ой мүчүлүштүктөрдү алуу. ksymoops белгилер сакталып модулу маалыматтарды сактоо үчүн талап кылынат.

Чек, --numeric-гана

модулдук ядро ​​таандык чечүүдө өзөк чыгаруу каршы модулу нускасынын сан бөлүгүн текшерип гана, башкача айтканда, EXTRAVERSION көрмөксөн. Бул желек жазуусу баштап 2,5 ядро ​​үчүн белгиленген, ал мурда данынын үчүн милдеттүү болуп саналат.

Module параметрлери

Кээ бир модулдар, алардын ишин колдоо үчүн жүк убакыт параметрлерин кабыл алуу. Бул көрсөткүчтөр көп I / O порт жана IRQ саны машинага машина ар кандай аппараттык аныкталышы мүмкүн эмес.

2.0 сериясы данынын үчүн курулган модулдары менен, кандайдыр бир бүтүн же мүнөзү көрсөткүчү белгиси бир параметр катары каралат жана өзгөртүлүшү мүмкүн. 2.1 сериясы данынын баштап, белгилер гана белгилүү баалуулуктар өзгөрүп турушу мүмкүн, андыктан ачык параметрлер катары белгиленген. Мындан тышкары, түрү жөнүндө маалымат жүк убагында берилип баалуулуктарды текшерүү үчүн берилет.

бүтүн учурда, бардык баалуулуктар ондук, Octal же он алтылык бир ла C болушу мүмкүн: 17, 021 же 0x11. Array элементтер үтүр менен бөлүнүп тизмек менен көрсөтүлгөн. Elements Наркы жетишсиздик менен жиберсе болот.

2.0 сериясы модулдары менен, бир катар менен башталышы эмес, баалуулуктар, саптарды каралат. 2,1-жылдан тартып, параметрдин түрү маалымат сап катары маанисин чечмелеп же жокпу көрсөтөт. Наркы кош тырмакчага ( ") менен баштаса, сап С деп да которулат, ырааттуулугун качып жана бардык. Номиналдык калыпка экенин белгилей кетүү керек, Гезит өздөрү номиналдык чечмелөө да корголушу керек болот.

GPL Уруксаттамалуу Modules жана Symbols

Ядро менен тартып 2.4.10, модулдар MODULE_LICENSE колдонуу менен аныкталат, бир лицензия сап, () болушу керек. Бир нече саптар GPL келген болуп таанылат; ар кандай башка лицензия сап же эч кандай лицензия модулу менчиги катары каралган дегенди билдирет.

Ядро / Жаздын / нүштөрдүн / ядро / ууланган желегин анда insmod же GPL уруксат кагазы жок модулду жүктөөдө ууланган желек "1" менен, колдоого алынса. Бир эскертүү ядро ​​булгайт жана модулу атайын уруксаты жок болсо жүктөп колдогондо гана берилет. Бир эскертүү ар дайым, атүгүл булгайт колдоо эмес, улуу майдаланган, GPL туура эмес, бир MODULE_LICENSE () бар эле модулдар боюнча берилет. Бул жаңы modutils улгайган майдаланган пайдаланылган учурда эскертүүлөрдү тырат.

insmod -f (күч) режими ЖЕ булгайт колдоо майдаланган "2" менен ууланган желеги болот. Бул дайыма эле эскертүү берүүдө.

Кээ бир ядро ​​иштеп чыгуучулар өз коду менен чыгуучу белгилер гана GPL келген уруксаты менен модулдар менен пайдалануу керек деп талап кылат. Бул белгилер EXPORT_SYMBOL_GPL ордуна кадимки EXPORT_SYMBOL аркылуу ташылып жатат. Ядро менен жана башка модулдар боюнча экспорттолуучу GPL гана белгилер бир GPL-келген уруксаты менен модулдар гана көрүнүп турат, бул белгилер "GPLONLY_" деген менен барактарды / Жаздын / ksyms көрүнөт. insmod Ƶ Сыпаттоо жок, модулдук кадимки белгиси аты айтылат бир GPL уруксат модулун жүктөлүп жатканда белгилер боюнча GPLONLY_ байлм четке каккан. GPL гана белгилер бир GPL улантууга уруксат кагазы жок модулдар үчүн жеткиликтүү эмес, бул эч кандай уруксаты менен модулдарды камтыйт.

Ksymoops жардам

Ядро менен жөндөө менен жардам берүү үчүн ksyms айрым белгилерди кошуу үчүн модулдарды, insmod демейки колдонууда Ой, -Y параметрин карагыла. Бул белгилер __insmod_modulename_ менен башталат. Modulename белгилер уникалдуу үчүн талап кылынат. Бул бир эле нерсени ар кандай сынак аттары боюнча бир нече жолу жүктөй мыйзамдуу болуп саналат. Учурда, аныкталган белгилер төмөнкүлөр болуп саналат:

__insmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile объект жүктөлгөн эле берилген аты. Бул ksymoops туура объектисине кодуна дал келүүсү шарт түзүүдө. mtime HEX ал иштин акыркы барак убакыт белгиси болуп саналат, нөлдүк статистика жок болсо. версия жок версия бар болсо модулу -1 үчүн түзүлгөн өзөк чыгаруу болуп саналат. _Түс белгиси модулу баш эле баштоо дареги бар.

__insmod_modulename_Ssectionname_Llength

Бул белгиси тандалган ELF бөлүмдөрү, учурда .text, .rodata, гына, .bss жана .sbss башталышында пайда болот. бир бөлүгү эмес нөлдүк өлчөмү бар болсо гана пайда болот. sectionname ELF бөлүмүнүн аталышы, узундугу ондук Бөлүмдүн узундугу. Бул белгилер ksymoops эч кандай белгилер жок болгондо бөлүккө дарегин карта жардам берет.

__insmod_modulename_Ppersistent_filename

Модулда ошондой эле туруктуу маалыматтарды жана белгиленген бир же бир нече параметрлер жок болсо гана insmod тарабынан түзүлгөн туруктуу маалыматтарды сактоо үчүн атын (-e көрүп, жогору) бар.

Мүчүлүштүктөрдү ядро Ой-жылы модулдары менен башка көйгөй / методго / ksyms жана / методго мазмуну / модулдар Oops жана журналы билэни иштеп жатканда ортосунда өзгөртө алабыз. Болсо, каталог, бул маселени чечүү үчүн жардам / VAR / / ksymoops анда insmod бар жана rmmod жазуусу көчүрүп / Жаздын / ksyms жана / методго / модулдарды үчүн / VAR / / ksymoops `убагы +% Y% м менен барактарды журналы болот журналы % D% H% M% S`. Системалык администратор бир Oops мүчүлүштүктөрдү жатканда колдонууга билэлэри тез ksymoops айтып бере алышат. Бул автоматтык көчүрмөсүн иштен эч кандай которулуу жок. Эгер ал пайда болушу үчүн келбесе, / VAR / журналы / ksymoops түзбөйт. Бул каталог бар болсо, анда тамыры таандык жана режими 644 же 600 жана ар бир күн же бул скриптер керек. Төмөндө скрипт insmod_ksymoops_clean катары орнотулган.

Негизги маалымат-билүү

NAME

insmod - loadable өзөк модулду орнотуу

Кыскача баяндама

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name] [епо module_name] [-O blob_name] [-P приставка] модулу [белгиси = балл ...]