Alt om Linux/Unix Command depmod
Depmod håndterer avhengighetsbeskrivelser for lastbare kjerne moduler.
Synopsis
depmod [-aA] [-ehnqrsuvV] [-C konfigfil] [-F kjernesymboler] [-b basekatalog] [tvungen_versjon] depmod [-enqrsuv] [-F kjernesymboler] modul1.o modul2.o...
Beskrivelse
De depmod og modprobe verktøy er ment å lage en Linux modulær kjerne som kan håndteres for alle brukere, administratorer og distribusjonsvedlikeholdere.
Depmod oppretter en "Makefile"-lignende avhengighetsfil, basert på symbolene den finner i settet med moduler nevnt på kommandolinjen eller fra katalogene spesifisert i konfigurasjonsfilen. Denne avhengighetsfilen brukes senere av modprobe for automatisk å laste inn riktig modul eller stabel med moduler.

Normal bruk av depmod er å inkludere linjen.
/sbin/depmod -a
et sted i rc-filene i /etc/rc.d, slik at de riktige modulavhengighetene vil være tilgjengelig umiddelbart etter oppstart av systemet. Hvis du jobber med en mer funksjonell distribusjon, som Ubuntu, Debian eller Fedora, vil dette bli gjort for deg. Merk at alternativet
Det er også mulig å lage avhengighetsfilen umiddelbart etter kompilering av en ny kjerne. Hvis du gjør "depmod -a 2.2.99" når du har kompilert kjerne 2.2.99 og dens moduler første gang, mens du fortsatt kjører for eksempel 2.2.98, vil filen bli opprettet på riktig sted. I dette tilfellet vil imidlertid ikke avhengighetene til kjernen være garantert å være korrekte. Se alternativene -F, -C og -b ovenfor for mer informasjon om håndtering av dette.
Mens du bygger forholdet mellom moduler og symbolene som eksporteres av andre moduler,depmod vurderer ikke GPL-statusen til modulene eller de eksporterte symbolene. Det vil si at depmod ikke vil flagge en feil hvis en modul uten en GPL-kompatibel lisens refererer til et GPL only-symbol (EXPORT_SYMBOL_GPL i kjernen). Derimot, insmod vil nekte å løse GPL-symboler for ikke-GPL-moduler, slik at den faktiske belastningen vil mislykkes.
Alternativer
-en, --alle
Søk etter moduler i alle kataloger som er spesifisert i den (valgfrie) konfigurasjonsfilen/etc/modules.conf.
-EN, --rask
Sammenlign filtidsstempler og oppfør om nødvendig depmod -a. Dette alternativet oppdaterer bare avhengighetsfilen hvis noe har endret seg.
-e, --feilsymboler
Vis alle de uløste symbolene for hver modul.
-h, --hjelp
Vis et sammendrag av alternativer og avslutt umiddelbart.
-n, --forestilling
Skriv avhengighetsfilen på stdout i stedet for i /lib/modules tre.
-q, --stille
Be depmod om å holde seg stille og ikke klage på manglende symboler.
-r, --rot
Noen brukere kompilerer moduler under en ikke-root bruker-ID, og installer deretter modulene som root. Denne prosessen kan la modulene eies av ikke-root-bruker-ID, selv om moduler-katalogen eies av root. Hvis ikke-root-bruker-ID-en er kompromittert, kan en inntrenger overskrive eksisterende moduler som eies av den bruker-ID-en og bruke denne eksponeringen til å starte opp til root-tilgang.
Som standard vil moduler avvise forsøk på å bruke en modul som ikke eies av root. Spesifiserer-r vil undertrykke feilen og tillate root å laste inn moduler som ikke eies av root.
Bruk av -r er en stor sikkerhetseksponering og anbefales ikke.
-s, --syslog
Skriv alle feilmeldinger via syslog-daemonen i stedet for stderr.
-u, --uløst-feil
depmod 2.4 setter ingen returkode når det er noen uløste symboler. Noen distribusjoner vil ha en returkode som ikke er null i moduler 2.4, men den endringen kan forårsake problemer for brukere som forventer den gamle oppførselen. Hvis du vil ha en returkode som ikke er null i depmod 2.4, spesifiser -u. depmod 2.5 vil stille ignorere -u flagg og vil alltid gi en returkode som ikke er null for uløste symboler.
-v, --ordrik
Vis navnet på hver modul mens den behandles.
-V, --versjon
Vis versjonen av depmod.
Administrere distribusjoner
Følgende alternativer er nyttige for personer som administrerer distribusjoner:
-b basekatalog, -- basert på basekatalog
Hvis katalogtreet /lib/modules som inneholder undertrærne til moduler flyttes et annet sted for å håndtere moduler for et annet miljø, -b alternativet forteller depmod hvor du finner det flyttede bildet av /lib/modules tre. Filreferansene i depmod-utdatafilen som er bygget, modules.dep, vil ikke inneholde basekatalog sti. Dette betyr at når filtreet flyttes tilbake fra basekatalog/lib/moduler inn i /lib/modules i sluttfordelingen vil alle referanser være korrekte.
-C konfigfil, --konfig konfigfil
Bruk filen configfile i stedet for /etc/modules.conf. Miljøvariabelen MODULECONF kan også brukes til å velge en annen konfigurasjonsfil fra standard /etc/modules.conf (eller/etc/conf.modules (avviklet)).
Når miljøvariabel UNAME_MACHINE er satt, vil modutils bruke verdien i stedet for maskinfeltet fra uname() syscall. Dette er hovedsakelig nyttig når du kompilerer 64-bits moduler i 32-biters brukerområde eller omvendt, sett UNAME_MACHINE til typen av moduler som bygges. Gjeldende moduler støtter ikke full kryssbyggingsmodus for moduler, den er begrenset til å velge mellom 32 og 64 bit versjoner av vertsarkitekturen.
-F kjernesymboler,--filesyms kjernesymboler
Når du bygger avhengighetsfiler for en annen kjerne enn den kjørende kjernen, er det viktig at depmod bruker det riktige settet med kjernesymboler for å løse kjernereferansene i hver modul. Disse symbolene kan enten være en kopi av System.map fra den andre kjernen eller en kopi av utdataene fra /proc/ksyms. Hvis kjernen din bruker versjonerte symboler, er det best å bruke en kopi av /proc/ksyms output, siden den filen inneholder symbolversjonene av kjernesymbolene. Du kan imidlertid bruke en System.map selv med versjonerte symboler.
Konfigurasjon
Oppførselen til depmod og modprobe kan justeres av den (valgfrie) konfigurasjonsfilen/etc/modules.conf. Se modprobe(8) og modules.conf(5) for en fullstendig beskrivelse.
Strategi
Hver gang du kompilerer en ny kjerne, vil kommandoen "lage modules_install" vil opprette en ny katalog, men vil ikke endre standarden.
Når du får en modul som ikke er relatert til kjernedistribusjonen, bør du plassere den i en av de versjonsuavhengige katalogene under /lib/modules.
Dette er standardstrategien, som kan overstyres i /etc/modules.conf.
Bruke Mannkommando (% Mann) for å se hvordan en kommando brukes på din spesielle datamaskin.