sysfs から読み込むと EINVAL が返されます。

sysfs から読み込むと EINVAL が返されます。
box101:~ # cat /sys/class/net/eno1/carrier
cat: /sys/class/net/eno1/carrier: Invalid argument

何… … ?わかりました、それでは何とstrace言いますか?

...
open("/sys/class/net/eno1/carrier", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
fadvise64(3, 0, 0, POSIX_FADV_SEQUENTIAL) = 0
read(3, 0x19c8000, 65536) = -1 EINVAL (Invalid argument)
...

明らかに言えば、ファイルは完全に開かれますが、内容を読むのにエラーが発生しますか?

さらに迷惑なのは、box103でも同じコマンドが実行されることです。完全に動作! box101では、そのディレクトリ内のすべてのファイルを読み取ることができます。とは別に carrier

誰でもそれが何であるかを説明できますか?地獄どうなりますか?

ベストアンサー1

上記のハードウェア/ドライバにはいくつかの問題があります。このLKMLワイヤー。返信メールの一部を引用してください。

その理由は、ほとんどのドライバがデバイスが起動するまでリンクを調べたり、リンク速度とフロー制御を交渉したりしないためです。電力を節約するために、多くの人はデバイスがオフになっているときにPHYに電力を供給することもありません。

したがって、観察された動作は完全に予想されます。

リンク(ケーブル接続)があっても-EINVALエラーメッセージが表示されます。電源管理構成のために接続され、オンになっているインターフェイスでもこのエラーが発生する可能性があります。

mii-toolethtoolイーサネットインターフェイスのリンクステータスに関する情報をより安定して提供する必要があります(おそらく)ip l l

おすすめ記事