Viss par Linux/Unix komandu: modprobe
The Linux kodols ir izaugusi par lielu programmatūras gabalu. Dažos veidos tā ir laba lieta. Citos gadījumos tas padara to nedaudz neelastīgu. Risinājums ir sadalīt kodola daļas moduļos. Šos moduļus var ielādēt vai neielādēt, ņemot vērā datora konfigurāciju un jūsu vajadzības. Komanda modprobe ielādē jaunus kodola moduļus Linux sistēmā, ļaujot iespējot jaunas funkcijas un atbalstu bez atsāknēšanas.

Izmantojot Modprobe
Modprobe parasti ir vienkārši lietojams. Kad zināt kodola moduli, kuru vēlaties ielādēt, nododiet to komandai modprobe.
sudo modprobe rtl8723de
Tas ir viss. Modulis tiek ielādēts, līdz jūs restartējat sistēmu.
Ja vēlaties noņemt moduli bez pārstartēšanas, atkārtoti palaidiet komandu ar -r karogs.
sudo modprobe -r rtl8723de
Lielākoties tas ir veids, kā strādāt ar modprobe. Lai uzzinātu vairāk, skatiet tālāk esošo tehnisko dokumentāciju.
Modprobe tehniskā dokumentācija
Komanda modprobe veic ielādējamo moduļu augsta līmeņa apstrādi.
Anotācija
modprobe
Iespējas
-a, --visi
Ielādējiet visus atbilstošos moduļus, nevis apstājieties pēc pirmās veiksmīgās ielādes.
-c, --showconfig
Rādīt pašlaik izmantoto konfigurāciju.
-C, -- konfigurācijakonfigurācija
Izmantojiet failu konfigurācija vietā (neobligāts) /etc/modules.conf lai norādītu konfigurāciju. Vides mainīgais MODULEKONF var izmantot arī, lai atlasītu (un ignorētu) citu konfigurācijas failu no noklusējuma /etc/modules.conf (vai /etc/conf.modules kas ir novecojis).
Kad vide ir mainīga UNAME_MACHINE ir iestatīts, modutils izmanto tās vērtību mašīnas lauka vietā no uname() syscall. To galvenokārt izmanto, kompilējot 64 bitu moduļus 32 bitu lietotāja telpā vai otrādi, iestatiet UNAME_MACHINE atkarībā no moduļu veida. Pašreizējais modutils neatbalsta pilnu pārrobežu veidošanas režīmu moduļiem, tas aprobežojas ar izvēli starp 32 bitu un 64 bitu resursdatora arhitektūras versijas.
-d, -- atkļūdot
Rādīt informāciju par moduļu kaudzes iekšējo attēlojumu.
-h, -- palīdzēt
Parādiet opciju kopsavilkumu un nekavējoties izejiet.
-k, -- automātiskā tīrīšana
Ielādētajiem moduļiem iestatiet automātisko attīrīšanu. Kodols izmanto, kad tas izsauc modprobe, lai apmierinātu trūkstošo līdzekli (piegādāts kā modulis). The -q opciju paredz -k. Šīs opcijas tiek automātiski nosūtītas uz insmod.
-n, -- šovs
Neveiciet darbību, tikai parādiet, kas tiktu darīts.
-q, -- kluss
Nesūdzieties par to, ka insmod nespēj instalēt moduli. Turpiniet kā parasti, bet klusi, izmantojot citas modprobe pārbaudes iespējas. Šī opcija tiek automātiski nosūtīta uz insmod.
-r, -- noņemt
Noņemiet moduli (steku) vai veiciet automātisko attīrīšanu atkarībā no tā, vai komandrindā ir minēti kādi moduļi.
-s, -- syslog
Ziņojiet, izmantojot syslog, nevis stderr. Šī opcija tiek automātiski nosūtīta uz insmod.
-tmoduļa tips; --tipsmoduļa tips
Apsveriet tikai šāda veida moduļus. modprobe apskata tikai tos moduļus, kuru direktorija ceļš ietver tieši /moduletype/. moduļa tips var ietvert vairāk nekā vienu direktorija nosaukumu, piemēram, -tdraiveri/tīkls uzskaita moduļus xxx/drivers/net/ un tā apakšdirektoriji.
-v, -- daudzrunīgs
Izdrukājiet visas komandas, tiklīdz tās tiek izpildītas.
-V, --versija
Parādiet modprobe versiju.
Moduļu nosaukumos nedrīkst būt ceļu (nr /), arī nosaukumā nedrīkst būt beigas .o. Piemēram, paslīdēt ir derīgs moduļa nosaukums modprobe, /lib/modules/2.2.19/net/slip un slip.o ir nederīgi. Tas attiecas uz komandrindu un konfigurācijas ierakstiem.
Komandas apraksts
Modprobe un depmod utilītas ir paredzētas, lai padarītu Linux modulāro kodolu vieglāk pārvaldāmu lietotājiem, administratoriem un izplatīšanas uzturētājiem.
Modprobe izmanto Makefile līdzīgu atkarības failu, ko izveidojis depmod, lai automātiski ielādētu attiecīgos moduļus no moduļu kopas, kas ir pieejamas iepriekš definētos direktoriju kokos.
Modprobe izmanto, lai ielādētu vienu moduli, atkarīgo moduļu kaudzi vai visus moduļus, kas ir atzīmēti ar noteiktu tagu.
Modprobe automātiski ielādē visus moduļu kaudzē nepieciešamos bāzes moduļus, kā aprakstīts atkarības failā moduļi.dep. Ja viena no šiem moduļiem neizdodas ielādēt, visa pašreizējā moduļu kaudze, kas ielādēta pašreizējā sesijā, tiek automātiski izlādēta.
Modprobe ir divi moduļu ielādes veidi. Viens veids (zondes režīms) mēģinās ielādēt moduli no saraksta (ko nosaka modelis). Modprobe pārtrauc ielādi, tiklīdz viens modulis tiek veiksmīgi ielādēts. To var izmantot, lai automātiski ielādētu vienu Ethernet draiveri no saraksta. Otrs veids, kā modprobe var izmantot, ir ielādēt visus moduļus no saraksta.
Ar opciju -r, modprobe automātiski izkrauj moduļu kaudzi, līdzīgi kā rmmod -r dara. Izmantojot tikai modprobe -r iztīra neizmantotos automātiski ielādētos moduļus un arī izpilda pirms un pēc noņemšanas komandas konfigurācijas failā /etc/modules.conf.
Opciju apvienošana -l un -t uzskaita visus pieejamos noteikta veida moduļus.
Opcija -c izdrukā pašlaik izmantoto konfigurāciju (noklusējums + konfigurācijas fails).
Konfigurācija
Modprobe (un depmod) darbību var mainīt (pēc izvēles) konfigurācijas fails /etc/modules.conf. Detalizētu aprakstu par to, ko šis fails var saturēt, kā arī noklusējuma konfigurāciju, ko izmanto depmod un modprobe, skatiet modules.conf(5).
Komandas pirms un pēc noņemšanas netiek izpildītas, ja moduli automātiski attīra kodols. Tā vietā meklējiet gaidāmo atbalstu pastāvīgai moduļu glabāšanai. Ja vēlaties izmantot pirms- un pēcinstalēšanas funkcijas, izslēdziet Autoclean for Kerneld un tā vietā ievietojiet kaut kas līdzīgs šai crontab rindai (to izmanto arī kmod sistēmām), lai veiktu automātisko tīrīšanu ik pēc 2 minūtes:
*/2 * * * * test -f /proc/modules && /sbin/modprobe -r
stratēģija
Ideja ir tāda, ka modprobe vispirms izskatīsies direktorijā, kurā ir moduļi, kas apkopoti pašreizējai kodola versijai. Ja modulis tur nav atrasts, modprobe meklē direktorijā, kas ir kopīga kodola versijai (piemēram, 2.0, 2.2). Ja modulis joprojām netiek atrasts, modprobe direktorijā, kurā ir moduļi, meklē noklusējuma laidienu un tā tālāk.
Instalējot jaunu Linux, moduļi ir jāpārvieto uz direktoriju, kas saistīts ar instalējamā kodola laidienu (un versiju). Pēc tam izveidojiet saiti no šī direktorija uz noklusējuma direktoriju.
Katru reizi, kad kompilējat jaunu kodolu, komanda veikt modules_install izveido jaunu direktoriju, bet nemainīs noklusējuma saiti.
Kad saņemat moduli, kas nav saistīts ar kodola izplatīšanu, ievietojiet to vienā no versijas neatkarīgajiem direktorijiem /lib/modules.
Šī ir noklusējuma stratēģija, kuru var ignorēt /etc/modules.conf.
Piemēri
modprobe -t tīkls
Ielādējiet vienu no moduļiem, kas ir saglabāti direktorijā ar atzīmi tīkls. Katrs modulis tiek izmēģināts, līdz tas izdodas.
modprobe -a -t sāknēšana
Visi moduļi, kas tiek glabāti marķētos direktorijos boot ir ielādētas.
modprobe slīdēšana
Tas mēģina ielādēt moduli slhc.o ja tas iepriekš nebija ielādēts, jo slīdēšanas modulim ir nepieciešama slhc moduļa funkcionalitāte. Šī atkarība ir aprakstīta failā moduļi.dep kuru automātiski izveidoja depmod.
modprobe -r slīdēšana
Tas izkrauj slīdēšanas moduli. Tas arī automātiski izlādē slhc moduli, ja vien to neizmanto arī kāds cits modulis (piemēram, ppp).
Skatīt arī: depmod(8), lsmod (8), kodols (8), ksyms (8), rmmod(8).
Drošais režīms
Ja efektīvais uid nav vienāds ar reālo uid, modprobe izturas pret savu ievadi ar ārkārtējām aizdomām. Pēdējais parametrs vienmēr tiek uzskatīts par moduļa nosaukumu, pat ja tas sākas ar -. Var būt tikai viens moduļa nosaukums un veidlapas opcijas mainīgais=vērtība ir aizliegti. Moduļa nosaukums vienmēr tiek uzskatīts par virkni, drošajā režīmā meta paplašināšana netiek veikta. Tomēr meta paplašināšana tiek lietota datiem, kas tiek nolasīti no konfigurācijas faila.
euid var nebūt vienāds ar uid, ja modprobe tiek izsaukts no kodola, tas attiecas uz kodoliem 2.4.0-test11 un jaunākiem. Ideālā pasaulē modprobe varētu uzticēties, ka kodols nodod modprobe tikai derīgus parametrus. Tomēr ir notikusi vismaz viena vietējā saknes izmantošana, jo augsta līmeņa kodola kods nepārbaudītus parametrus nosūtīja tieši no lietotāja modprobe. Tātad modprobe vairs neuzticas kodola ievadei.
modprobe automātiski iestata drošo režīmu, ja vide sastāv tikai no šīm virknēm.
MĀJAS=/
TERM=linux
PATH=/sbin:/usr/sbin:/bin:/usr/bin
Tas nosaka modprobe izpildi no kodola kodolos 2.2 līdz 2.4.0-test11, pat ja uid == euid, kas tiek darīts iepriekšējos kodolos.
Mežizstrādes komandas
Ja direktorijs /var/log/ksymoops pastāv un modprobe tiek palaists ar opciju, kas var ielādēt vai dzēst moduli, modprobe reģistrē savu komandu un atgriež statusu /var/log/ksymoops/'date +%Y%m%d.log'. Nav slēdža, lai atspējotu šo automātisko reģistrēšanu, ja nevēlaties, lai tā notiktu, neveidojiet /var/log/ksymoops. Ja šis direktorijs eksistē, tam vajadzētu piederēt saknei, un tam jābūt režīmam 644 vai 600, un jums ir jāpalaiž skripts insmod_ksymoops_clean katru dienu vai tā.
Nepieciešamie komunālie pakalpojumi
depmod (8), insmod (8).
Izmantojiet vīrietis komanda (% vīrietis), lai redzētu, kā komanda tiek izmantota jūsu datorā.