Conky – temperatura dysku twardego, karty graficznej i procesora

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Kolejny z serii artykułów o Conky. Tym razem opiszę sposób, dzięki któremu dodasz do swojego Conky skrypty wyświetlające temperaturę karty graficznej, dysku twardego i procesora.

Karta graficzna:
Karty z rodziny nVidia:
1. Na początek zainstaluj pakiet nvidia-settings:

sudo apt-get install nvidia-settings

2. Stwórz plik ze skryptem:

gedit conky/nvidia

3. I umieść w nim poniższy kod:

#!/bin/bash

GPU_temp="$(DISPLAY=":0.0" nvidia-settings -q gpucoretemp | sed '/Attribute/!d;{s/.*): //;s/.//}' 2>/dev/null)"
echo $GPU_temp

4. Zapisz plik (CTRL+S), przejdź do katalogu conky i ustaw prawo do wykonywania pliku nvidia jako program:

cd conky && chmod a+x nvidia

5. Zajmij się edycją pliku .conkyrc:

gedit ~/.conkyrc

6. W miejscu, w którym chcesz wyświetlić temperaturę wklej kod:

${execi 60 ~/conky/nvidia}

gdzie execi 60 to czas w sekundach, po którym zostanie uaktualniona temperatura.


Dysk twardy:

1. Zainstaluj pakiet potrzebny do odczytania temperatury dysku twardego. Otwórz terminal (Aplikacje > Akcesoria > Terminal) i wydaj polecenie:

sudo apt-get install hddtemp

2. Skonfiguruj go – na wszystkie pytania odpowiedz twierdząco – wciskając ENTER.

3. Teraz wpisz w terminalu:

nc localhost 7634

4. Powinno ukazać Ci się coś podobnego do tego – wszystko zależy od modelu dysku:

|/dev/sda|SAMSUNG HD160JJ|44|C|

5. Jest to jednak trochę nieczytelne. Usuń zbędny kod wydając polecenie:

nc localhost 7634 | cut -d'|' -f4

Teraz wynikiem jest sama liczba, która jest temperaturą Twojego dysku.

6. Stwórz plik konfiguracyjny o nazwie hddtemp:

gedit conky/hddtemp

7. Wklej do niego poniższy kod:

#!/bin/bash

echo "$(nc localhost 7634 | cut -d'|' -f4)"

8. Zapisz plik (CTRL+S) i nadaj mu prawa do wykonywania go jako program:

cd conky && chmod a+x hddtemp

9. Teraz edycja pliku .conkyrc:

gedit ~/.conkyrc

10. W miejscu, w którym chcesz wyświetlić temperaturę wklej kod:

${execi 60 ~/conky/hddtemp}

gdzie execi 60 to czas w sekundach, po którym zostanie uaktualniona temperatura.


Procesor:

1. Na początek zainstaluj odpowiednie „sensory”, które odczytają temperaturę:

sudo apt-get install lm-sensors lm-sensors-source

2. Wydaj polecenie:

sudo sensors-detect

Na pojawiające się pytania możesz odpowiadać standardowo, czyli ENTERem. Możliwe, iż będzie potrzebne ponowne uruchomienie komputera.

3. Wydaj polecenie:

sensors

Na ekranie powinieneś zobaczyć wiele, wiele informacji dotyczących m.in. temperatury procesora:

temp1:       +35.0°C (pierwszy rdzeń)
temp2:       +35.5°C (drugi rdzeń)

Teraz pora przenieść do do Conky.

4. Wyedytuj plik .conkyrc:

gedit ~/.conkyrc

i w miejscu, w którym chcesz wyświetlić temperatury procesora wpisz:

${hwmon temp 1}
${hwmon temp 2}

Gotowe :)

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • Kris

    A jak postępować gdy się ma 2 dyski

  • http://ubuntu-pomoc.org Szmitas

    Po wykonaniu punktu 3. nie zobaczyłeś czegoś takiego:
    |/dev/sda|NAZWA DYSKU|44|C|
    |/dev/sdb|NAZWA DYSKU|44|C|
    ?

  • Moses

    ja nie mogę zainstalować lm-sensors-source :/

  • http://ubuntu-pomoc.org Szmitas

    Jakiś komunikat otrzymujesz?

  • desant87

    @Mouses zainstaluj tak jak ja samo
    sudo apt-get install lm-sensors
    i wystarczy.

  • linus

    Nie mogę zainstalowac pakietu lm sensor-source,pojawia sie to:

    Czytanie list pakietów… Gotowe
    Budowanie drzewa zależności
    Odczyt informacji o stanie… Gotowe
    Pakiet lm nie ma dostępnej wersji, ale odnosi się do niego inny pakiet.
    Zazwyczaj oznacza to, że pakietu brakuje, został zastąpiony przez inny
    pakiet lub nie jest dostępny przy pomocy obecnie ustawionych źródeł.
    Jednak następujące pakiety go zastępują:
    lmodern
    E: Pakiet lm nie ma kandydata do insta

  • http://ubuntu-pomoc.org Szmitas

    Desant87 napisał co zrobił, aby działało. Zastosuj się do tego.

  • linus

    Ale mi nawet tak jak Desant87 napisał nie działa:(

  • http://ubuntu-pomoc.org Szmitas

    A repozytoria aktualne i odpowiednie do Twojej wersji systemu są?

  • linus

    Ok pakiet sie zainstalował ale po ponownym uruchomieniu gdy wklepe ‚sensor’
    wyskakuje takie coś ,nie znaleziono czujniku

    No sensors found!
    Make sure you loaded all the kernel drivers you need.
    Try sensors-detect to find out which these are.

  • http://ubuntu-pomoc.org Szmitas

    Zastosuj się do tego, co sugeruje Ci terminal:

    Try sensors-detect to find out which these are.
  • caliber79

    Problem w wyświetleniem właściwej temperatury GPU.

    Odnośnie wyświetlania temperatury GPU polecenie:
    nvidia-settings -q gpucoretemp

    daje następujący wynik:
    Attribute ‚GPUCoreTemp’ (MiG-29:0.0): 79.

    ‚GPUCoreTemp’ is an integer attribute.

    ‚GPUCoreTemp’ is a read-only attribute.

    ‚GPUCoreTemp’ can use the following target types: X Screen, GPU.

    Po dodaniu do Conky skrypu „wyciągającego” wartość temperatury wyświtlany wynik to:
    9.

    Pytanie: jak zmodyfikować skrypt aby wyświetlał prawidłową wartość 79?

  • http://www.ubuntu-pomoc.org Szmitas

    Proszę użyć całego polecenia, a nie tylko jego części:

    nvidia-settings -q gpucoretemp | sed '/Attribute/!d;{s/.*): //;s/.//}'

    A najlepiej podanego skryptu.

  • caliber79

    To właśnie ten skrypt daje niepełną wartość 9. (dziewięć kropka).
    Nie znam Stream EDitor’a aby zmodyfikować podany skrypt ale wymyśliłem sobie coś takiego:

    nvidia-settings -q gpucoretemp | grep „Attribute” | cut –bytes=40-42

    komendy cut też nie nam ale udało się „wyciąć” z całości bajty które potrzebuję i mam już wartość 79 której szukałem.

  • Pawcik

    Witam jak zmmniejszyć temperature dysku nie ma opisu a moja temperatura dysku wacha się od 37- 51 stopni C czy nie mam sie w tym wypadku niczym martwic ? przynamniej tak wykazywał wynik temperatury w konsoli moje gg 5225456 pozdrawiam.

  • http://www.ubuntu-pomoc.org Szmitas

    Jeśli komputer stacjonarny – wyczyścić dokładnie, zamontować dodatkowe chłodzenie.
    Ale podana przez Ciebie temperatura nie jest ekstremalnie wysoka.

  • knezmej

    do caliber79
    poradziłem sobie i z twoim problemem , metodą prób i błędów, zamieniając:
    nvidia-settings -q gpucoretemp | sed ‚/Attribute/!d;{s/.*): //;s/.//}’
    na
    nvidia-settings -q gpucoretemp | sed ‚/Attribute/!d;{s/.*): //;s//./}’

  • http://zelo.pl Zelo

    Zamiast czegoś takiego:
    nvidia-settings -q gpucoretemp | sed ‚/Attribute/!d;{s/.*): //;s//./}’
    wystarczy:
    nvidia-settings -q gpucoretemp -t

    A poniżej dowód :)
    zelo@x:/proc/acpi/ibm$ nvidia-settings -q gpucoretemp -t
    49
    zelo@x:/proc/acpi/ibm$

    BTW.Ten komentarz został uznany za spam :( Dopiero po zmianie maila zadziałało.

    • Szmitas

      A komentarze z wulgaryzmami (których nie brakowało w Twoim adresie e-mail) również trafiają do moderacji :]

      • http://zelo.pl Zelo

        Wpisałem mój normalny mail i stwierdziło, że jestem spamerem więc wpisałem kolejny mail który jest poprawny i został przyjęty. Po za tym mail nie jest publicznie widoczny więc nie widzę problemu :).

        • Szmitas

          No nie, ale trafił do moderacji ze względu na treść ;)

          • http://zelo.pl Zelo

            OK. Na przyszłość będę pamiętał :).

  • PDK

    Wszystko wykonywałem zgodnie z instrukcją (z lekką różnicą, że zainstalowałem tylko lm-sensors, zgodnie z radą desant87, ponieważ s-source nie można było odnaleźć). Po detekcji i wydaniu polecenia sensors wyświetla:

    sensors
    acpitz-virtual-0
    Adapter: Virtual device
    temp1: +46.0°C (crit = +101.0°C)

    Tylko problem polega na tym że procesor(Intel Core 2 Duo) jest 2-rdzeniowy, a nie jedno rdzeniowy. Wyświetlenie temperatury w Conky również działa dla 1 rdzenia.

  • PDK

    Udało się rozwiązać powyższy problem, nie moge natomiast ustawić temperatur Core 0 i 1 w Conky. Jak musi wyglądać polecenie? ( ${hwmon temp 0}, ${hwmon temp0}, ${hwmon core 0} niestety nie działają)

    acpitz-virtual-0
    Adapter: Virtual device
    temp1: +45.0°C (crit = +101.0°C)

    coretemp-isa-0000
    Adapter: ISA adapter
    Core 0: +39.0°C (high = +90.0°C, crit = +90.0°C)
    Core 1: +39.0°C (high = +90.0°C, crit = +90.0°C)

  • pan_zabka

    Robiłem doładnie wg. instrukcji i wszystko działa prócz temp. nVidii. Conky nie pokazuje nic.

    • ss

      A mi wyswietla nie mozna odnalezc pliku /home/mss/conky/nvidia przy próbie zapisu

      #!/bin/bash

      GPU_temp=”$(DISPLAY=”:0.0″ nvidia-settings -q gpucoretemp | sed ‚/Attribute/!d;{s/.*): //;s/.//}’ 2>/dev/null)”
      echo $GPU_temp

  • arek

    Po próbie wykonania w konsoli proponowanego skryptu temperatury nvidii wyskakuje że nie ma takiego atrybutu :
    bash: !d: event not found Czy to skrypt czy może sterowniki nie nvidii

  • arek

    A co jeżeli polecenie sensors daje taki odczyt:

    coretemp-isa-0000

    Adapter: ISA adapter

    Core 0: +42.0°C (high = +83.0°C, crit = +99.0°C)

    Core 1: +40.0°C (high = +83.0°C, crit = +99.0°C)

    Core 2: +40.0°C (high = +83.0°C, crit = +99.0°C)

    Core 3: +42.0°C (high = +83.0°C, crit = +99.0°C)