मेरे eth0 को eno16777736 क्यों कहा जाता है?


27

मैंने http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ देखा है , जो सुसंगत / पूर्वानुमान उपकरण के नामकरण के लिए औचित्य का वर्णन करता है, और फिर नियम जिसके द्वारा डिवाइस नाम उत्पन्न किए जाते हैं

 * Two character prefixes based on the type of interface:
 *   en -- ethernet
 *   sl -- serial line IP (slip)
 *   wl -- wlan
 *   ww -- wwan
 *
 * Type of names:
 *   b<number>                             -- BCMA bus core number
 *   ccw<name>                             -- CCW bus group name
 *   o<index>                              -- on-board device index number
 *   s<slot>[f<function>][d<dev_port>]     -- hotplug slot index number
 *   x<MAC>                                -- MAC address
 *   [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
 *                                         -- PCI geographical location
 *   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
 *                                         -- USB port number chain

तो चलो कहते हैं कि मुझे डिवाइस मिल गया है eno16777736: इसे क्यों कहा जाता है? यह एक ईथरनेट कार्ड है, मुझे वह मिल गया है। लेकिन मैं खुद इस इंटरफ़ेस के बाकी हिस्सों में कैसे वापस आ सकता हूं?

मैंने जांच की /sys/class/net/eno16777736, और देखा:

eno16777736 -> ../../devices/pci0000:00/0000:00:11.0/0000:02:01.0/net/eno16777736

यह सुनिश्चित करने के लिए नहीं कि इसकी व्याख्या कैसे की जाए, या क्या मैं इस जानकारी का उपयोग कर सकता हूं eno16777736

अद्यतन करें

तो 16777736डिवाइस है acpi_index। प्रति https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-pci :

What:       /sys/bus/pci/devices/.../acpi_index
Date:       July 2010
Contact:    Narendra K <narendra_k@dell.com>, linux-bugs@dell.com
Description:
        Reading this attribute will provide the firmware
        given instance (ACPI _DSM instance number) of the PCI device.
        The attribute will be created only if the firmware has given
        an instance number to the PCI device. ACPI _DSM instance number
        will be given priority if the system firmware provides SMBIOS
        type 41 device type instance also.

और सचमुच में:

core@localhost /sys/devices/pci0000:00/0000:00:11.0/0000:02:01.0 $ find . -type f | xargs grep 1677 2> /dev/null
./net/eno16777736/uevent:INTERFACE=eno16777736
./acpi_index:16777736

इसके अलावा, से उत्पादन में सामंजस्य स्थापित करने ifconfigया ip linkऔर में अपने उपकरणों lspci:

$ ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.37  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::20c:29ff:fe70:c039  prefixlen 64  scopeid 0x20<link>
        inet6 2601:a:7c0:66:20c:29ff:fe70:c039  prefixlen 64  scopeid 0x0<global>
        ether 00:0c:29:70:c0:39  txqueuelen 1000  (Ethernet)
        RX packets 326  bytes 37358 (36.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 172  bytes 45999 (44.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0x2000 

"डिवाइस इंटरप्ट 19" पर ध्यान दें। और lspci -vजिससे "IRQ 19" है:

02:01.0 Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] (rev 10)
        Subsystem: Advanced Micro Devices, Inc. [AMD] PCnet - Fast 79C971
        Physical Slot: 33
        Flags: bus master, medium devsel, latency 64, IRQ 19
        I/O ports at 2000 [size=128]
        [virtual] Expansion ROM at fd500000 [disabled] [size=64K]
        Kernel driver in use: pcnet32

यहाँ आप "Phyiscal Slot 33" भी देखते हैं, और वास्तव में कभी-कभी VMWare बूट VMs ens33को इंटरफ़ेस नाम के रूप में प्राप्त करते हैं। इसलिए, यह स्पष्ट नहीं है कि अन्य बार यह eno16777736 को क्यों चुनता है। लेकिन 16777736 से आता है acpi_index, और 33 पीसीआई स्लॉट से आता है।


ऐसा लगता है जैसे Red Hat ने RHEL7.3 में अपना पक्ष तय किया: redhat.com/en/about/blog/…
स्टीफन लासिवस्की

जवाबों:


30

en ईथरनेट के लिए

o जहाज पर

16777736फर्मवेयर (BIOS / EFI) द्वारा दिए गए उपकरण का सूचकांक है। सूचकांक को शुरू करना तर्कसंगत होगा 1। या तो वह, या आपके पास समझदार फर्मवेयर है और 16 मिलियन से अधिक जहाज पर उपकरण हैं! लेकिन अधिक संभावना है, आप VMware समुदाय पर उठाए गए मुद्दे (लेकिन जवाब नहीं दिए गए) को देख रहे हैं - ऐसा लगता है कि संख्या एक संभावित नकारात्मक अतिप्रवाह से आती है acpi_index

आप udevअपने सिस्टम के लिए इसी तरह की जानकारी देख सकते हैं :

udevadm info --name=/dev/eno16777736 --attribute-walk

हाहा दिलचस्प है। तो मेरा BIOS VMWare है। क्या अजीब बात है कि कभी-कभी VMWare eno16777736 और कभी-कभी ens33 करता है। तो कभी-कभी यह "ऑन बोर्ड" होता है और कभी-कभी "हॉट प्लगिंग?" अजीब। 16777736 4096 ^ 2 के बहुत करीब है
दिमित्री

या, उह, 2 ^ 24। तो शायद यह वहीं से शुरू हो ...
दिमित्री मिंकोवस्की

2
AHH तो यह "acpi_index" है। आपका बहुत बहुत धन्यवाद। मैं वास्तव में उस नंबर को कुछ आउटपुट में देखना चाहता था! यह शर्म की बात है कि उस पोस्ट पर ओपी ने जारी की गई कमांड को नहीं दिखाया, लेकिन मुझे यकीन है कि मैं इसके लिए Google कर सकता हूं। धन्यवाद
दिमित्री मिंकोवस्की

9

VMware का उपयोग?

यूनिक्स Stackexchange साइट पर एक सवाल-जवाब किया था इस बारे में। ऐसा प्रतीत होता है कि BIOS द्वारा एनआईसी के बारे में जानकारी प्रदान की जा रही है।

यदि आप इसे eth0(या किसी अन्य नाम) में बदलना चाहते हैं, तो आप ऐसा करने के लिए udv का उपयोग कर सकते हैं। यहाँ ऐसा करने के लिए एक आसान गाइड है।


हां, वीएमवेयर। और धन्यवाद, मैं आपके लिंक की जांच करूंगा! मुझे इसे eth0 में बदलने की आवश्यकता नहीं है, क्योंकि मैं चाहता हूं कि यह प्रणाली वास्तव में मेरे लिए अनुमानित हो: D। मैंने ens33भी, उदाहरण के लिए, VMWare का उपयोग किया है। वास्तव में यह जानना चाहता है कि यह उन मूल्यों को कैसे चुनता है, और मैं उन्हें कैसे वापस ले सकता हूं।
दिमित्री मिंकोवस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.