재부팅 시 /sys/bus/platform/devices의 폴더 계층 구조가 변경되는 이유는 무엇입니까?

재부팅 시 /sys/bus/platform/devices의 폴더 계층 구조가 변경되는 이유는 무엇입니까?

저는 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. "좋아요" 그래서 대신 .conkyrchwmon4.

그런데 다시 재부팅하니 또 고장이 나더라구요!

coretemp.0/hwmon장치 아래에 항상 동일한 폴더 계층 구조를 갖도록 하는 방법이 있습니까 ?

답변1

/sys/class/hwmon/Symlink는 모듈이 로드되는 순서에 따라 생성되는 것으로 보입니다. 이를 블랙리스트에 추가한 다음 다음에 지정된 원하는 순서로 수동으로 로드하여 이를 강제할 수 있습니다.이 게시물.

하지만 conky는 hwmon실제로 장치 이름을 허용하므로 직접 사용할 수 있습니다!

${hwmon 5 temp 1}예 를 들어 ${hwmon coretemp temp 1}.

그러면 현재 번호 > 이름 매핑이 아래에 나열됩니다.

for dir in /sys/class/hwmon/*; do echo -n "$dir: "; cat $dir/name; done

sensors장치 이름도 나열되지만 어댑터 이름과 결합됩니다.


hwmonconky 없이 (예: conky's ) 값에 액세스하려는 경우 해킹일 수 있습니다 execgraph. 신뢰할 수 있다고 보장할 수는 없지만 /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.

관련 정보