Skip to main content

Alles over de opdracht Linux / Unix: modprobe

sudo command not found fix in Linux (Debian 9 GNU/Linux ) (Juni- 2026)

sudo command not found fix in Linux (Debian 9 GNU/Linux ) (Juni- 2026)
Anonim

Naam

modprobe - behandeling op hoog niveau van laadbare modules

Korte inhoud

modprobe -adnqv -C config module symbool = waarde …modprobe -adnqv -C config -t type patroonmodprobe -l -C config -t type patroonmodprobe -c -C config modprobe -r -dnv -C config module …modprobe VH

opties

-een, --allemaal

Ladenallemaal matching modules in plaats van stoppen na de eerste succesvolle laden.

-C, --showconfig

Toon de momenteel gebruikte configuratie.

-C, --config config

Gebruik het bestand config in plaats van (de optionele) /etc/modules.conf om de configuratie op te geven. De omgevingsvariabeleMODULECONF kan ook worden gebruikt om een ​​ander configuratiebestand te selecteren (en op te heffen) uit de standaardinstelling /etc/modules.conf (of /etc/conf.modules (verouderd)).

Wanneer omgevingsvariabeleUNAME_MACHINE is ingesteld, modutils gebruikt de waarde ervan in plaats van het machineveld uit de syscriptnaam (). Dit is vooral handig wanneer u 64-bits modules in 32-bits gebruikersruimte compileert of andersom insteltUNAME_MACHINE naar het type modules. De huidige modutils ondersteunen niet de volledige cross-buildmodus voor modules, het is beperkt tot het kiezen tussen 32- en 64-bitversies van de hostarchitectuur.

-d, --debug

Informatie weergeven over de interne weergave van de stapel modules.

-h, --helpen

Geef een overzicht van opties weer en sluit onmiddellijk af.

-k, --automatische schoonmaak

Stel 'autoclean' in op geladen modules. Gebruikt door de kernel wanneer deze wordt aangeroepenmodprobe om te voldoen aan een ontbrekende functie (geleverd als een module). De-q optie wordt geïmpliceerd door-k. Deze opties worden automatisch verzonden naarinsmod.

l, --lijst

Lijst matching modules.

-n, --laten zien

Voer de actie niet uit, laat gewoon zien wat er zou gebeuren.

-q, --stil

Klaag niet overinsmod het niet installeren van een module. Ga door zoals normaal, maar stil, met andere mogelijkheden om de modprobe te testen. Deze optie wordt automatisch verzonden naarinsmod.

-r, --verwijderen

Verwijder module (stacks) of autoclean, afhankelijk van of er modules zijn vermeld op de opdrachtregel.

-s, --syslog

Rapporteer via syslog in plaats van stderr. Deze optie wordt automatisch verzonden naarinsmod.

-t moduletype ; --type moduletype

Overweeg alleen modules van dit type. modprobe kijkt alleen naar modules waarvan het directorypad exact " / Moduletype / '. moduletype kan meer dan één directorynaam bevatten, b.v. "-t drivers / net "zou modules in vermelden xxx / drivers / net / en zijn submappen.

-v, --verbose

Druk alle opdrachten af ​​terwijl ze worden uitgevoerd.

-V, --versie

Toon de versie vanmodprobe.

Notitie:

Modulenamen mogen geen paden bevatten (geen '/'), en mogen ook niet het achterliggende '.o' bevatten. Slip is bijvoorbeeld een geldige modulenaam voormodprobe, /lib/modules/2.2.19/net/slip en slip.o zijn ongeldig. Dit is van toepassing op de opdrachtregel en op invoer in de config.

Beschrijving van het commando

Demodprobe endepmod utilities zijn bedoeld om een ​​Linux-modulaire kernel beheersbaarder te maken voor alle gebruikers, beheerders en verdelers.

modprobe gebruikt een "Makefile" -achtig afhankelijkheidsbestand, gecreëerd doordepmod, om de relevante module (s) automatisch te laden uit de set modules beschikbaar in vooraf gedefinieerde directory-trees.

modprobe wordt gebruikt om een ​​enkele module, een stapel afhankelijke modules of alle modules te laden die zijn gemarkeerd met een opgegeven tag.

modprobe laadt automatisch alle basismodules die nodig zijn in een modulestapel, zoals beschreven door het afhankelijkheidsbestand modules.dep . Als het laden van een van deze modules mislukt, wordt de gehele huidige stapel modules die in de huidige sessie zijn geladen automatisch verwijderd.

modprobe heeft twee manieren om modules te laden. Eén manier (de probemodus) zal proberen een module uit een lijst te laden (gedefinieerd door patroon ). modprobe stopt met laden zodra een module met succes is geladen. Dit kan worden gebruikt om één Ethernet-stuurprogramma automatisch uit een lijst te laden. De andere wegmodprobe kan gebruikt worden om te ladenallemaal modules uit een lijst. ZienVoorbeelden, hieronder.

Met de optie-r, modprobe zal automatisch een stapel modules ontladen, vergelijkbaar met de manier "rmmod -r"doet. Merk op dat het gebruik van slechts"modprobe -r"zal ongebruikte automatisch geladen modules opruimen en ook de pre- en post-remove-commando's uitvoeren in het configuratiebestand /etc/modules.conf .

Het combineren van de optiesl en-t geeft een lijst van alle beschikbare modules van een bepaald type.

Keuze-C zal de momenteel gebruikte configuratie afdrukken (standaard + configuratiebestand).

Configuratie

Het gedrag vanmodprobe (endepmod) kan worden gewijzigd door het (optionele) configuratiebestand /etc/modules.conf . Voor een meer gedetailleerde beschrijving van wat dit bestand kan bevatten, evenals de standaardconfiguratie die wordt gebruikt doordepmod enmodprobe, zienmodules.conf(5).

Merk op dat de opdrachten voor en na het verwijderen zullenniet wordt uitgevoerd als een module door kerneld "autocleaned" wordt! Zoek in plaats daarvan naar de komende ondersteuning voor permanente opslag van modules. Als je de pre- en post-install-functies wilt gebruiken, moet je autoclean voor kerneld uitschakelen en in plaats daarvan iets als de volgende regel in jecrontab (dit wordt ook gebruikt voor kmod-systemen) om elke 2 minuten autoclean te doen: * / 2 * * * * test -f / proc / modules && / sbin / modprobe -r

Strategie

Het idee is datmodprobe zal eerst in de map kijken die modules bevat die gecompileerd zijn voor de huidige versie van de kernel. Als de module daar niet wordt gevonden,modprobe zal kijken in de map die de kernelversie gemeenschappelijk heeft (bijvoorbeeld 2.0, 2.2). Als de module nog steeds wordt gevonden,modprobe zal in de map kijken die modules bevat voor een standaardrelease, enzovoort.

Wanneer u een nieuwe linux installeert, moeten de modules worden verplaatst naar een directory die is gerelateerd aan de release (en versie) van de kernel die u installeert. Dan zou u een symlink van deze folder aan de "standaard" folder moeten doen.

Elke keer dat je een nieuwe kernel compileert, is het commando "maak modules_install"zal een nieuwe map maken, maar zal de" standaard "link niet veranderen.

Wanneer u een module krijgt die niet gerelateerd is aan de kerneldistributie, moet u deze in een van de versie-onafhankelijke directory's onder plaatsen / Lib / modules .

Dit is de standaardstrategie, die kan worden opgeheven in /etc/modules.conf .

Voorbeelden

modprobe -t net

Laad een van de modules die zijn opgeslagen in de map met het label "net". Elke module wordt uitgeprobeerd totdat één is geslaagd.

modprobe -a -t opstarten

Alle modules die zijn opgeslagen in mappen die zijn gelabeld als "boot" worden geladen.

modprobe slip

Hiermee wordt geprobeerd de module slhc.o te laden als deze niet eerder is geladen, omdat de slipmodule de functionaliteit in de slhc-module nodig heeft. Deze afhankelijkheid wordt in het bestand beschreven modules.dep dat is automatisch gemaakt doordepmod.

modprobe -r slip

Hiermee wordt de slipmodule ontladen. Het zal ook de slhc-module automatisch ontladen, tenzij deze ook door een andere module wordt gebruikt (bijvoorbeeld ppp).

Zie ook:

depmod (8),lsmod(8), kerneld(8), ksyms(8), rmmod(8).

Veilige modus

Als de effectieve uid dan niet gelijk is aan de echte uidmodprobe behandelt zijn inbreng met extreem wantrouwen. De laatste parameter wordt altijd behandeld als een modulenaam, zelfs als deze begint met '-'. Er kan slechts één modulenaam zijn en de opties van het formulier "variable = value" zijn verboden. De modulenaam wordt altijd behandeld als een tekenreeks, er wordt geen meta-uitbreiding uitgevoerd in de veilige modus. Meta-uitbreiding wordt echter nog steeds toegepast op gegevens die worden gelezen uit het configuratiebestand.

euid is mogelijk niet gelijk aan uid als modprobe wordt aangeroepen vanuit de kernel, dit geldt voor kernels> = 2.4.0-test11. In een ideale wereld,modprobe kon de kernel vertrouwen om alleen geldige parameters door te geven aan modprobe. Er is echter ten minste één lokale root-exploit opgetreden omdat kernelcode op hoog niveau ongeverifieerde parameters direct van de gebruiker naar modprobe doorstuurde. Modprobe vertrouwt dus niet langer de kernel-invoer.

modprobe stelt automatisch de veilige modus in wanneer de omgeving alleen uit deze strings bestaat

HOME = / TERM = linux PATH = / sbin: / usr / sbin: / bin: / usr / bin

Dit detecteert modprobe-uitvoering vanuit de kernel op kernels 2.2 hoewel 2.4.0-test11, zelfs als uid == euid, wat het doet op de eerdere kernels.

Logcommando's

Als map / Var / log / ksymoops bestaat enmodprobe wordt uitgevoerd met een optie die een module kan laden of verwijderen en vervolgens registreert modprobe zijn opdracht- en retourstatus / var / log / ksymoops / `date +% Y% m% d.log` . Er is geen switch om deze automatische logboekregistratie uit te schakelen. Als u niet wilt dat dit gebeurt, maak dan niet aan / Var / log / ksymoops . Als die map bestaat, moet deze eigendom zijn van root en modus 644 of 600 zijn en moet u script uitvoereninsmod_ksymoops_clean elke dag of zo.

Vereiste hulpprogramma's

depmod(8), insmod(8).

Belangrijk: Gebruik de man commando ( % man ) om te zien hoe een opdracht wordt gebruikt op uw specifieke computer.