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之外,我可以读取该目录中的每个文件。
有人能解释这到底是怎么回事吗?
发布于 2015-03-18 15:42:08
硬件/驱动程序存在一些问题,正如在这个LKML线程上解释的那样。引用回复邮件的一小部分:
原因是,大多数驱动程序甚至不会探测链接或协商链接速度和流量控制,直到设备被提出来。为了省电,许多人甚至在设备关机时不给PHY供电。所以你所观察到的行为是完全可以预料的。
即使你有链接(电缆连接),它也会提示你-EINVAL错误。电源管理配置也可能在已经插入和打开的接口上发出此错误。
mii-tool和ethtool应该更可靠地向您提供有关以太网接口(可能是ip l l)的链路状态的信息。
https://unix.stackexchange.com/questions/190967
复制相似问题