Depmod - εντολή Linux - εντολή Unix

Ονομα

depmod - περιγράψτε τις περιγραφές εξάρτησης για φορτιζόμενες μονάδες πυρήνα

Σύνοψη

depmod [-aA] [-ehnqrsuvV] [-configile] [-f kernelsyms ] [-b βασικό_κατάλογος ] [ forced_version ]
depmod [-enqrsuv] [-F πυρήνα ] module1.o module2.o ...

Περιγραφή

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

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

Η κανονική χρήση του depmod είναι να συμπεριλάβει τη γραμμή


/ sbin / depmod -a

κάπου στα αρχεία rc στο /etc/rc.d , έτσι ώστε οι σωστές εξαρτήσεις εξαρτημάτων να είναι διαθέσιμες αμέσως μετά την εκκίνηση του συστήματος. Σημειώστε ότι η επιλογή -a είναι πλέον προαιρετική. Για λόγους εκκίνησης, η επιλογή -q μπορεί να είναι πιο κατάλληλη, καθώς αυτό καθιστά το depmod σιωπηλό για τα ανεπίλυτα σύμβολα.

Είναι επίσης δυνατή η δημιουργία του αρχείου εξάρτησης αμέσως μετά την κατάρτιση ενός νέου πυρήνα. Αν κάνετε " depmod -a 2.2.99 " όταν έχετε συντάξει τον πυρήνα 2.2.99 και τις μονάδες του για πρώτη φορά, ενώ εξακολουθεί να τρέχει π.χ. 2.2.98, το αρχείο θα δημιουργηθεί στη σωστή θέση. Σε αυτήν την περίπτωση, ωστόσο, οι εξαρτήσεις στον πυρήνα δεν θα είναι εγγυημένες. Δείτε τις επιλογές -F , -C και -b παραπάνω για περισσότερες πληροφορίες σχετικά με το χειρισμό αυτής.

Κατά την οικοδόμηση της σχέσης μεταξύ των ενοτήτων και των συμβόλων που εξάγονται από άλλες ενότητες, το depmod δεν θεωρεί την κατάσταση GPL των ενοτήτων ούτε των εξαγόμενων συμβόλων. Δηλαδή, το depmod δεν θα επισημάνει ένα σφάλμα εάν μια μονάδα χωρίς άδεια συμβατή με GPL αναφέρεται σε ένα σύμβολο μόνο GPL (EXPORT_SYMBOL_GPL στον πυρήνα). Ωστόσο, το insmod θα αρνηθεί να επιλύσει τα σύμβολα GPL μόνο για τα μη GPL modules έτσι ώστε το πραγματικό φορτίο να αποτύχει.

Επιλογές

, --όλα

Αναζήτηση ενοτήτων σε όλους τους καταλόγους που καθορίζονται στο αρχείο ρυθμίσεων (προαιρετικό) /etc/modules.conf .

Συγκρίνετε τα χρονικά σήματα αρχείων και, εάν είναι απαραίτητο, ενεργήστε όπως το depmod -a . Αυτή η επιλογή ενημερώνει μόνο το αρχείο εξάρτησης αν άλλαξε κάτι.

, --errsyms

Εμφάνιση όλων των ανεπίλυτων συμβόλων για κάθε ενότητα.

-h , --help

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

, - δείχνει

Γράψτε το αρχείο εξάρτησης στο stdout αντί στο δέντρο / lib / modules .

-q , - καθαρή

Πείτε το depmod να παραμείνει ήσυχο και να μην διαμαρτύρονται για τα σύμβολα που λείπουν.

-r , - ρίζα

Ορισμένοι χρήστες καταρτίζουν λειτουργικές μονάδες κάτω από μη χρήστη root και στη συνέχεια εγκαθιστούν τις ενότητες ως root. Αυτή η διαδικασία μπορεί να αφήσει τις λειτουργικές μονάδες που ανήκουν στο userid μη-ρίζας, παρόλο που ο κατάλογος των ενοτήτων ανήκει στη ρίζα. Εάν το userid που δεν είναι root, ένας εισβολέας μπορεί να αντικαταστήσει τις υπάρχουσες μονάδες που ανήκουν σε αυτό το userid και να χρησιμοποιήσει αυτήν την έκθεση για να ξεκινήσει την πρόσβαση σε root.

Από προεπιλογή, το modutils θα απορρίψει τις προσπάθειες χρήσης μιας ενότητας που δεν ανήκει στη ρίζα. Ο καθορισμός του -r θα καταργήσει το σφάλμα και θα επιτρέψει στη ρίζα να φορτώσει μονάδες που δεν ανήκουν στη ρίζα.

Η χρήση του -r είναι μια σημαντική έκθεση ασφαλείας και δεν συνιστάται.

-s , --syslog

Γράψτε όλα τα μηνύματα σφάλματος μέσω του daemon syslog αντί του stderr.

-u , - unresolved-error

depmod 2.4 δεν καθορίζει έναν κωδικό επιστροφής όταν υπάρχουν τυχόν ανεπίλυτα σύμβολα. Η επόμενη μεγάλη έκδοση του modutils (2.5) θα ορίσει έναν κωδικό επιστροφής για ανεπίλυτα σύμβολα. Ορισμένες διανομές θέλουν μη μηδενικό κωδικό επιστροφής στο modutils 2.4 αλλά αυτή η αλλαγή μπορεί να προκαλέσει προβλήματα στους χρήστες που αναμένουν την παλιά συμπεριφορά. Αν θέλετε μη μηδενικό κωδικό επιστροφής στο depmod 2.4, καθορίστε -u . το depmod 2.5 θα αγνοεί σιωπηρά τη σημαία -u και θα δίνει πάντα έναν μη-μηδενικό κωδικό επιστροφής για ανεπίλυτα σύμβολα.

-v , - verbose

Να εμφανίζεται το όνομα κάθε μονάδας καθώς αυτή υποβάλλεται σε επεξεργασία.

-V , --version

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

Οι ακόλουθες επιλογές είναι χρήσιμες για άτομα που διαχειρίζονται διανομές:

-b , - βασισμένο στο basedir

Εάν η δομή / lib / modules του καταλόγου που περιέχει τα δευτερεύοντα δέντρα των μονάδων μετακινηθεί κάπου αλλού για να χειριστούν τις λειτουργικές μονάδες για διαφορετικό περιβάλλον, η επιλογή -b λέει στο depmod πού να βρει την μετακινούμενη εικόνα του δέντρου / lib / modules . Οι αναφορές αρχείων στο αρχείο εξόδου depmod που είναι κατασκευασμένο, modules.dep , δεν θα περιέχουν τη διαδρομή του βασικού . Αυτό σημαίνει ότι όταν το δέντρο αρχείων μεταφέρεται από το βασικό / lib / modules σε / lib / modules στην τελική διανομή, όλες οι αναφορές θα είναι σωστές.

-configfile , --config configfile

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

Όταν η μεταβλητή περιβάλλοντος

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

-F kernelsyms , --fileyms kernelsyms

Όταν δημιουργείτε αρχεία εξάρτησης για έναν διαφορετικό πυρήνα από τον τρέχοντα πυρήνα, είναι σημαντικό ότι το depmod χρησιμοποιεί το σωστό σύμβολο του πυρήνα για να επιλύσει τις αναφορές του πυρήνα σε κάθε ενότητα. Αυτά τα σύμβολα μπορούν είτε να είναι ένα αντίγραφο του System.map από τον άλλο πυρήνα, είτε ένα αντίγραφο της εξόδου από το / proc / ksyms . Εάν ο πυρήνας σας χρησιμοποιεί συμβόλαια έκδοσης, είναι καλύτερο να χρησιμοποιήσετε ένα αντίγραφο της εξόδου / proc / ksyms , καθώς το αρχείο περιέχει τις εκδόσεις συμβόλων των συμβόλων του πυρήνα. Ωστόσο, μπορείτε να χρησιμοποιήσετε ένα System.map ακόμα και με έκδοση συμβόλων.

Διαμόρφωση

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

Στρατηγική

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

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

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

Δείτε επίσης

lsmod (8), ksyms (8)

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