Provided by:
manpages-pl_20060617-4_all 
NAZWA
insmod - instaluje ladowalny modul jdra
SK/LADNIA
insmod [-fhkLmnpqrsSvVxXyY] [-e nazwa_przechowalni] [-o nazwa_modulu]
[-O nazwa_blob] [-P przedrostek] modul [ symbol=warto ... ]
OPIS
insmod instaluje ladowalny modul do dzialajcego jdrze.
insmod probuje dolczy modul do uruchomionego jdra systemu przez
rozwizanie wszystkich symboli z tabeli udostpnianych symboli jdra.
Jeli nazwa pliku modulu, podana jest bez katalogu i rozszerzenia,
insmod bdzie szukal modulu w kilku standardowych katalogach. Mona uy
zmiennej rodowiska MODPATH aby zmieni to standardowe zachowanie. Jeli
istnieje plik konfiguracyjny modulow taki, jak /etc/modules.conf (lub
(przestarzaly) /etc/conf.modules), cieki w nim zdefiniowane bd mialy
priorytet nad zdefiniowanymi w MODPATH.
Mona rownie posluy si zmienn rodowiska MODULECONF dla wybrania innego
pliku konfiguracyjnego ni standardowy /etc/modules.conf (lub
(przestarzaly) /etc/conf.modules). Ta zmienna rodowiska bdzie miala
priorytet nad wszystkimi powyszymi definicjami.
OPCJE
-f --force
Usiluje zaladowa modul nawet jeli wersja uruchomionego jdra i
jdra dla ktorego modul zostal skompilowany nie zgadzaj si.
Powoduje to jedynie wylczenie kontroli zgodnoci wersji. Opcja ta
nie ma wplywu na sprawdzanie nazw symboli. Jeli nazwy symboli w
module nie zgadzaj si z kernelem, wymuszenie nie jest moliwe.
-h --help
Wypisuje tekst pomocy.
-k --autoclean
Ustawia dla danego modulu atrybut automatycznego usuwania.
kerneld(8) usunie kady modul z tym atrybutem, jeli nie bdzie on
uywany przez pewien okres czasu -- zazwyczaj jedn minut.
-L --lock
Za pomoc flock(2) zapobiega jednoczesnemu ldowaniu tego samego
modulu.
-m --map
Wypisuje odwzorowanie ladowanych symboli, ktore moe pomoc w
odszukaniu usterki w przypadku wystpienia bldu jdra (kernel
panic).
-n --noload
Symulacja pracy, wykonuje wszystko oprocz zaladowania modulu do
jdra. Jeli wywolane z -m lub -O, w wyniku uruchomienia powstanie
odwzorowanie symboli lub plik z kopi kodu modulu w jdrze (blob).
Ze wzgldu na fakt, e modul nie zostanie zaladowany, rzeczywisty
adres jdra, pod ktorym modul bylby zaladowany pozostanie
nieznany, wic zarowno odwzorowanie symboli, jak i plik blob
zostan oparte na z gory ustalonym adresie 0x12340000.
-p --probe
Sprawdza, czy modul moe zosta zaladowany bez klopotow. Obejmuje
to znalezienie modulu w ciece wyszukiwania dla modulow,
sprawdzanie numerow wersji i rozwizanie symboli. nie s
sprawdzane przesunicia ani nie s tworzone odwzorowanie symboli i
plik blob.
-q --quiet
Nie wypisuje listy nierozwizanych symboli. Nie narzeka na
niezgodne wersje. Wystpienie problemu zostanie jedynie
uwidocznione w kodzie zakoczenia programu insmod.
-r --root
Niektorzy uytkownicy kompiluj moduly jako uytkownik inny ni
root, a nastpnie instaluj je jako root. W wyniku tego
wlacicielem modulow nie bdzie root, nawet jeli jest on
wlacicielem katalogu modulow. Jeli dopuci si innego uytkownika
ni root jako wlaciciela modulow, umoliwi si nieproszonemu
gociowi nadpisanie istniejcych modulow bdcych wlasnoci tego
uytkownika i wykorzystanie zaladowania go do uzyskania uprawnie
roota.
Domylnie, modutils odrzuc prob zaladowania modulu nie nalecego
do root-a. Podanie -r zniesie bld i pozwoli root-owi zaladowa
moduly, ktore nie s jego wlasnoci. Uwaga: domylne warto opcji
sprawdzania, czy wlacicielem jest root moe by zmieniona podczas
konfiguracji modutils.
Uywanie -r do wy/lczenia sprawdzania, czy w/lacicielem jest root
lub ustawienie wartoci domylnej na "nie sprawdzaj, czy
w/lacicielem jest root" podczas konfiguracji stanowi powane
naruszenie bezpieczestwa i nie jest zalecane.
-s --syslog
Wyprowadza wszystko do syslog(3) zamiast na terminal.
-S --kallsyms
Wymusza, aby ladowany modul zawieral dane kallsyms, nawet gdy
jdro ich nie obsluguje. Ta opcja jest przeznaczona dla malych
systemow, gdzie jdro jest ladowane bez danych kallsyms, ale
wybrane moduly potrzebuj kallsyms dla poszukiwania usterek.
-v --verbose
Wlcza wywietlanie duej iloci informacji.
-X --export, -x --noexport
Odpowiednio, udostpnia lub nie wszystkie symbole zewntrzne
modulow. Standardowo, symbole s udostpniane. Ta opcja ma
jedynie znaczenie, gdy modul sam jawnie nie udostpnia swojej
wlasnej tabeli symboli i dlatego jest w zaniku. -Y --ksymoops,
-y --noksymoops Dodaje/nie dodaje do ksyms symboli dla ksymoops.
Symbole te s uywane przez ksymoops aby zapewni wiksze moliwoci
poszukiwania usterek, gdy wystpi w tym module Oops (bld
kernela). Standardowo, symbole dla ksymoops s zdefiniowane. Ta
opcja jest niezalena od opcji -X/-x.
Symbole dla ksymoops zwikszaj ladowany modul o okolo 260 bajtow.
O ile nie cierpi si na wyrany brak przestrzeni adresowej kernela
i nie probuje si zminimalizowa ksyms, naley przyj warto domyln i
otrzymywa bardziej precyzyjne informacje o usterkach w razie
Oops. Symbole dla ksymoops s niezbdne, aby w sposob trwaly
przechowywa dane modulow.
-o nazwa_modulu --name=nazwa_modulu
Podanie jawne nazwy modulu, zamiast wywodzenia jej z podstawowej
czci nazwy pliku z modulem.
-O nazwa_blob --blob=nazwa_blob
Zachowuje obiekt binarny w nazwa_blob. Wynikiem jest binarny
blob (bez naglowkow ELF) pokazujcy, co dokladnie zostalo
zaladowane do kernela po manipulacjach sekcjami i przesuniciach.
Zaleca si opcj -m, aby otrzyma odwzorowanie symboli obiektu.
-P przedrostek --prefix=przedrostek
Ta opcja moe by uywana z wersjonowanymi modulami, przy jdrze SMP
lub jdrze z obslug wysokiej pamici (bigmem), gdy wowczas do nazw
symboli modulow dodawany jest dodatkowy przedrostek. Jeli jdro
zostalo zbudowane z wersjonowanymi symbolami, to insmod
automatycznie wycignie przedrostek z definicji
"get_module_symbol" lub "inter_module_get", z ktorych jeden musi
istnie w dowolnym kernelu obslugujcym moduly. Jeli symbole jdra
nie s wersjonowane, a modul zostal zbudowany z wersjonowanymi
symbolami, to uytkownik musi poda -P.
-e nazwa_przechowalni --persist=nazwa_przechowalni
Okrela, skd powinny by odczytane jakiekolwiek trwale dane dla
modulu podczas jego ladowania i gdzie powinny one zosta
zapisane, gdy ta kopia modulu bdzie usuwana z jdra. Opcja ta
jest milczco ignorowana, gdy modul nie posiada adnych trwale
przechowywanych danych. Trwale dane s odczytywane przez insmod
jedynie, gdy ta opcja zostanie podana. Domylnie, insmod nie
przetwarza adnych trwalych danych. Skrocona forma: -e "" (pusty
lacuch) jest interpretowana przez insmod jako warto persistdir
(zobacz modules.conf(5)), po ktorej wystpuje nazwa pliku modulu,
wzgldem cieki, w ktorej modul zostal znaleziony, z pominiciem
kocowych '.gz', '.o' i '.mod'. Jeli zostanie podane persistdir=
(tzn. persistdir jest pustym polem) wowczas ta forma skrocona
zostanie milczco zignorowana.
PARAMETRY MODU/L'OW
Niektore z modulow akceptuj podawanie im parametrow w czasie ladowania
w celu dostosowania ich do okrelonych warunkow pracy. Tymi parametrami
najczciej s adresy portow I/O i numery przerwa, ktore zmieniaj si w
zalenoci od sprztu, a ktorych detekcja nie jest moliwa.
W modulach zbudowanych dla jder seri 2.0, jakikolwiek symbol bdcy
wskanikiem do typu calkowitego lub znakowego moe by potraktowany jako
parametr i zmodyfikowany. Poczynajc od jder 2.1, symbole stanowice
parametry s jawnie zaznaczone, aby tylko okrelone parametry mogly by
modyfikowane. Co wicej, podawana jest informacja o typie parametru aby
przy ladowaniu mona bylo j skontrolowa.
W przypadku wartoci calkowitych, wszystkie wartoci mog zosta podane
dziesitnie, osemkowo lub szenastkowo np.: 17, 021 lub 0x11. Tablice
wartoci podajemy jako cig elementow rozdzielonych przecinkami; elementy
mog by pominite przez ominicie ich wartoci.
W modulach serii 2.0, wartoci ktore nie zaczynaj si od cyfry traktowane
s jako lacuchy. Poczynajc od jder 2.1, informacja o typie parametru
wskazuje czy warto ma by interpretowana jako lacuch. Jeli warto zaczyna
si od cudzyslowu ("), lacuch jest interpretowany jak w C, sekwencje
ucieczkowe i in. Naley zauway, e przy podawaniu parametrow z linii
polece powloki, moe istnie potrzeba zabezpieczenia samych cudzyslowow
przed interpretacj przez powlok.
MODU/LY I SYMBOLE NA LICENCJI GPL
Poczwszy od jdra 2.4.10, moduly powinny zawiera lacuch bdcy nazw
licencji, zdefiniowany za pomoc MODULE_LICENSE(). Niektore lacuchy s
rozpoznawane jako zgodne z GPL, wszelkie inne lacuchy licencji, lub
brak licencji oznaczaj, e modul jest traktowany jako zastrzeony.
Zajrzyj do include/linux/module.h po list zgodnych z GPL lacuchow
licencji.
Jeli jdro obsluguje znacznik /proc/sys/kernel/tainted to insmod podczas
ladowania modulu nie na licencji GPL, wykona operacj OR dla znacznika
tainted (skaony) i '1'. Jeli kernel obsluguje skaenia, to podczas
ladowania modulu bez licencji wypisane zostanie ostrzeenie; ostrzeenie
bdzie wypisywane zawsze, nawet przy starszych, nieobslugujcych skae,
jdrach, dla modulow posiadajcych MODULE_LICENSE() niezgodne z GPL.
Minimalizuje to liczb ostrzee podczas uywania nowych modutils ze
starymi jdrami.
Tryb insmod -f (wymuszenie) przy jdrach obslugujcych skaenia, bdzie
zawsze powodowa wykonanie OR dla znacznika tainted i '2', zawsze te
bdzie wypisywane ostrzeenie.
Niektorzy autorzy kodu jdra wymagaj, aby symbole udostpniane przez ich
kod mogly by wykorzystywane wylcznie przez moduly na licencji zgodnej z
GPL. Symbole te s udostpniane przez EXPORT_SYMBOL_GPL zamiast zwyklego
EXPORT_SYMBOL. Symbole "tylko dla GPL" udostpniane przez kernel i inne
moduly s widziane wylcznie przez moduly na licencji zgodnej z GPL.
Symbole te pojawi si w /proc/ksyms z przedrostkiem 'GPLONLY_'. Podczas
ladowania modulu na licencji GPL insmod ignoruje przedrostek GPLONLY_
dla symboli, wic ladowany modul odwoluje si po prostu do zwyklej nazwy
symbolu, bez przedrostka. Symbole "tylko dla GPL" staly si niedostpne
dla modulow o licencji niezgodnej z GPL, wlczajc w to moduly bez
jakiejkolwiek licencji.
POMOC KSYMOOPS
Aby pomoc w analizie Oopsow (bldow) jdra podczas uywania modulow,
insmod domylnie dodaje kilka symboli do ksyms, zobacz opcja -Y.
Symbole te zaczynaj si od __insmod_nazwamodu/lu_. nazwamodu/lu jest
niezbdna, aby symbol byl unikalny, dozwolone jest ladowanie tego samego
obiektu wicej ni raz podajc rone nazwy modulu. Obecnie zdefiniowane s
symbole
__insmod_nazwamodu/lu_Oplikobiektu_Mczas_Vwersja
plikobiektu jest nazw pliku z ktorego modul zostal zaladowany.
Zapewnia to, e ksymoops dopasuje kod do wlaciwego obiektu. czas jest
podanym szesnastkowo znacznikiem czasu ostatniej modyfikacji dla tego
pliku, zero gdy stat zakoczy si niepomylnie. wersja jest wersj jdra,
dla ktorej modul skompilowano, -1, gdy numer wersji jest niedostpny.
Symbol _O posiada taki sam adres pocztkowy, jak naglowek modulu.
__insmod_nazwamodu/lu_Snazwasekcji_Ld/lugo
Symbol ten pojawia si na pocztku wybranych sekcji ELF, obecnie .text,
.rodata, .data i .bss. Pojawia sie on jedynie w sekcjach o niezerowym
rozmiarze. nazwasekcji jest nazw sekcji ELF, d/lugo jest jej podanym
dziesitnie rozmiarem. Symbole te pomagaj programowi ksymoops odwzorowa
adresy w sekcjach, w ktorych nie s dostpne adne symbole.
__insmod_nazwamodu/lu_Pnazwa_przechowalni
Tworzone przez insmod jedynie gdy modul posiada jeden lub wicej
parametrow oznaczonych jako trwale dane i jest dostpny plik
przechowujcy te trwale dane (patrz -e powyej).
Inny problem przy analizie Oops jdra polega na tym, e zawarto
/proc/ksyms i /proc/modules cmoe si zmieni pomidzy Oopsami i podczas
przetwarzania pliku logu. Aby pomoc pokona ten problem, insmod i rmmod
bd automatycznie kopiowa /proc/ksyms i /proc/modules do
/var/log/ksymoops o ile katalog /var/log/ksymoops istnieje. Bdzie
stosowany przedrostek `date +%Y%m%d%H%M%S`. Administrator systemu moe
poda ksymoops, ktory zrzut plikow ma by uyty podczas analizy Oopsa. Nie
ma przelcznika wylczajcego to automatyczne kopiowanie, wic jeli nie
powinno ono wystpowa, nie naley tworzy katalogu /var/log/ksymoops. Jeli
ten katalog istnieje, powinien on by wlasnoci roota, mie prawa dostpu
644 lub 600 i naley uruchamia codziennie, lub w podobnych odstpach
czasu, poniszy skrypt. Jest on zainstalowany jako
insmod_ksymoops_clean.
#!/bin/sh
# Usuwa zachowane zawartoci ksyms i modules nie uywane przez 2 dni
if [ -d /var/log/ksymoops ]
then
set -e
# Upewnia si, e zawsze zostanie co najmniej jedna wersja
d=`date +%Y%m%d%H%M%S`
cp -a /proc/ksyms /var/log/ksymoops/${d}.ksyms
cp -a /proc/modules /var/log/ksymoops/${d}.modules
find /var/log/ksymoops -type f -atime +2 -exec rm {} \;
fi
ZOBACZ TAKE
rmmod(8), modprobe(8), depmod(8), lsmod(8), ksyms(8), modules(2),
genksyms(8), kerneld(8), ksymoops(kernel).
HISTORIA
Wsparcie dla modulow zostalo zapocztkowane przez Anonima
Pierwsza wersja Linuksowa przygotowana przez Basa Laarhovena
<bas@vimec.nl>
Wersja 0.99.14 przygotowana przez Jona Tombsa <jon@gtex02.us.es>
Rozbudowana przez Bjorna Ekwalla <bj0rn@blox.se>
Pierwotna pomoc dla ELF od Erica Youngdale'a <eric@aib.com>
Aktualizowna do 2.1.17 przez Richarda Hendersona <rth@tamu.edu>
Rozszerzona przez Bjorna Ekwalla <bj0rn@blox.se> dla modutils-2.2.* w
marcu 1999
Pomocy przy ksymoops udzielil Keith Owens <kaos@ocs.com.au> w maju 1999
Zarzdza: Keith Owens <kaos@ocs.com.au>.
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.