Upravljanje modulima Linuks kernela

Upravljanje modulima Linuks kernela

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12251
  • Gde živiš: Južni pol

Upravljanje modulima Linuks kernela

Naslov: Linux Kernel Module Management 101
Autor: Joe 'Zonker' Brockmeier
Licenca: Creative Commons ShareAlike, Linuks Fondacija, 2011.

Linuks kernel omogućava da se drajveri i opcije kompajliraju kao moduli, nasuprot ugrađivanju u sam kernel. Ovo znači da korisnici mogu često menjati opcije kernela ili dodavati drajvere bez rekompajliranja, kao i da Linuks kernel ne mora da sadrži veliku količini nepotrebnog tereta. Želite da naučite da upravljate modulima kernela? To je lako uraditi, samo nastavite sa čitanjem.

U ovom tutorijalu, prošetaćemo kroz korake koji su neophodni da bismo videli koji moduli su već učitani u pokrenuti krenel, kao i dodavanje i uklanjanje modula iz krenela.

Šta je učitano?

Prve alatke s kojima bi trebalo da se upoznate su lsmod i modinfo. Bilo bi korisno da znate da nije potrebno da koristite sudo ili da se ulogujete kao root samo da bi videli koji moduli su instalirani na sistemu.

Kada upotrebite lsmod, dobićete izlaz poput ovog:

Module                  Size  Used by
parport_pc             18855  0
ppdev                   5030  0
lp                      7462  0
sco                     7209  2
parport                27954  3 parport_pc,ppdev,lp
bridge                 39630  0
stp                     1440  1 bridge
bnep                    9427  2


Ovde su prikazani učitani moduli, njihova velična i da li su korišćeni od strane drugih modula. Ako uzmemo parport modul kao primer, videćete da ga koristi nekoliko drugih modula. Ali koji su to moduli? Ovo ćemo možda saznati pomoću komande modinfo.

Pokrenite modinfo parport, i videćete nešto poput ovog:

filename:       /lib/modules/2.6.32-5-amd64/kernel/drivers/parport/parport.ko
license:        GPL
depends:       
vermagic:       2.6.32-5-amd64 SMP mod_unload modversions


Izlaz nam govori gde se modul nalazi, njegovu licencu i da ne postoje dodatni moduli koje je neophodno učitati. Nažalost, ne možemo znati nešto više od onoga sa čim smo počeli, zato što je autor modula izabrao da ne navede opis modula. Ali mnogi moduli imaju opis i daju neku vrstu indikacije za šta se koriste. S obzirom da se nismo posebno usrećili sa parport modulom, možda bismo mogli da probamo jedan od modula koji zavise od njega? Da probamo modinfo parport_pc. Ovo, bar na mom sistemu, predstavlja prilično koristan izlaz. Najkorisniji deo je samo polje sa opisom koje sadrži:

description: PC-style parallel port driver

Na osnovu ovoga možemo pretpostaviti da parport driver ima neke veze sa podrškom za paralelne portove i da parport_pc sadrži podršku za paralelne portove na x86/x86_64 sistemima. Nažalost, ovo nije nešto što bi mogli saznati pomoću modinfo. Ali kada ne postoji nijedna druga opcija, proverite poddirektorijum Documentation u direktorijumu koji sadrži sors Linuks kernela.

Uklanjanje modula

Moduli mogu biti uklonjenji korišćenjem alatke rmmod. Upotreba je jednostavna, samo rmmod imemodula. Ipak, ako pokušamo da uklonimo parport modul, dobijamo grešku:

ERROR: Module parport is in use by parport_pc,ppdev,lp

Instalacija Modula

Šta uraditi ako postoji modul koji želite da učitate u krenel? To možete postići korišćenjem komandi insmod ili modprobe.

Preporučen metod je korišćenje modprobe, zato što će ova komanda automatski učitati i dodatne module od kojih željeni modul zavisi. Na primer, Ako nisam imao učitan parport modul, a pokušavam da učitam lp ili parport_pc module, modprobe će automatski učitati i parport.

Da biste učitali modul korišćenjem modprobe, pokrenite modprobe imemodula.

Stavljanje modula na crnu listu

Ako se ukaže potreba možete postaviti nepoželjne module na crnu listu. Zašto bi vam bila potrebna ova mogućnost? Ponekad je neki modul u konfliktu sa drugim, ili je zbog nekog drugog razloga nepoželjan.

Da biste postavili modul u crnu listu, najlakše način (obično postoji više načina da se nešto uradi na Linuks sistemima) da to uradite je da ga dodate u /etc/modprobe.d/blacklist.conf. Na primer, na Debian sistemima evbug modul je automatski stavljen u crnu listu s obzirom da većina korisnika neće imati potreba za njim. Da biste dodali modul u crnu listu, samo dodajte liniju poput ove u gore pomenutu conf datoteku:

blacklist imemodula

Ovo je prilično jednostavno, zar ne?

Kratak pregled

Najčešće nećete imati puno potrebe da se bakćete sa modulima kernelima, osim ako vaša distribucija ne prepozna ili ne podržava hardver vašeg računara posle instalacije; ili u slučaju rada sa third-party aplikacijama kao što je VMware koji dolazi sa svojim modulima.

Ali dobra je stvar da znate kako da radite sa modulima kernela kad i ako želite da ih dodate ili uklonite. Čak i ako nemate potrebu za njima u ovom trenutku, potrošite neko vreme za testiranje ovih alata - može vam se desiti da u budućnosti naiđete na situaciju u kojoj će vam biti vrlo korisni. Govoreći o budućnosti, postoji još dosta toga da se obradi. U sledećem delu, pričaćemo o kompajliranju modula, alijasima modula i mnogo čemu drugom.

Originalni link: http://www.linux.com/learn/tutorials/396770:linux-kernel-module-management-101



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 808 korisnika na forumu :: 53 registrovanih, 5 sakrivenih i 750 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Sale, arsa, bmw335d, Boris90, Buzdovan, cavatina, churug, cole77, cvrle312, dane007, dedalus2, Doca, dragisa dragisa, Faki-Valjevo, hooraay, ivance95, Joja2, kvcali, kybonacci, lacko, M74AB3, mandic.101, mandicdamir245, MB120mm, Mercury, mgaji21, mikiroy, Milos ZA, Miskohd, Mlav, mnn2, moldway, MORAVA1, nradukic, nuke92, RJ, S-lash, simicolga, snop, Srna, theNedjeljko, Toni, vathra, versus2, VES 11119, voja64, vukdra, Warhawk, Wisdomseeker, yufighter, zdrebac, zgoljo, 79693