[server] 왜 내 eth0이 eno16777736이라고하나요?

일관되고 예측 가능한 장치 명명의 이론적 근거와 장치 이름 생성 규칙에 대해 설명하는 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 ens33는 인터페이스 이름으로 사용되는 VM을 부팅 합니다. 따라서 다른 시간에 eno16777736을 선택하는 이유는 확실하지 않습니다. 그러나 16777736은에서 acpi_index, 33은 PCI 슬롯에서 제공됩니다.



답변

en 이더넷 용

o 온보드

16777736펌웨어 (BIOS / EFI)에서 제공 한 장치의 인덱스입니다. 에서 색인을 시작하는 것이 논리적이었을 것 1입니다. 또는 합리적인 펌웨어와 1,600 만 대 이상의 온보드 장치가 있습니다! 그러나 VMware Community 에서 문제가 제기되었지만 답변되지 않은 것으로 보입니다 acpi_index.

다음 udev을 사용하여 시스템에 대한 유사한 정보를 볼 수 있습니다 .

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


답변

VMware를 사용하십니까?

유닉스 Stackexchange 사이트는 질의 응답이 있었다 이것에 대해합니다. NIC에 대한 정보가 BIOS에서 제공되고있는 것 같습니다.

eth0다른 이름 으로 바꾸려면 udev를 사용하면됩니다. 여기에 편리한 가이드 가 있습니다.


답변