שְׁאֵלָה:
איך תבטיח שממשקי רשת פיזיים תמיד יקבלו את אותו ממשק על פני אתחולים מחדש במערכת לינוקס משובצת?
Patrick
2015-07-28 23:26:33 UTC
view on stackexchange narkive permalink

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

במילים אחרות, אני רוצה, למשל, eth0 למפות תמיד ליציאת אתרנט פיזית אחת, eth1 למשנהו וכו '.

"הפצת" לינוקס שלי היא ביתית, ואני משתמש ב- devtmpfs לאכלוס / dev. אני משתמש ב-boxbox עבור init (ובעיקר כל השאר), יחד עם סקריפטים init מותאמים אישית להפעלה וכיבוי של המערכת.

אני לא זקוק למתקני חימום של mdev או udev - אני מתכוון ל"קבוע " יציאות אתרנט.

הנחתי שתהיה איזושהי דרך לציין זאת בקובץ devicetree, אך לא הצלחתי לגלות כיצד.
שתיים תשובות:
Patrick
2015-07-28 23:26:33 UTC
view on stackexchange narkive permalink

זה עובד בשבילי עם לינוקס 3.9.0 על ארכיטקטורת x86_64.

  #! / bin / sh # זה מניח שהממשקים מגיעים עם שמות ברירת מחדל של eth *. # הממשק שמות לא יכולים להיות נכונים בשלב זה, עם זאת. # זו רק דרך להשיג את כתובות ה- PCI של כל ממשקי ה- # הפעילים. PCIADDRLIST = עבור dir in / sys / class / net / eth *; לעשות [-e $ dir / device] && {PCIADDRLIST = "` readlink -f $ dir / device` $ {PCIADDRLIST} "} נעשה # עכשיו הקצה את שמות הממשק מרשימה מסודרת הממפה # לכתובות ה- PCI של כל ממשק . # IFNAMES יכול להגיע מקובץ תצורה כלשהו. יש צורך ב"דמה "בגלל # tr- ו- awk-fu המוגבלת שלי. IFNAMES =" דמה eth0 eth1 eth2 "עבור דיר ב- ʻecho $ {PCIADDRLIST} | tr "" "\ n" | מיין`; לעשות [-e $ dir / net / * / address] && {MACADDR = `cat $ dir / net / * / address` IFNAME = ʻecho $ IFNAMES | awk '{print $ 1}' IFNAMES = ʻecho $ IFNAMES | awk '{עבור (i = 2; i< = NF; i ++) printf "% s", $ i; } 'echo -n "$ IFNAME" nameif $ IFNAME mac = $ MACADDR} נעשה  
מאת `man nameif`: *" התוכנית הזו מיושנת. להחלפה בדוק את 'ip link`. "* שים לב שאם המערכת בה אתה נמצא * משתמשת ב-' udev ', האסטרטגיה שלך תהיה נוטה לכישלון כ' / sys / class / net / eth [whatever] `לא יכול להיות קיים.
Olek Wojnar
2015-08-13 04:43:15 UTC
view on stackexchange narkive permalink

ציינת שאתה לא זקוק ל udev אך אם אינך מתנגד להתקנתו, כדאי לך לשקול להשתמש ב biosdevname. ישנו דף ויקי נהדר ב- freedesktop.org הדן בנושא זה. כפי שצוין בדף זה, אם אתה משתמש ב- udev בגרסה 197 ומעלה, אתה אפילו לא צריך biosdevname כי udev כבר יעשה את מה שאתה צריך.



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...