なぜ私の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」も表示さens33れます。実際、VMWare はインターフェイス名として取得されるVMを起動する場合があります。したがって、なぜeno16777736を選択するのかは不明です。しかし、16777736はから来てacpi_indexおり、33はPCIスロットから来ています。


:Red Hatのように見えますがRHEL7.3で彼らの側固定redhat.com/en/about/blog/...
ステファンLasiewski

回答:


30

en イーサネット用

o 機内用

16777736ファームウェア(BIOS / EFI)によって提供されるデバイスのインデックスです。インデックスを開始するのは論理的でした1。それか、賢明なファームウェアと1600万以上のオンボードデバイスを持っています!あなたは上の問題が提起(しかし、答えではない)見ているが、より可能性が高い、VMwareのコミュニティ -数が上の可能な負のオーバーフローから来ているようですacpi_index

次のコマンドを使用しudevて、システムの同様の情報を表示できます。

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

ハハ面白い。したがって、私のBIOSはVMWareです。奇妙なのは、VMWareがeno16777736を実行し、場合によってはens33を実行することです。それで、時々「オンボード」で、「ホットプラグ」ですか?奇妙な。16777736は4096 ^ 2に非常に近い
ドミトリーミンコフスキー

または、2 ^ 24。だから、多分それは...そこから始まる
ドミトリーMinkovsky

2
AHHですので、「acpi_index」です。どうもありがとうございました。その数字をどこかの出力で見たかったのです!その投稿のOPが彼が発行したコマンドを表示しないのは残念ですが、そのためにGoogleができると確信しています。ありがとう
ドミトリーミンコフスキー

9

VMwareを使用していますか?

UnixのStackexchangeサイトでは質問と答えていたこのことについては。NICに関する情報はBIOSによって提供されているように見えます。

eth0(または他の名前)に変更する場合は、udevを使用して変更できます。 そのための便利なガイド次に示します。


はい、VMWare。そして、ありがとう、あなたのリンクをチェックします!このシステムを実際に予測可能にするために、eth0に変更する必要はありません:D。私が持っていたens33のVMWareを使用して、例えば、あまりにも、。本当にそれがそれらの価値をどのように選び、そして私が自分自身にそれらに戻ることができるかを知りたい。
ドミトリーミンコフスキー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.