לינוקס פיקוד - פיקוד יוניקס

שֵׁם

דפמוד - מטפל בתיאורי תלות עבור מודולי ליבה נטענים

תַקצִיר

dmmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F kernelsyms ] [-b basedirectory ] [ force_version ]
dmmod [-nqrsuv] [-F kernelsyms ] module1.o module2.o ...

תיאור

כלי השירות depmod ו modprobe נועדו להפוך לינוקס מודולרי לינוקס לניהול לכל המשתמשים, מנהלי ומתחלקים הפצה.

Depmod יוצר קובץ תלות "Makefile", המבוסס על הסמלים שהוא מוצא במערך המודולים המוזכרים בשורת הפקודה או מתוך הספריות המפורטות בקובץ התצורה. קובץ תלות זה משמש מאוחר יותר על ידי modprobe לטעון באופן אוטומטי את המודול הנכון או ערימת מודולים.

שימוש רגיל של depmod היא לכלול את הקו


/ sbin / depmod -a

איפשהו ב rc- קבצים ב /etc / rc.d , כך התלות מודול הנכון יהיה זמין מיד לאחר אתחול המערכת. שים לב שהאפשרות - כעת אופציונלית. למטרות אתחול, האפשרות -q עשויה להיות מתאימה יותר, שכן זה הופך את השקט depmod על סמלים לא פתורים.

ניתן גם ליצור את קובץ התלות מיד לאחר הידור הקרנל החדש. אם אתה עושה " depmod-2.2.99 " כאשר יש לך מלוקט הקרנל 2.2.99 ומודולים שלה בפעם הראשונה, תוך כדי ריצה למשל 2.2.98, הקובץ ייווצר במקום הנכון. במקרה זה עם זאת, התלות של הקרנל לא תהיה מובטחת להיות נכונה. ראה את האפשרויות -F , -C -b לעיל לקבלת מידע נוסף אודות טיפול זה.

בזמן בניית הקשר בין המודולים לבין הסמלים המיוצאים על ידי מודולים אחרים, depmod אינו מתייחס למצב GPL של המודולים ולא של הסמלים המיוצאים. כלומר, depmod לא יסמן שגיאה אם ​​מודול ללא רישיון תואם ל- GPL מתייחס לסמל GPL בלבד (EXPORT_SYMBOL_GPL בגרעין). עם זאת, יהיה לסרב לפתור GPL רק סמלים עבור שאינם GPL מודולים כך עומס בפועל ייכשל.

אפשרויות

-A , -

חפש מודולים בכל הספריות המפורטות בקובץ התצורה (אופציונלי) /etc/modules.conf .

-A , - quick

השווה בין חותמות קובץ, ואם יש צורך, פעל כמו depmod -a . אפשרות זו מעדכנת רק את קובץ התלות אם משהו השתנה.

-e , --errsyms

הצג את כל הסמלים שלא נפתרו עבור כל מודול.

-h , - עזרה

הצגת סיכום של אפשרויות ולצאת מייד.

-n , --show

כתוב את קובץ התלות ב- stdout במקום בעץ / lib / modules .

-q , - שקט

תגיד דפמוד כדי לשמור על שקט ולא להתלונן על סמלים חסרים.

-R , -

חלק מהמשתמשים לקמפל מודולים תחת Userid שאינו root ואז להתקין את המודולים כמו שורש. תהליך זה יכול להשאיר את המודולים הנמצאים בבעלות המשתמש שאינו root, למרות שמדריך המודולים נמצא בבעלות השורש. אם המשתמש שאינו נמצא בשורש נמצא בסכנה, פולש יכול להחליף מודולים קיימים בבעלותו של אותו משתמש ולהשתמש בחשיפה זו ל bootstrap עד לגישת שורש.

כברירת מחדל, modutils ידחה ניסיונות להשתמש במודול שאינו בבעלות השורש. ציון - יהיה לדכא את השגיאה ולאפשר שורש לטעון מודולים שאינם בבעלות השורש.

השימוש ב- -r הוא חשיפת אבטחה גדולה ואינו מומלץ.

-s , - syslog

כתוב את כל הודעות השגיאה באמצעות daemon syslog במקום stderr.

-u , - unresolved-error

depmod 2.4 אינו מגדיר קוד החזרה כאשר קיימים סמלים שלא נפתרו. המהדורה הבאה הבאה של modutils (2.5) תקבע קוד החזרה עבור סמלים לא פתורים. חלק מההפצות רוצות קוד החזרה שאינו אפס במודוטילס 2.4, אך שינוי זה עלול לגרום לבעיות עבור משתמשים המצפים להתנהגות הישנה. אם אתה רוצה קוד שאינו חוזר אפס ב- depmod 2.4, ציין -u . depmod 2.5 תתעלם בשקט מהדגל -U ותמיד תיתן קוד חזרה לא אפס לסמלים שלא נפתרו.

-v , - verbose

הצג את השם של כל מודול בזמן שהוא מעובד.

-V , - גרסה

הצג את גירסת depmod .

האפשרויות הבאות יעילות עבור אנשים המנהלים הפצות:

-Birectirory בסיס , מבוסס בסיס

אם עץ הספריות / lib / מודולים המכילים את העצים-משנה של המודולים מועבר למקום אחר כדי לטפל במודולים עבור סביבה אחרת, האפשרות -b אומרת depmod היכן ניתן למצוא את התמונה הנעה של עץ lib / modules . הפניות הקובץ בקובץ הפלט depmod שנבנה, modules.dep , לא יכיל את הנתיב מבוסס הדיסק . משמעות הדבר היא שכאשר עץ הקובץ מועבר ממודולים מבוססי / lib / מודולים לתוך / lib / מודולים בהפצה הסופית, כל ההפניות יהיו נכונות.

-C configfile , - configfile קונפיג

השתמש בקובץ configfile במקום /etc/modules.conf . המשתנה הסביבתי MODULECONF יכול לשמש גם לבחירת קובץ תצורה שונה מברירת המחדל /etc/modules.conf (או /etc/conf.modules (הוצא משימוש).

כאשר משתנה הסביבה

UNAME_MACHINE מוגדר, modutils ישתמש הערך שלו במקום שדה המכונה מן syscall uname (). זה בעיקר בשימוש כאשר אתה קומפילציה 64 סיביות מודולים שטח המשתמש 32 סיביות או להיפך, להגדיר UNAME_MACHINE לסוג המודולים הנבנים. Modutils הנוכחי אינו תומך במצב מלא לחצות לבנות עבור מודולים, זה מוגבל לבחירת בין 32 ו 64 סיביות של הארכיטקטורה המארחת.

-F kernelsyms , --filesyms kernelsyms

כאשר בניית קבצי תלות עבור ליבה שונה מאשר הקרנל פועל כרגע, חשוב כי depmod משתמשת להגדיר הנכון של סמלים ליבה כדי לפתור את הפניות הקרנל בכל מודול. סמלים אלה יכולים להיות עותק של System.map מן הקרנל השני, או עותק של הפלט מ / proc / ksyms . אם הקרנל שלך משתמש בסמלים בגירסה, מומלץ להשתמש בעותק של הפלט / proc / ksyms , מכיוון שקובץ זה מכיל את גרסאות הסימנים של סמלי הליבה. עם זאת ניתן להשתמש System.map אפילו עם סמלים גרסאות.

תְצוּרָה

ההתנהגות של depmod ו modprobe יכול להיות מותאם על ידי קובץ תצורה (אופציונלי) /etc/modules.conf .
ראה modprobe (8) ו modules.conf (5) עבור תיאור מלא.

אִסטרָטֶגִיָה

בכל פעם שאתה לקמפל ליבה חדשה, הפקודה " לעשות modules_install " תיצור ספרייה חדשה, אבל לא תשנה את ברירת המחדל.

כאשר אתה מקבל מודול שאינו קשור הפצה הליבה אתה צריך למקם אותו באחד הספריות עצמאית גירסה תחת / lib / מודולים .

זוהי אסטרטגיית ברירת המחדל, אשר ניתן לדרוס ב / etc / modules.conf .

ראה גם

lsmod (8), ksyms (8)

חשוב: השתמש בפקודת הגבר ( % man ) כדי לראות כיצד נעשה שימוש בפקודה במחשב הספציפי שלך.