我使用 conky 来显示我的 CPU 温度状态,总体来说我很满意,除了一件事:每次重新启动时,温度状态都会中断!
看看 conky 的 stderr 我看到了这个:
conky: can't open '/sys/bus/platform/devices/coretemp.0/hwmon/hwmon3/temp1_input': No such file or directory
“这很奇怪,”我想,“在我重新启动之前,它运行得很好。”
于是我进去一看/sys/bus/platform/devices/coretemp.0/hwmon
,发现原来被调用的文件夹hwmon3
现在被调用了hwmon4
。 “好吧”,所以我调整了 my.conkyrc
来代替hwmon4
。
但当我再次重启时,它又坏了!
有没有办法可以强制该coretemp.0/hwmon
设备下面始终具有相同的文件夹层次结构?
答案1
/sys/class/hwmon/
符号链接似乎是根据模块加载的顺序创建的,您可以通过将它们列入黑名单来强制执行,然后按照中指定的所需顺序手动加载它们这个帖子。
然而,conkyhwmon
实际上接受设备的名称,因此您可以直接使用它!
例如,${hwmon 5 temp 1}
我可以代替${hwmon coretemp temp 1}
.
然后下面会列出当前的号码>姓名映射:
for dir in /sys/class/hwmon/*; do echo -n "$dir: "; cat $dir/name; done
sensors
还列出了设备名称,但与适配器名称结合在一起。
如果您希望在没有 conky's 的情况下访问这些值hwmon
(例如,对于 conky's execgraph
),这可能是一个 hack,我不能保证它是可靠的,但是:/sys/class/hwmon/
符号链接到的所有目录中都有一个编号的 hwmon 文件夹似乎只有一个文件夹,因此您只需使用*
.
例如,我/sys/class/hwmon/hwmon5
链接到/sys/bus/platform/devices/coretemp.0/hwmon/hwmon5
,但其中没有其他目录,/sys/bus/platform/devices/coretemp.0/hwmon/
因此我可以仅使用 eg 访问值cat /sys/bus/platform/devices/coretemp.0/hwmon/*/temp1_input
。