Depmod - comandă Linux - comandă Unix

Nume

depmod - gestionează descrierile de dependență pentru modulele de kernel încărcabile

Rezumat

depmod [-aA] [-ehnqrsuvV] [ -Cconfigurare ] [-F kernelsyms ] [-b basedirectory ] [ forced_version ]
depmod [-enqrsuv] [-F kernelsyms ] module1.o modul2.o ...

Descriere

Instrumentele depmod și modprobe sunt destinate să facă un kernel modular Linux ușor de gestionat pentru toți utilizatorii, administratorii și întreținătorii de distribuție.

Depmod creează un fișier de dependență asemănător "Makefile", pe baza simbolurilor pe care le găsește în setul de module menționate pe linia de comandă sau din directoarele specificate în fișierul de configurare. Acest fișier de dependență este ulterior folosit de modprobe pentru a încărca automat modulul corect sau stiva de module.

Utilizarea normală a depmodului trebuie să includă linia


/ sbin / depmod -a

undeva în fișierele rc din /etc/rc.d , astfel încât dependențele corecte ale modulelor să fie disponibile imediat după pornirea sistemului. Rețineți că opțiunea -a este acum opțională. Pentru scopuri de boot-up, opțiunea -q ar putea fi mai potrivită, deoarece face ca depmodul să fie silențios în legătură cu simbolurile nerezolvate.

De asemenea, este posibil să creați fișierul de dependență imediat după compilarea unui nou kernel. Dacă faci " depmod -a 2.2.99 " când ai compilat kernelul 2.2.99 și modulele sale pentru prima dată, în timp ce rulezi încă de ex. 2.2.98, fișierul va fi creat în locul corect. În acest caz însă, dependențele de kernel nu vor fi garantate ca fiind corecte. Consultați opțiunile -F , -C și -b de mai sus pentru mai multe informații despre manipularea acestora.

În timp ce construiesc relația dintre module și simbolurile exportate de alte module, depmod nu ia în considerare starea GPL a modulelor și nici a simbolurilor exportate. Adică, depmod nu va semnala o eroare dacă un modul fără licență compatibilă GPL se referă la un simbol exclusiv GPL (EXPORT_SYMBOL_GPL în kernel). Cu toate acestea, insmod va refuza să rezolve simbolurile GPL numai pentru modulele care nu sunt GPL, astfel încât încărcarea reală va eșua.

Opțiuni

-a , - toate

Căutați module în toate directoarele specificate în fișierul de configurare (opțional) /etc/modules.conf .

-A , --cumpar

Comparați timestamp-urile fișierelor și, dacă este necesar, acționați ca depmod -a . Această opțiune actualizează numai fișierul de dependență dacă ceva sa schimbat.

-e , - errsyms

Afișați toate simbolurile nerezolvate pentru fiecare modul.

-h , --help

Afișați un rezumat al opțiunilor și ieșiți imediat.

-n , - arată

Scrieți fișierul de dependență pe stdout în loc de arborele / lib / modules .

-q , - calm

Spune-i lui depmod să tacă și să nu se plângă de simbolurile lipsă.

-r , - rădăcină

Unii utilizatori compilează modulele sub un utilizator non-root, apoi instalează modulele ca root. Acest proces poate lăsa modulele deținute de userid non-root, chiar dacă directorul de module este deținut de root. Dacă utilizatorul non-root este compromis, un intrus poate suprascrie modulele existente deținute de acel userid și poate folosi această expunere pentru a accesa bootstrap până la accesul root.

În mod implicit, modutils va respinge încercările de a utiliza un modul care nu este deținut de root. Specificarea -r va suprima eroarea și va permite rădăcină să încarce module care nu sunt deținute de root.

Utilizarea lui -r este o expunere importantă la securitate și nu este recomandată.

-s , -syslog

Scrieți toate mesajele de eroare prin daemonul syslog în loc de stderr.

-u , - eroare nerezolvată

depmod 2.4 nu stabilește un cod de returnare atunci când există simboluri nerezolvate. Următoarea versiune majoră a modutils (2.5) va stabili un cod de returnare pentru simbolurile nerezolvate. Unele distribuții doresc un cod de returnare diferit de zero în modutils 2.4, dar această schimbare ar putea cauza probleme utilizatorilor care se așteaptă la comportamentul vechi. Dacă doriți un cod de returnare diferit de zero în depmod 2.4, specificați -u . depmod 2.5 va ignora tăcut flagul -u și va da întotdeauna un cod de returnare diferit de zero pentru simbolurile nerezolvate.

-v , - verbose

Afișați numele fiecărui modul în timp ce acesta este procesat.

-V , --versiune

Afișați versiunea depmod .

Următoarele opțiuni sunt utile pentru persoanele care gestionează distribuțiile:

-b basedirectory , -basedir

Dacă arborele de directoare / lib / module care conține subdiferențele modulelor este mutat în altă parte pentru a manipula modulele pentru un mediu diferit, opțiunea -b indică depmod unde să găsească imaginea mutată a arborelui / lib / modules . Referințele fișierelor din fișierul de ieșire depmod care este construit, module.dep , nu vor conține calea bazei . Aceasta înseamnă că atunci când arborele de fișiere este mutat înapoi din baza de date / lib / modules în / lib / modules în distribuția finală, toate referințele vor fi corecte.

-C configfile , --config configfile

Utilizați fișierul configfile în loc de /etc/modules.conf . Variabila de mediu MODULECONF poate fi, de asemenea, utilizată pentru a selecta un alt fișier de configurare din /etc/modules.conf (sau /etc/conf.modules (deprecated)).

Când variabila de mediu

UNAME_MACHINE este setat, modutils va folosi valoarea sa în locul câmpului mașinii din syscall uname (). Acest lucru este în principal de utilizare atunci când se compilează module de 64 biți în 32 de biți de spațiu de utilizator sau invers, setați UNAME_MACHINE la tipul de module sunt construite. Modulele actuale nu acceptă modul de încrucișare completă pentru module, ci se limitează la a alege între 32 și 64 de biți versiuni ale arhitecturii gazdă.

-F kernelsyms , - kernelsyms fișiere

Când construim fișiere de dependență pentru un kernel diferit de kernelul curent, este important ca depmod să folosească setul corect de simboluri kernel pentru a rezolva referințele kernel-ului în fiecare modul. Aceste simboluri pot fi fie o copie a System.map din celălalt nucleu, fie o copie a ieșirii din / proc / ksyms . Dacă kernelul utilizează simboluri variate, este mai bine să utilizați o copie a ieșirii / proc / ksyms , deoarece acel fișier conține versiunile de simbol ale simbolurilor kernel-ului. Cu toate acestea, puteți utiliza un System.map chiar și cu simboluri versiuni.

configurație

Comportamentul depmod și modprobe poate fi ajustat de fișierul de configurare (opțional) /etc/modules.conf .
Consultați modprobe (8) și modules.conf (5) pentru o descriere completă.

Strategie

De fiecare dată când compilați un nou kernel, comanda " make modules_install " va crea un nou director, dar nu va schimba setările implicite.

Când obțineți un modul care nu are legătură cu distribuția kernel-ului, trebuie să-l plasați într-unul din directoarele independente de versiune în / lib / modules .

Aceasta este strategia implicită, care poate fi înlocuită în /etc/modules.conf .

Vezi si

lsmod (8), ksyms (8)

Important: Utilizați comanda om ( % man ) pentru a vedea cum se utilizează o comandă pe computerul dvs. particular.