cat:読み取りエラー:/sys/class/net/eth0/phys_*操作はサポートされていません。

cat:読み取りエラー:/sys/class/net/eth0/phys_*操作はサポートされていません。

phys_Kernel 6.4.0とBusyboxを使用してシステムをカスタマイズしましたが、なぜ同じフォルダ内の別のファイルにアクセスできるのかで始まる3つのファイルにアクセスできないのかわかりません。

# pwd
/sys/class/net/eth0
# ls
addr_assign_type      carrier_up_count      gro_flush_timeout     napi_defer_hard_irqs  proto_down            tx_queue_len
addr_len              dev_id                ifalias               netdev_group          queues                type
address               dev_port              ifindex               operstate             speed                 uevent
broadcast             device                iflink                phys_port_id          statistics
carrier               dormant               link_mode             phys_port_name        subsystem
carrier_changes       duplex                mtu                   phys_switch_id        testing
carrier_down_count    flags                 name_assign_type      power                 threaded
#
#
#
# cat dev_
dev_id    dev_port
# cat dev_port
0
# cat phys_port_id
cat: read error: Operation not supported
#
# ls -lt dev_port
-r--r--r--    1 root     root          4096 Oct 27 14:50 dev_port
# ls -lt phys_port_id
-r--r--r--    1 root     root          4096 Oct 27 15:36 phys_port_id

答え1

ファイルの内容は、phys_port_id(プロセスがファイルを読み取るとき)次のように要求されます。phys_port_id_show()機能Linuxカーネルから。

EOPNOTSUPPネットワークインタフェースのドライバがアクションを実装していない場合は、を返すことがわかりますndo_get_phys_port_idndo_get_phys_port_idディレクトリを見ると、それをdrivers/net/ethernet実装するイーサネットドライバ(Broadcom bnx2x、Intel i40eなど)があまりないことがわかります(おそらくその情報を提供するEthernetハードウェアデバイスはあまりありません)。@ChrisDaviesの詳細複数のポートを持つNICにのみ適用されます。

eth0次の方法でイーサネットデバイスを駆動するドライバについて学びます。

readlink /sys/class/net/eth0/device/driver

またはあなたのbusyboxバージョンでアプレットが有効になっていないls -l /sys/class/net/eth0/device/driver場合。readlink

答え2

以下のファイルのうち、/sys実際のファイルはありません。すべてカーネルに保持される値を表現したものです。

/sys/class/netこれらのリストは以下で確認できます。https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net

phys_port_idand の関連部分はphys_port_name次のとおりです。

What:     /sys/class/net/<iface>/phys_port_id
Date:     July 2013
KernelVersion:    3.12
Contact:  [email protected]
Description:
      Indicates the interface unique physical port identifier within
      the NIC, as a string.

What:     /sys/class/net/<iface>/phys_port_name
Date:     March 2015
KernelVersion:    4.0
Contact:  [email protected]
Description:
      Indicates the interface physical port name within the NIC,
      as a string.

上記のように、これら2つの値は複数のポートを持つカードの物理ポート識別を提供します(たとえば、「4-port NIC」の検索)。

関連情報