Neden eth0'ım eno16777736 olarak adlandırılıyor?


27

Gördüğüm http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ , tutarlı / öngörülebilir cihaz adlandırma için gerekçe ve sonra tanımlayan cihaz adları oluşturulur sağlayan kurallar :

 * 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

Diyelim ki cihazım var eno16777736: neden buna denir? Bu bir ethernet kartı, anladım. Ama bu arayüzün adının geri kalanına kendim nasıl dönebilirim?

İnceledim /sys/class/net/eno16777736ve gördüm:

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

Bunu nasıl yorumlayacağımı ya da ulaşmak için bu bilgiyi kullanıp kullanamadığımdan emin değilim eno16777736.

Güncelleştirme

Yani 16777736cihaz bu acpi_index. Başına 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.

Ve gerçekten:

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

Ayrıca, cihazlarınızdan ifconfigveya ip linkcihazlarınızdan çıktıları uzlaştırmak için 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 

"Cihaz kesintisi 19" a dikkat edin. Ve lspci -v"IRQ 19" 'dan olan:

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

Burada ayrıca "Phyiscal Slot 33" ü görüyorsunuz ve gerçekten de, bazen VMWare ens33arayüz adı olarak alınan VM'leri önyükliyor . Yani, neden diğer zamanlarda eno16777736 seçtiği belli değil. Ancak 16777736 acpi_index, bilgisayardan ve 33'ü de PCI yuvasından geliyor.


Red Hat RHEL7.3'te kendi tarafını düzeltti gibi görünüyor: redhat.com/en/about/blog/…
Stefan Lasiewski

Yanıtlar:


30

en Ethernet için

o teknede için

16777736cihaz yazılımı tarafından sağlanan cihazın endeksidir (BIOS / EFI). Dizini başlatmak için mantıklı olurdu 1. Ya öyle ya da mantıklı bir ürün yazılımına ve 16 milyondan fazla onboard cihazına sahipsin! Ancak daha büyük olasılıkla, VMware Community'de sorunun gündeme geldiğini (ancak yanıtlanmadığını) görüyorsunuz - bu sayının olası bir olumsuz taşma durumundan kaynaklandığı görülüyor acpi_index.

udevSisteminiz için benzer bilgileri şunlarla görüntüleyebilirsiniz :

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

Haha ilginç. Bu yüzden BIOS'um VMWare. Tuhaf olan, bazen VMWare’in eno16777736 ve bazen de ens33. Yani bazen "gemide" ve bazen de "sıcak fiş" var. Tuhaf. 16777736, 4096 ^ 2'ye çok yakındır
Dmitry Minkovsky

Veya, 2 ^ 24. Yani belki oradan başlıyor ...
Dmitry Minkovsky

2
AHH bu yüzden "acpi_index". Çok teşekkür ederim. Gerçekten bu sayıyı bazı çıktılarda bir yerde görmek istedim! Bu yazıdaki OP’nin verdiği komutu göstermemesi çok utanç verici, ancak bunun için Google’ı yapabileceğime eminim. Teşekkür ederim
Dmitry Minkovsky

9

VMware kullanıyor musunuz?

Unix Stack Exchange site bir soru-cevap vardı bu konuda. NIC hakkındaki bilgilerin BIOS tarafından sağlandığı görülüyor.

Eğer eth0(veya başka bir isim) olarak değiştirmek istiyorsanız, udev kullanabilirsiniz. İşte bunu yapmak için kullanışlı bir rehber .


Evet, VMWare. Ve teşekkürler, bağlantılarınızı kontrol edeceğim! Bu sistemin benim için gerçekten öngörülebilir olmasını istediğim için onu eth0 olarak değiştirmeye ihtiyacım yok: D. Ben de ens33örneğin VMWare kullanıyordum. Gerçekten bu değerleri nasıl seçtiğini ve kendime nasıl geri dönebileceğimi bilmek istiyorum.
Dmitry Minkovsky
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.