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-tool
ethtool
イーサネットインターフェイスのリンクステータスに関する情報をより安定して提供する必要があります(おそらく)ip l l
。