Linux / Unix Command: insmod

Linux / Unix komutu insmod , çalışan çekirdekte yüklü bir modül yükler . insmod , kernelin ixrac simvolu masasından bütün simvolları həll edərək, bir modulu çalışan kernelə birləşdirməyə çalışır.

Modul faylının adı dizin və ya uzantı olmadan verilirsə , insmod bəzi ümumi standart qovluqlarda modulları axtaracaq . MODPATH ətraf mühit dəyişkənliyi bu default-u ləğv etmək üçün istifadə edilə bilər. /etc/modules.conf kimi bir modul konfiqurasiya faylı varsa, MODPATH-da müəyyən edilmiş yolları ləğv edər .

MODULECONF ətraf mühiti dəyişən də default /etc/modules.conf (ya da /etc/conf.modules (köhnəlmiş)) dan fərqli bir konfiqurasiya faylını seçmək üçün istifadə edilə bilər. Bu mühit dəyişkənliyi yuxarıda göstərilən bütün tərifləri ləğv edəcəkdir.

UNAME_MACHINE mühit dəyişkənliyi təyin edildikdə, modutils uname () syscall-dan maşın sahəsinin yerinə istifadə edəcəkdir. 32-bitlik istifadəçi məkanında 64-bit modul tərtib edərkən və ya əksinə, əsasən istifadə olunur, UNAME_MACHINE modul tipinə qurun . Mövcud modutils modullar üçün tam cross-yaratma rejimini dəstəkləmir, bu host mimarisinin 32- və 64-bit versiyalarını seçməklə məhdudlaşır.

Seçimlər

-e persist_name , --persist = persist_name

Modul üçün hər hansı bir davamlı məlumatın yükdən oxunduğu və modulun bu işə salınması zaman yazılmış olduğu yerləri bildirir. Modul heç bir davamlı məlumat olmadıqda, bu seçim səssizcə nəzərə alınmır. Davamlı məlumat yalnız bu variant mövcud olduqda, insmod tərəfindən davamlı məlumatları işləməyəcək şəkildə insmod tərəfindən oxunur .

Bir steno şəklində , "-" (boş bir simli) insmod tərəfindən modules.conf-da müəyyən edildiyi kimi davamlı dəyər kimi izah edilir, sonra modulun filenamei, aşkar olunan modul axtarış yoluna görə, ".gz", ".o" və ya ".mod" arxasınadək. Modules.conf " persistdir = " (yəni persistdir boş bir sahə) olduğunu ifadə edərsə , bu steno forma səssizcə nəzərə alınmır. ( Modules.conf (5) baxın.)

-f , - qüvvə

Modulun yükləndiyi çekirdek versiyası və modulun tərtib olunduğu çekirdek versiyası uyğun gəlmirsə də modul yükləməyə çalışın. Bu, yalnız çekirdek sürümünü yox sayır, simge adı çeklerine heç bir etkisi yoxdur. Moduldakı simvolu adları kernelə uyğun gəlmirsə , modul yükləmək üçün insmodun məcbur edilməsinə yol yoxdur.

-h , - yardımçı

Seçimlərin xülasəsini göstərin və dərhal çıxın.

-k , --autoclean

Modulda avtomatik təmiz bayraq qurun. Bu bayraq, bir müddət ərzində istifadə edilməmiş modulları aradan qaldırmaq üçün kerneld (8) tərəfindən istifadə ediləcək - adətən bir dəqiqə.

-L , - kilid

Eyni modulun eyni vaxtda yüklənməsinin qarşısını almaq üçün sürüyü (2) istifadə edin.

-m , -map

Stdout-da bir yük xəritəsini çıxardın, daha asan bir çekirdek çaxnaşması halında modülü düzəltməyə kömək edin.

-n , - noload

Dummy run, modulun kernelə yüklənməsi xaricində hər şeyi edin. Bir -m və ya -O ilə tələb edildikdə, run bir xəritə və ya blob faylı çıxaracaq. Modul yüklənməmiş olduğundan, real çekirdek yük ünvanı bilinmir, beləliklə xəritə və blob faylı 0x12340000 yükbaşına yüklənmə ünvanına əsaslanır.

-o module_name , --name = module_name

Mənbəyi obyekt faylının əsas adından adını çıxarmaq yerinə açıq şəkildə modulun adını verin.

-O blob_name , --blob = blob_name

Ikili obyekti blob_name-saxlaya bilərsiniz . Nəticədə bölmə manipulyasiyası və köçürülməsindən sonra kernelə yüklənilənləri tam olaraq göstərən ikili blob (ELF başlıqları yoxdur). Seçim -m obyektin xəritəsini almaq məsləhətdir.

-p , --probe

Modu müvəffəqiyyətlə yüklənə biləcəyini gözdən keçirin . Bu modul yolunda obyekt faylını yerləşdirmək, versiya nömrələrini yoxlamaq və simvolları həll etmək daxildir. Bu köçürmələri yoxlayır, nə də bir xəritə və ya blob fayl yaratmır.

-P prefiksi , --prefix = prefiks

Bu seçim bir SMP və ya böyük bir çekirdek üçün versiya modullarla istifadə edilə bilər, çünki bu modullarda simvollarında əlavə bir əlavə əlavə olunur. Kernel simvol versiyaları ilə qurulduqdan sonra insmod avtomatik olaraq "get_module_symbol" və ya "inter_module_get" anlayışından prefiks çıxaracaq, onlardan biri modulları dəstəkləyən hər hansı bir çekirdəkdə olmalıdır. Kernelin simvolu versiyası yoxdur, lakin modul simvol versiyaları ilə qurulduqdan sonra istifadəçi -P təmin etməlidir.

-q , - qətiyyən

Həll olunmamış simvolların siyahısını yazmayın. Sürüm uyuşmazlığından şikayət etmə. Problem yalnız insmodun çıxış vəziyyətində əks olunacaq .

-r , - kök

Bəzi istifadəçilər qeyri-root userid altında modulları tərtib etdikdən sonra modulları kök kimi qururlar. Bu proses kök olmayan istifadəçi modullarını tərk edə bilər, baxmayaraq ki, modul qovluğu köklərə aiddir. Qeyri-root userid təhlükəsizliyə məruz qaldıqda, bir intruder bu userid sahibinə aid olan mövcud modulların üzərində yaza və root çıxışına qədər başlanğıc üçün bu pozuntudan istifadə edə bilər.

Varsayılan olaraq, modutils kök sahibi olmayan bir moduldan istifadə etməyə cəhdləri rədd edəcəkdir. -r göstəricisini təyin edəcəyik və kökdən kök sahibi olmayan modulları yükləməyə icazə verin. Qeyd: modutils yapılandırıldığında kök kontrolü üçün varsayılan değer değiştirilebilir.

Kök yoxlanmasını aradan qaldırmaq və ya konfiqurasiya vaxtında "kök yox yox" u mənimsəmək üçün -r-nin istifadə edilməsi əsas təhlükəsizliyə məruz qalır və tövsiyə edilmir.

-s , - syslog

Terminal yerinə syslog (3) üçün hər şeyi çıxartın .

-S , - kollar

Yüklənmiş modul, kallel məlumatlarını dəstəkləməməli olsa da, çekirdek onu dəstəkləmir. Bu seçim, kernelin kallsyms məlumatları olmadan yükləndiyi kiçik sistemlər üçün nəzərdə tutulub, lakin seçilən modullar diskussiya üçün kallimlərə ehtiyac duyur . Bu seçim Red Hat Linux-da default olaraq göstərilir.

-v , - verbose

Əlavə olun.

-V , - dəyişiklik

Insmod versiyasını göstərin .

-X , - ixrac ; -x , --noexport

Modulun xaricindəki simvolların hamısını ixrac edin və etməyin. Sifariş, ixrac ediləcək simvollar üçündür. Bu seçim yalnız modul açıq şəkildə öz nəzarət simvolu masasını ixrac etmədikdə və beləliklə, tətbiq edilmədiyindən təsirli olur.

-Y , - ksymoops ; -y , - noksymoops

Ksymoops simvollarını ksimlərə əlavə edin və əlavə etmirsiniz. Bu simvollar ksymoops tərəfindən bu modulda bir səhv varsa daha yaxşı bir şəkildə diskussiya təmin etmək üçün istifadə olunur. Sifariş ksymoops simvollarının müəyyən edilməsi üçündür . Bu seçim -X / -x variantlarından asılıdır.

ksymoops simvolları yüklənmiş modula görə təxminən 260 bayt əlavə edin. Kernel məkanında həqiqətən qısa olmadıqda və ksymsləri minimum ölçüyə salmağa çalışdığınız halda, default et və daha doğru Oops ayıklama əldə edin. ksymoops simvolları davamlı modul məlumatlarını saxlamaq üçün tələb olunur.

-N , - yalnız ədədi

Modul versiyasının çekirdek versiyasına qarşı sayısal hissəsini yoxlayın, yəni bir modulun bir çekirdeke ait olub olmadığına karar verirken EXTRAVERSION'u yok sayın. Bu bayrağın çekirdek 2.5 üçün avtomatik olaraq ayarlandığı, əvvəlki çekirdekler üçün isteğe bağlıdır.

Modul parametrləri

Bəzi modullar, əməliyyatlarını fərdiləşdirmək üçün yükləmə parametrlərini qəbul edirlər. Bu parametrlər tez-tez maşından maşına dəyişən I / O portu və İQQ nömrədir və donanmadan müəyyən edilə bilməz.

2.0 seriyası çekirdekler üçün qurulmuş modullarda, hər hansı bir tamsayı və ya xarakter göstərici simvolu bir parametr kimi qəbul edilə və dəyişdirilə bilər. 2.1 seriyalı çekirdeklerden başlayarak, yalnız xüsusi dəyərlər dəyişdirilə bilməsi üçün simvollar açıq şəkildə parametrlər kimi qeyd olunur. Bundan əlavə, yük məlumatında verilən dəyərləri yoxlamaq üçün məlumat məlumatı verilir.

Tam sayılar halında, bütün dəyərlər ondalık, sekizli və ya onaltılı a la C: 17, 021 və ya 0x11 ola bilər. Array elementləri virgülle ayrılmış müəyyən ardıcıllıqla göstərilir. Element dəyəri atlayaraq atlana bilər.

2.0 seriyalı modullarda bir sıra ilə başlamayan dəyərlər strings sayılır. 2.1-dən başlayaraq, parametrin növü məlumatı dəyəri dəmir kimi şərh etməyini göstərir. Qiymət cüt tirnoq ( " ) ilə başlanırsa, simli C, qaçış sıraları və hamısı kimi şərh edilir. Qabıqdan irəli gələn sətirlərin özlərinin kabuk şərhindən qorunması lazım ola bilər.

GPL Lisenziyalı Modulları və Simvolları

2.4.10 çekirdekdən başlayaraq, modullar MODULE_LICENSE () istifadə edərək müəyyənləşdirilmiş lisenziyaya malik olmalıdırlar. Bir neçə simli GPL uyğun olaraq tanınır; hər hansı digər lisenziyalı simli və ya heç bir lisenziyasız modulun mülkiyyətə aid olduğu deməkdir.

Kernel / proc / sys / core / tainted bayrağı dəstəkləyərsə, bir modul GPL lisenziyası olmadan yükləyərkən insmod və ya '1' ilə örtülü bayraq olar. Kernelin təyini və modul lisenziyasız yüklənirsə, xəbərdarlıq verilir. GPL- uyğun olmayan bir MODULE_LICENSE () olan modullar üçün həmişə bir xəbərdarlıq verilir. Bu, yeni bir modutils köhnə çekirdeklerde istifadə edildikdə xəbərdarlıqları minimuma endirir.

insmod -f (qüvvə) rejimi və ya kəmərləri dəstəkləyən çekirdeklərdə '2' ilə örtülü bayraq olacaqdır. Həmişə bir xəbərdarlıq verir.

Bəzi çekirdek geliştiriciler, onların kodu ilə ixrac etdiyi simvolları yalnız GPL uyğun lisenziyalı modullar tərəfindən istifadə edilməsini tələb edir. Bu simvollar EXPORT_SYMBOL əvəzinə EXPORT_SYMBOL_GPL tərəfindən ixrac olunur. Kernel və digər modullar tərəfindən ixrac edilən GPL yalnız simvolları yalnız GPL-uyğun lisenziyalı modullarda görünür, bu simvollar " GPLONLY_ " prefiksi ilə / proc / ksyms- də görünür. GPLONLY_ prefiksini GPL lisenziyalı modulu yükləyərkən simvollara məhəl qoymur, modul yalnız prefiks olmadan normal sembol adına istinad edir. GPL yalnız simvolları GPL uyğun lisenziya olmadan modullara təqdim edilmir, bu heç bir lisenziyasız modulları ehtiva edir.

Ksymoops Kömək

Modulları istifadə edərkən, kernel Oops'un hata ayıklamasına yardım olmaq üçün, ksyms üçün bəzi simvolları əlavə etmək üçün qeyri-standartları yoxlayın, -Y seçiminə baxın. Bu simvollar __insmod_modulename_ ilə başlanır . Modulename simvolları unikal etmək üçün tələb olunur. Müxtəlif modul adları altında eyni obyekti birdən çox dəfə yükləmək qanuni. Hal-hazırda müəyyən simvollar:

__nsmod_modulename_Oobjectfile_Mmtime_Vversion

objectfile , obyektin yükləndiyi faylın adıdır. Bu ksymoops kodun düzgün obyektə uyğun olmasını təmin edir. mtime , stat faylın uğursuzluğunda sıfır olan hexdə bu faylda ən son dəyişən zaman damgasıdır . versiyası heç bir versiya mövcud deyilsə, modul üçün hazırlanmış olan çekirdek versiyasıdır. _O simvolu modul başlığı ilə eyni başlanğıc ünvanına malikdir.

__nsmod_modulename_Ssectionname_Llength

Bu simvol hazırda seçilmiş ELF bölmələrinin başında, hazırda .extext, .rodata, .data, .bss və .sbss görünür. Yalnız hissəsi qeyri-sıfır ölçüsü varsa yalnız görünür. bölmə adı ELF bölməsinin adıdır, uzunluğu decimal ədədinin uzunluğu. Bu simvollar ksymoops xəritədə heç bir simvol mövcud olmadığı zaman ünvanları ünvanlarına kömək edir.

__nsmod_modulename_Ppersistent_filename

Modul təkrarlanan məlumatlar və davamlı məlumatları saxlamaq üçün bir fayl adı ilə qeyd olunan bir və ya daha çox parametrə malikdirsə, yalnız insmod tərəfindən yaradılmışdır (yuxarıda bax).

Hata ayıklama çekirdeği ilə digər problem modullarda Oops ki, / proc / ksyms/ proc / modullarının məzmunu, Oops və günlük faylını işlədiyinizdə dəyişə bilər. Bu problemi aradan qaldırmaq üçün kataloq / var / log / ksymoops varsa, insmodrmmod avtomatik olaraq / date /% / y / m / var / log / ksymoops / proc / ksyms/ proc / % d% H% M% S`. Sistem administratoru, bir Oops ayıklama zamanı anlık faylları istifadə edən ksymoops deyə bilərsiniz. Bu avtomatik surəti aradan qaldırmaq üçün heç bir keçid yoxdur. Bunun meydana gəlməsini istəmirsinizsə, / var / log / ksymoops yaradın . Bu kataloq mövcuddursa, kökdən sahibi olmalı və 644 və ya 600 moda olmalıdır və bu scripti hər gün və ya daha çox çalıştırmalısınız. Aşağıdakı skript insmod_ksymoops_clean kimi quraşdırılmışdır.

Bilmək üçün əsas məlumatlar

NAME

insmod - yüklənə bilən çekirdek modulunu quraşdırın

SYNOPSIS

insmod [-fhkLmnpqrsSvVxXyYN] [-e persist_name ] [-o module_name ] [-O blob_name ] [-P önek ] modülü [ symbol = value ...]