ฉันเห็น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 จะบู๊ต VM ที่ens33
เป็นชื่ออินเตอร์เฟส ดังนั้นจึงไม่มีความชัดเจนว่าทำไมเวลาอื่นจึงเลือก eno16777736 แต่ 16777736 มาจากacpi_index
และ 33 มาจากสล็อต PCI