Skip to main content

Όλα για την εντολή Linux / Unix: modprobe

Linux Scripting Tutorial 1o - Eισαγωγή στα Linux και βασικές εντολές (Ιούνιος 2026)

Linux Scripting Tutorial 1o - Eισαγωγή στα Linux και βασικές εντολές (Ιούνιος 2026)
Anonim

Ονομα

modprobe - υψηλού επιπέδου χειρισμός φορτιζόμενων ενοτήτων

Σύνοψη

modprobe -adnqv -C config ενότητα σύμβολο = τιμή …modprobe -adnqv -C config -t τύπος πρότυποmodprobe -l - config -t τύπος πρότυποmodprobe -c - config modprobe -r -dnv -C config ενότητα …modprobe -Vh

Επιλογές

-ένα, --όλα

Φορτώνωόλα αντιστοίχιση μονάδων αντί να σταματήσουν μετά την πρώτη επιτυχή φόρτωση.

-ντο, --showconfig

Εμφάνιση της τρέχουσας διαμόρφωσης.

-ΝΤΟ, --config config

Χρησιμοποιήστε το αρχείο config αντί (του προαιρετικού) /etc/modules.conf για να καθορίσετε τη διαμόρφωση. Η μεταβλητή περιβάλλοντοςMODULECONF μπορεί επίσης να χρησιμοποιηθεί για την επιλογή (και αντικατάσταση) ενός διαφορετικού αρχείου ρυθμίσεων από την προεπιλογή /etc/modules.conf (ή /etc/conf.modules (απόρριψη)).

Όταν η μεταβλητή περιβάλλοντοςUNAME_MACHINE , το modutils θα χρησιμοποιήσει την τιμή του αντί του πεδίου του μηχανήματος από το σύμβολο uname (). Αυτό είναι κυρίως χρήσιμο όταν καταρτίζετε μονάδες 64 bit σε 32-bit χώρο χρηστών ή αντίστροφαUNAME_MACHINE με τον τύπο των μονάδων. Η τρέχουσα modutils δεν υποστηρίζει πλήρη λειτουργία cross-build για τα modules, αλλά περιορίζεται στην επιλογή ανάμεσα σε εκδόσεις 32 και 64 bit της αρχιτεκτονικής host.

-ρε, - απογύμνωμα

Εμφάνιση πληροφοριών σχετικά με την εσωτερική αναπαράσταση της στοίβας των ενοτήτων.

-h, --βοήθεια

Εμφανίστε μια σύνοψη των επιλογών και αμέσως βγείτε.

, --αυτοκαθαρισμός

Ρυθμίστε 'autoclean' στις φορτωμένες μονάδες. Χρησιμοποιείται από τον πυρήνα όταν καλείmodprobe για να ικανοποιήσει ένα χαρακτηριστικό που λείπει (παρέχεται ως ενότητα). ο-q επιλογή υποδηλώνεται από. Αυτές οι επιλογές θα σταλούν αυτόματα σεinsmod.

-μεγάλο, --λίστα

Λίστα μονάδων αντιστοίχισης.

, --προβολή

Μην εκτελέσετε την ενέργεια, απλά δείξτε τι θα γίνει.

-q, --ησυχια

Μη διαμαρτύρονταιinsmod αδυναμία εγκατάστασης μονάδας. Συνεχίστε κανονικά, αλλά σιωπηλά, με άλλες δυνατότητες για δοκιμή modprobe. Αυτή η επιλογή θα σταλεί αυτόματα σεinsmod.

-r, --αφαιρώ

Καταργήστε την ενότητα (stacks) ή κάντε autoclean, ανάλογα με το αν υπάρχουν ενότητες που αναφέρονται στη γραμμή εντολών.

-μικρό, --syslog

Αναφορά μέσω του syslog αντί του stderr. Αυτές οι επιλογές θα αποσταλούν αυτόματα σεinsmod.

-t moduletype ; --τύπος moduletype

Εξετάστε μόνο τις ενότητες αυτού του τύπου. Το modprobe θα εξετάσει μόνο τις ενότητες των οποίων η διαδρομή του καταλόγου περιλαμβάνει ακριβώς " / moduletype / '. moduletype μπορεί να περιλαμβάνει περισσότερα από ένα όνομα καταλόγου, π.χ. "-t οδηγούς / καθαρό "θα απαριθμούσε τις ενότητες σε xxx / drivers / net / και τους υποκαταλόγους της.

-v, --πολύλογος

Εκτυπώστε όλες τις εντολές καθώς εκτελούνται.

-V, --version

Εμφάνιση της έκδοσης τουmodprobe.

Σημείωση:

Τα ονόματα των δομοστοιχείων δεν πρέπει να περιέχουν διαδρομές (όχι '/'), ούτε περιέχουν το τελευταίο '.o'. Για παράδειγμα, η ολίσθηση είναι ένα έγκυρο όνομα μονάδας γιαmodprobe, /lib/modules/2.2.19/net/slip και slip.o δεν είναι έγκυρα. Αυτό ισχύει για τη γραμμή εντολών και για τις καταχωρήσεις στο config.

Περιγραφή της εντολής

οmodprobe καιdepmod τα βοηθητικά προγράμματα προορίζονται να καταστήσουν έναν αρθρωτό πυρήνα Linux πιο εύχρηστο για όλους τους χρήστες, τους διαχειριστές και τους διαχειριστές διανομής.

Modprobe χρησιμοποιεί ένα αρχείο εξάρτησης όπως "Makefile", το οποίο δημιουργήθηκε απόdepmod, για να φορτώσει αυτόματα τις σχετικές λειτουργικές μονάδες από το σύνολο των μονάδων που είναι διαθέσιμα σε προκαθορισμένες δένδρα καταλόγων.

Modprobe χρησιμοποιείται για τη φόρτωση μιας μόνο μονάδας, μιας στοίβας εξαρτημένων μονάδων ή όλων των ενοτήτων που έχουν επισημανθεί με μια συγκεκριμένη ετικέτα.

Modprobe θα φορτώσει αυτόματα όλες τις βασικές ενότητες που απαιτούνται σε μια στοίβα δομοστοιχείων, όπως περιγράφεται από το αρχείο εξάρτησης modules.dep . Εάν η φόρτωση μιας από αυτές τις μονάδες αποτύχει, ολόκληρη η τρέχουσα στοίβα μονάδων που έχουν φορτωθεί στην τρέχουσα συνεδρία θα εκφορτωθεί αυτόματα.

Modprobe έχει δύο τρόπους φόρτωσης μονάδων. Ένας τρόπος (η λειτουργία ανίχνευσης) θα προσπαθήσει να φορτώσει μια ενότητα από μια λίστα (καθορίζεται από το πρότυπο ). Modprobe σταματά τη φόρτωση μόλις φορτωθεί μία μονάδα με επιτυχία. Αυτό θα μπορούσε να χρησιμοποιηθεί για την αυτόματη διαγραφή ενός οδηγού Ethernet από μια λίστα. Ο άλλος τρόποςmodprobe μπορεί να χρησιμοποιηθεί είναι να φορτώσειόλα από μια λίστα. ΒλέπωΠΑΡΑΔΕΙΓΜΑΤΑ, παρακάτω.

Με την επιλογή-r, modprobe θα εκφορτώσει αυτόματα μια στοίβα των ενοτήτων, παρόμοια με τον τρόπο "rmmod -r"Σημειώστε ότι χρησιμοποιώντας μόνο"modprobe -r"θα καθαρίσει τις αχρησιμοποίητες αυτόματες μονάδες και επίσης θα εκτελέσει τις εντολές προ- και μετά την αφαίρεση στο αρχείο διαμόρφωσης /etc/modules.conf .

Ο συνδυασμός των επιλογών-μεγάλο και-t παραθέτει όλες τις διαθέσιμες μονάδες συγκεκριμένου τύπου.

Επιλογή-ντο θα εκτυπώσει τη διαμόρφωση που χρησιμοποιείται αυτήν τη στιγμή (προεπιλεγμένο αρχείο ρύθμισης παραμέτρων).

Διαμόρφωση

Η συμπεριφορά τουmodprobe (καιdepmod) μπορεί να τροποποιηθεί από το (προαιρετικό) αρχείο διαμόρφωσης /etc/modules.conf . Για λεπτομερέστερη περιγραφή του περιεχομένου αυτού του αρχείου, καθώς και της προεπιλεγμένης διαμόρφωσης που χρησιμοποιείται από τοdepmod καιmodprobe, βλέπωmodules.conf(5).

Σημειώστε ότι οι εντολές πριν και μετά την αφαίρεση θαδεν να εκτελεστεί αν μια μονάδα είναι "autocleaned" από το kerneld! Αναζητήστε την επερχόμενη υποστήριξη για μόνιμη αποθήκευση μονάδων αντί. Αν θέλετε να χρησιμοποιήσετε τις λειτουργίες πριν και μετά την εγκατάσταση, θα πρέπει να απενεργοποιήσετε το autoclean για το kerneld και να βάλετε κάτι σαν την ακόλουθη γραμμή στοcrontab (αυτό ισχύει και για τα συστήματα kmod) για να κάνετε autoclean κάθε 2 λεπτά: * / 2 * * * * test -f / proc / modules && / sbin / modprobe -r

Στρατηγική

Η ιδέα είναι ότιmodprobe θα εξετάσει πρώτα τον κατάλογο που περιέχει τις ενότητες που έχουν συνταχθεί για την τρέχουσα έκδοση του πυρήνα. Εάν η ενότητα δεν βρίσκεται εκεί,modprobe θα αναζητήσει στον κατάλογο που είναι κοινός στην έκδοση του πυρήνα (π.χ. 2.0, 2.2). Αν η ενότητα εξακολουθεί να βρίσκεται,modprobe θα εξετάσει τον κατάλογο που περιέχει τις ενότητες για μια προεπιλεγμένη έκδοση και ούτω καθεξής.

Όταν εγκαθιστάτε ένα νέο linux, οι ενότητες πρέπει να μετακινηθούν σε έναν κατάλογο που σχετίζεται με την έκδοση (και έκδοση) του πυρήνα που εγκαθιστάτε. Στη συνέχεια, θα πρέπει να κάνετε ένα σύμβολο σύνδεσης από αυτόν τον κατάλογο στον κατάλογο "προεπιλογή".

Κάθε φορά που καταρτίζετε έναν νέο πυρήνα, η εντολή "κάντε modules_install"θα δημιουργήσει έναν νέο κατάλογο, αλλά δεν θα αλλάξει τον σύνδεσμο" προεπιλογή ".

Όταν αποκτάτε μια ενότητα που δεν σχετίζεται με τη διανομή του πυρήνα, πρέπει να την τοποθετήσετε σε έναν από τους ανεξάρτητους από την έκδοση καταλόγους / lib / ενότητες .

Αυτή είναι η προεπιλεγμένη στρατηγική, η οποία μπορεί να αντικατασταθεί /etc/modules.conf .

Παραδείγματα

modprobe -t net

Φορτώστε μία από τις μονάδες που είναι αποθηκευμένες στον κατάλογο με την ετικέτα "net". Κάθε δομοστοιχείο δοκιμάζεται μέχρι να πετύχει κάποιος.

modprobe -a-t εκκίνηση

Όλες οι μονάδες που είναι αποθηκευμένες σε καταλόγους με ετικέτα "boot" θα φορτωθούν.

modprobe slip

Αυτό θα προσπαθήσει να φορτώσει το module slhc.o αν δεν είχε προηγουμένως φορτωθεί, αφού η μονάδα ολίσθησης χρειάζεται τη λειτουργικότητα της μονάδας slhc. Αυτή η εξάρτηση θα περιγραφεί στο αρχείο modules.dep που δημιουργήθηκε αυτόματα απόdepmod.

modprobe-r ολίσθηση

Αυτό θα ξεφορτώσει τη μονάδα ολίσθησης. Επίσης, θα εκφορτώνει αυτόματα τη μονάδα slhc, εκτός και αν χρησιμοποιείται από κάποια άλλη λειτουργική μονάδα (π.χ. ppp).

Δείτε επίσης:

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

Λειτουργία ασφαλείας

Αν το πραγματικό uid δεν είναι ίσο με το πραγματικό uid στη συνέχειαmodprobe αντιμετωπίζει την εισήγησή του με ακραίες υποψίες. Η τελευταία παράμετρος αντιμετωπίζεται πάντοτε ως όνομα μονάδας, ακόμα και αν ξεκινά με '-'. Μπορεί να υπάρχει μόνο ένα όνομα μονάδας και οι επιλογές της φόρμας "variable = value" απαγορεύονται. Το όνομα της μονάδας αντιμετωπίζεται πάντα ως συμβολοσειρά, δεν εκτελείται επέκταση meta σε ασφαλή λειτουργία. Ωστόσο, η επέκταση meta εξακολουθεί να εφαρμόζεται στα δεδομένα που διαβάζονται από το αρχείο ρυθμίσεων.

Το euid μπορεί να μην είναι ίσο με το uid όταν το modprobe χρησιμοποιείται από τον πυρήνα, αυτό ισχύει για τους πυρήνες> = 2.4.0-test11. Σε έναν ιδανικό κόσμο,modprobe θα μπορούσε να εμπιστευτεί τον πυρήνα να μεταβιβάσει έγκυρες παραμέτρους μόνο στη modprobe. Ωστόσο, τουλάχιστον μία τοπική εκμετάλλευση ρίζας έχει προκύψει επειδή ο κώδικας πυρήνα υψηλού επιπέδου πέρασε μη επαληθευμένες παραμέτρους κατευθείαν από το χρήστη στο modprobe. Επομένως, το modprobe δεν εμπιστεύεται πλέον την είσοδο του πυρήνα.

modprobe ρυθμίζει αυτόματα ασφαλή λειτουργία όταν το περιβάλλον αποτελείται μόνο από αυτές τις συμβολοσειρές

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

Αυτό εντοπίζει την εκτέλεση modprobe από τον πυρήνα στους πυρήνες 2.2 αν και 2.4.0-test11, ακόμα και αν uid == euid, κάτι που κάνει στους παλαιότερους πυρήνες.

Εντολές καταγραφής

Αν κατάλογος / var / log / ksymoops υπάρχει καιmodprobe τρέχει με μια επιλογή που θα μπορούσε να φορτώσει ή να διαγράψει ένα module τότε modprobe θα καταγράψει την εντολή και την κατάσταση επιστροφής του / var / log / ksymoops / `ημερομηνία +% Y% m% d.log` . Δεν υπάρχει διακόπτης για την απενεργοποίηση αυτής της αυτόματης καταγραφής, αν δεν θέλετε να συμβεί, μην δημιουργείτε / var / log / ksymoops . Αν αυτός ο κατάλογος υπάρχει, πρέπει να ανήκει σε root και να είναι 644 ή 600 και θα πρέπει να εκτελέσετε δέσμη ενεργειώνinsmod_ksymoops_clean κάθε μέρα ή έτσι.

Απαιτούμενα βοηθήματα

depmod(8), insmod(8).

Σπουδαίος: Χρησιμοποιήστε το άνδρας εντολή ( % άνδρας ) για να δείτε πώς χρησιμοποιείται μια εντολή στον υπολογιστή σας.