Saya telah melihat http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ , yang menjelaskan alasan penamaan perangkat yang konsisten / dapat diprediksi, dan kemudian aturan yang digunakan nama perangkat dihasilkan :
* 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
Jadi katakanlah saya punya perangkat eno16777736
: mengapa disebut demikian? Ini kartu ethernet, saya mengerti. Tetapi bagaimana saya bisa kembali ke sisa nama antarmuka ini sendiri?
Saya memeriksa /sys/class/net/eno16777736
, dan melihat:
eno16777736 -> ../../devices/pci0000:00/0000:00:11.0/0000:02:01.0/net/eno16777736
Tidak yakin bagaimana menafsirkan ini, atau apakah saya dapat menggunakan informasi ini untuk sampai ke eno16777736
.
Memperbarui
Jadi 16777736
ini perangkatnya acpi_index
. Per https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-bus-pci :
What: /sys/bus/pci/devices/.../acpi_index
Date: July 2010
Contact: Narendra K <[email protected]>, [email protected]
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.
Dan memang:
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
Selanjutnya, untuk merekonsiliasi output dari ifconfig
atau ip link
dan perangkat Anda di 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
Perhatikan "interupsi perangkat 19". Dan dari lspci -v
, yang memiliki "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
Di sini Anda juga melihat "Slot Phyiscal 33", dan memang, kadang-kadang VMWare mem-boot VM yang mendapatkan ens33
nama antarmuka. Jadi, tidak jelas mengapa kali lain memilih eno16777736. Tetapi 16777736 berasal dari acpi_index
, dan 33 berasal dari slot PCI.
sumber
Jawaban:
en
untuk Etherneto
untuk onboard16777736
adalah indeks perangkat yang disediakan oleh firmware (BIOS / EFI). Akan logis untuk memulai indeks di1
. Entah itu, atau Anda memiliki firmware yang masuk akal dan lebih dari 16 juta perangkat terpasang! Tetapi lebih mungkin, Anda melihat masalah ini diangkat (tetapi tidak dijawab) di Komunitas VMware - tampaknya jumlahnya berasal dari kemungkinan luapan negatifacpi_index
.Anda dapat melihat info serupa dari
udev
sistem Anda dengan:sumber
Menggunakan VMware?
Situs Unix Stackexchange memiliki pertanyaan dan jawaban tentang ini. Tampaknya informasi tentang NIC disediakan oleh BIOS.
Jika Anda ingin mengubahnya ke
eth0
(atau nama lain), Anda dapat menggunakan udev untuk melakukannya. Berikut ini adalah panduan praktis untuk melakukannya.sumber
ens33
, misalnya, menggunakan VMWare. Benar-benar ingin tahu bagaimana ia mengambil nilai-nilai itu, dan bagaimana saya bisa kembali ke nilai itu sendiri.