Lsmod: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ksaar (talk | contribs)
No edit summary
Mmegeril (talk | contribs)
No edit summary
 
(110 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Autor =
= Autor =
Kaupo Saar A32 2013/14
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 = 
 
[http://ccrma.stanford.edu/planetccrma/man/man8/lsmod.8.html] [http://linux.die.net/man/8/lsmod]
 
'''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 ==
 
[http://www.linuxcommand.org/man_pages/rmmod8.html] [http://ccrma.stanford.edu/planetccrma/man/man8/rmmod.8.html]
 
 
'''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.


Esitatud: 23.10.2013


Tähtaeg: 03.01.2014


= Sissejuhatus  =


'''wall''' ( ehk write to all ) on UNIXi süsteemis käsk. Wall kuvab faili sisu või sisend teksti kõigile sisseloginud kasutajatele, kellel on  tomingule '''( mesg [http://en.wikipedia.org/wiki/Mesg])''' luba antud. Tüüpiliselt rakendab seda ''superkasutaja'' (''root'') , kes teavitab kõiki teisi. Näiteks elektrikatkestus, serveri downtime või mõni muu seda sorti teade. Wall käsk saadab sõnumeid vaid kohalikus võrgus ning on kasutatav vaid UNIX süsteemides, näiteks Linux Ubuntu.


'''mesg[http://en.wikipedia.org/wiki/Mesg]''' on UNIXi käsk millega saab anda voli kasutajatel suhelda läbi terminali, kasutades '''talk''' või '''write''' käske.
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:9pt;" |'''mesg'''[y|n]
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |'''rmmod'''[-f]  [-w]  [-s]  [-v]  [modulename]
|}
|}
--- [http://www.computerhope.com/unix/wall.htm]


=Käsu süntaks =
      -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.
 


{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre
      -w --wait Tavaliselt rmmod keelab moodulite mahalaadimist, mis on kasutuses.
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |'''wall'''[-n] [-t TIMEOUT] [file]
                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.
---
---


{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre
== Insmod ==
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |-n, --nobanner Supress banner
 
|}
[http://linux.about.com/od/commands/l/blcmdl8_insmod.htm]
'''Lisa:''' Muudab väljund sõnumile "Remote broadcast message"
 
'''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.
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |-t, --timeout TIMEOUT
|}
'''Lisa:''' Väärtus peab olema positiivne arv. Vaikimisi on väärtus 300 sekundit.


---
Keskonnamuutuja MODPATH on siin kasutatav vaikeväärtuse ülekirjutamiseks, kui moodulite konfiguratsiooni fail,
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre
näiteks /etc/modules.conf, eksisteerib kirjutab see MODPATH vaikeväärtused üle.
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |-V, --version Output version and exit
|}
---
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |-h, --help Output help and exit.
|}
---
[http://www.computerhope.com/unix/wall.htm]


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


Wall'i kasutamine toimub UNIX süsteemides käsureal.
See keskonnamuutuja kirjutab üle kõik eelnevalt määratud vaikeväärtused.


{|style="background:lightgray;width:500px;margin:3px;border:1px solid lightgrey" align=centre
Kui keskonnamuutuja UNAME_MACHINE on kasutusel, siis modutils kasutab selle väärtust mitte uname() süsteemikutsest saadud väärtust.
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | echo Täna elektrit pole alates 1600 kuni 1800! | wall
|}


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


Sõnumi pikkus on piiratud - kuni 22 rida. Iga wall sõnumi korral kajastub see ka ''syslog'''i.
Hetkel modutils ei toeta täieliku täisrist režiimi moodulite kompileerimisel vaid on limiteeritud 32 ja 64bitise host arhitektuuri
valiku vahel.


Sõnumit saab edastada ka  '''cat''' käsku kasutades; Tuginedes '''wall''' käsule ja kirjutes '''wall''' mille järel vajutada Enter ning siis sisestada soovitud sõnum, peale mida vajuta Enter and ''Ctrl+D''


{|style="background:lightgray;width:500px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |wall
Täna elektrit pole alates 1600 kuni 1800!


^D
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |'''insmod''' [ filename ] [ module options... ]
|}
|}


Kasutades faili:
-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 ==
 
[http://linux.die.net/man/8/modprobe]
 
'''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 [http://linux.die.net/man/5/modprobe.conf] )''.


{|style="background:lightgray;width:500px;margin:3px;border:1px solid lightgrey" align=centre
*'''modprobe''' saab kasutada ka käsurea kujul <moodul> <option>.
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | cat .t2htis_fail
Täna elektrit pole alates 1600 kuni 1800!
|}
{|style="background:lightgray;width:500px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |  wall .t2htis_fail
Täna elektrit pole alates 1600 kuni 1800!
|}
'''Tulemus''': avab antud faili ja edastati tekstisisu "Täna elektrit pole alates 1600 kuni 1800!"




Kasutades '''here-string''':
{|style="background:lightgray;width:500px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |wall  <<< Täna elektrit pole alates 1600 kuni 1800!
|}


modprobe [ -v ] [ -V ] [ -C config-file ] [ -n ] [ -i ] [ -q ] [ -b ] [ -o modulename ] [ modulename ] [ module parameters... ]


modprobe [ -r ] [ -v ] [ -n ] [ -i ] [ modulename... ]


Kõik ülemised käsud peaksid kuvama järgnevad read kasutajate terminalides, kes on sisselogitud ja''' mesg''' luba antud.
modprobe [ -l ] [ -t dirname ] [ wildcard ]
{|style="background:lightgray;width:500px;margin:3px;border:1px solid lightgrey" align=centre
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | Broadcast Message from root@Offi
(/dev/pts/1) at 11:15 ...
Täna elektrit pole alates 1600 kuni 1800!
|}


modprobe [ -c ]


---[http://unixhelp.ed.ac.uk/CGI/man-cgi?wall][http://linuxexplore.com/2010/05/22/message-on-linux-terminal/]
modprobe [ --dump-modversions ]


=Kokkuvõte=
=Kokkuvõte=
'''wall''' käsk on lihtne ja lõbus viis teiste kasutajate terminelidega rääkimiseks. Selle kasutamiseks on mitmeid erinevaid viise, millest kindlasti on võimalik vähemalt üks meelde jätta. Tähtis on siin meeles pidada, et kindlasti peab olema lubatud suhtlus kasutajate arvuti poolt '''mesg y''' käsuga ja et kasutajad näeksid neile kirjutatud tekste peavad nad olema sisselogitud.


Inglisekeelne wikilink - http://en.wikipedia.org/wiki/Wall_(Unix)
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=
=Kasutatud kirjandus=


http://www.computerhope.com/unix/wall.htm
1 http://ccrma.stanford.edu/planetccrma/man/man8/lsmod.8.html


http://unixhelp.ed.ac.uk/CGI/man-cgi?wall
2 http://linux.die.net/man/8/lsmod


http://en.wikipedia.org/wiki/Wall_(Unix)


http://en.wikipedia.org/wiki/Mesg
3 http://www.linuxcommand.org/man_pages/rmmod8.html


http://unixhelp.ed.ac.uk/CGI/man-cgi?wall
4 http://ccrma.stanford.edu/planetccrma/man/man8/rmmod.8.html


http://linuxexplore.com/2010/05/22/message-on-linux-terminal/


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


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


[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
7 http://linux.die.net/man/5/modprobe.conf




Kaupo Saar AK41




'' Lisada veel rmmod insmod ja modprobe lühikeste lehteneda


lsmod leht võiks olla väga lühike.''
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]] [[Category:Linuxi administreerimine]]

Latest revision as of 09:24, 10 January 2016

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