Lsmod

From EIK wiki

Autor

Kaupo Saar Ak41 2014/2015

Esitatud: 06.1.2015

Täiendab: Marko Megerild AK-21


Sissejuhatus

Käsud lsmod, rmmod, insmod on kernelis jooksvate moodulite lisamiseks, eemaldamiseks ja nende kohta informatsiooni saamiseks. Kõik käsud on mõeldud root kasutaja all jooksutamiseks.

Lsmod

[1] [2]

lsmod on käsk Linux süsteemis mis prindib /proc/modules faili sisu. lsmod näitab millised laaditavad kerneli moodulid on hetkel laaditud. Lsmod käsklust tuleb jooksutada root õigustes.

Näide:

# lsmod
Module                  Size  Used by
af_packet              27392  2 
Realtek|8139too        30592  0 
snd_cs46xx             96872  3 
snd_pcm_oss            55808  1 
snd_mixer_oss          21760  2 snd_pcm_oss
iptables|ip6table       7424  1 
iptables|ip6_tables    19728  1 ip6table_filter
IPv6|ipv6             290404  22 
XFS|xfs               568384  4 
sis900                 18052  5 
Parallel ATA|libata   169920  1 pata_sis
SCSI|scsi_mod         158316  3 usb_storage,sd_mod,libata
USB|usbcore           155312  6 


"Module" näitab mooduli nimetust. "Size" näitab mooduli suurust (mitte mälu kasutust). "Used by" tähistab iga mooduli kasutamise arvu ja nimekirja viidates moodulile.

Kui moodul kontrollib ise enda mahalaadimist, läbi "can_unload" rutiini, kuvatakse "Used By" tulbas -1.


Moodulite tugi lisati esmalt Bas Laarhoveni poolt.

Laiendati versioonis 0.99.14 Jon Tombs.

On peale seda korduvalt laiendatud erinevate developeride poolt (Bjorn Ekwall, Richard Henderson).



Rmmod

[3] [4]


Rmmod — lihtne programm millega eemaldada mooduleid Linuxi kernelist. Piiranguteks on, et need moodulid ei ole hetkel kasutuses ja ükski teine moodul ei viita sellele moodulile. Rmmod käsklust tuleb jooksutada root õigustes.

Kui käsureal on nimetautd rohkem kui üks moodul, siis need eemaldatakse nimetatud järjekorras. Tänu sellele on võimalik eemaldada kuhjatud mooduleid.

-r võtmega proovitakse rekursiivset eemaldus meetodit. See tähendab, et juhul, kui käsureal nimetatud moodul on kuhjatud, eemaldatakse kõik alus moodulid kui võimalik.



rmmod[-f] [-w] [-s] [-v] [modulename]
      -a, --all
                Teeb automaatse puhastuse, kõik mitte kasutusel olevad moodulid
                märgitakse kustutamiseks, eemaldab ka kõik moodulid millel vastav
                märge küljes. Moodulitele jääb märge külge kui neid ei kasutata
                kordagi eelmisest automaatsest puhastusest.


      -e, --persist
                Salvestab püsivad andmed nimetautd moodulitele.
                Kui mooduli nime ei ole spetsifitseeritud, salvestatakse andmed
                kõikide moodulite kohta. Andmed salvestatakse ainult, kui nii 
                kernel ja modutils toetavad püsiandmeid ja /proc/ksyms sisaldab
                kirjet __insmod_modulename_Ppersistent_filename.


      -h, --help
                Näitab võtmete kokkuvõtet.


      -v --verbose
                Prindib teateid, mida programm teeb.
                Tavaliselt rmmod ainult prindib sõnumeid, kui midagi läheb valesti.


      -f --force
                Eemaldab mooduli ilma tingimusteta, isegi kui moodul on kasutuses.


      -w --wait Tavaliselt rmmod keelab moodulite mahalaadimist, mis on kasutuses. 
                Selle variandi puhul rmmod isoleerib mooduli ja paneb selle ootele, kuni moodulit enam ei kasutata.
                Uuel kasutajal pole võimalik kasutada moodulit, kuid moodul jääb niikaua saadavale aktiivsele kasutajale kuniks seda enam ei kasutata.


      -s --syslog
                Saadab veateate syslogi, standard errori asemel.


      -V --version
                Näitab programmi versiooni.

---

Insmod

[5]

insmod Paigaldab laaditava mooduli töötavasse Linuxi kerneli. Insmod käsklust tuleb jooksutada root õigustes.

insmod proovib linkida mooduli jooksvasse kernelisse lahendaded kõik sümbolid kernelist eksporditud sümboli tabelis.

insmod otsib moodulit üldistest vaike kaustadest kui mooduli faili nimi on antud ilma kataloogi või faili laiendita.

Keskonnamuutuja MODPATH on siin kasutatav vaikeväärtuse ülekirjutamiseks, kui moodulite konfiguratsiooni fail, näiteks /etc/modules.conf, eksisteerib kirjutab see MODPATH vaikeväärtused üle.

Keskonnamuutuja MODULECONF saab kasutada mitte vaikeväärtus konfiguratsiooni faili (/etc/modules.conf) kasutamiseks.

See keskonnamuutuja kirjutab üle kõik eelnevalt määratud vaikeväärtused.

Kui keskonnamuutuja UNAME_MACHINE on kasutusel, siis modutils kasutab selle väärtust mitte uname() süsteemikutsest saadud väärtust.

See on peamiselt kasulik kui näiteks kompileerida 64bitiseid mooduleid 32bitises keskonnas või vastupidi.

Hetkel modutils ei toeta täieliku täisrist režiimi moodulite kompileerimisel vaid on limiteeritud 32 ja 64bitise host arhitektuuri valiku vahel.


insmod [ filename ] [ module options... ]


-e persist_name, --persist=persist_name
-f, --force 
-h, --help
-k, --autoclean
-L, --lock
-m, --map
-n, --noload
-o module_name, --name=module_name
-O blob_name, --blob=blob_name 
-p, --probe 
-P prefix, --prefix=prefix 
-q, --quiet 
-r, --root 
-s, --syslog 
-S, --kallsyms 
-v, --verbose 
-V, --version 
-X, --export; 
-x, --noexport 
-Y, --ksymoops; 
-y, --noksymoops 
-N, --numeric-only

Modprobe

[6]

modprobe on programm millega lisada/eemaldada mooduleid Linuxi Kerneli süsteemist.

  • modprobe arukalt lisab või eemaldab mooduli Linux kernelist. modprobe otsib mooduli kataloogist / lib / modules / "uname -r", välja arvatud /etc/modprobe.conf konfiguratsioonifaili ja /etc/modprobe.d kataloogist (vt lisa modprobe.conf [7] ).
  • modprobe saab kasutada ka käsurea kujul <moodul> <option>.


modprobe [ -v ] [ -V ] [ -C config-file ] [ -n ] [ -i ] [ -q ] [ -b ] [ -o modulename ] [ modulename ] [ module parameters... ]
modprobe [ -r ] [ -v ] [ -n ] [ -i ] [ modulename... ]
modprobe [ -l ] [ -t dirname ] [ wildcard ]
modprobe [ -c ]
modprobe [ --dump-modversions ]

Kokkuvõte

Lsmod, rmmod ja insmod on väga limiteeritud aplikatsioonid linuxi maailmas. Nüüdseks on olemas tunduvalt mugavamaid vahendeid sama töö tegemiseks, näiteks lõpus välja toodud modprobe.

Kasutatud kirjandus

1 http://ccrma.stanford.edu/planetccrma/man/man8/lsmod.8.html

2 http://linux.die.net/man/8/lsmod


3 http://www.linuxcommand.org/man_pages/rmmod8.html

4 http://ccrma.stanford.edu/planetccrma/man/man8/rmmod.8.html


5 http://linux.about.com/od/commands/l/blcmdl8_insmod.htm

6 http://linux.die.net/man/8/modprobe

7 http://linux.die.net/man/5/modprobe.conf