Portál AbcLinuxu, 24. dubna 2024 09:31


Dotaz: C/C++ - Zjištění teploty pevného disku

Jan Šimek avatar 26.7.2015 17:53 Jan Šimek | skóre: 7
C/C++ - Zjištění teploty pevného disku
Přečteno: 640×
Odpovědět | Admin
Potřeboval bych zjistit aktuální teplotu HDD bez práv roota pomocí C/C++. Pokud jsem dobře hledal, tak to nelze v linuxu zjistit (ani /proc/...) jinak než přímo skrz rozhraní S.M.A.R.T.

Našel jsem knihovnu libatasmart, která mi umožní naprosto vše, co potřebuji, ale jen pokud program spustím jako root, protože normální uživatel nemá právo číst zařízení /dev/*

Nějaké nápady?

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.7.2015 19:12 chrono
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Programy to často obchádzajú tak, že použijú hddtemp démona (ten síce musí bežať ako root, program využívajúci jeho služby ale môže bežať pod akýmkoľvek používateľom).
27.7.2015 01:23 Sten
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Odpovědět | | Sbalit | Link | Blokovat | Admin
smartd sleduje (mimo jiné) teplotu disku a jde nastavit, aby při každé změně teploty spustil určitý program (-M příkaz). Ten pak může aktuální teploty třeba uložit do souboru nebo signalizovat přes D-Bus.
29.7.2015 19:49 Jindřich Makovička | skóre: 17
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Např. na Debianu ty hodnoty standardně ukládá do /var/lib/smartmontools .
30.7.2015 01:41 2X4B-523P | skóre: 38 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
coz je take citelne by user, alespon na Debianu mi to tak take funguje
27.7.2015 12:39 2X4B-523P | skóre: 38 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Odpovědět | | Sbalit | Link | Blokovat | Admin
nebo pouzit logovani teploty, jako se to dela pro conky

http://ubuntuforums.org/showthread.php?t=282353

nezkousel jsem...
30.7.2015 01:34 2X4B-523P | skóre: 38 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
tak mi to nedalo a nainstaloval jsem hddtemp, nastavil jsem v hddtemp.conf logovani a pozadovany interval v sekundach a normalne jako uzivatel spustim nc localhost 7634 a vypise mi to |/dev/sda|WDC WDXXXXXXXX-XXXXX|38|C|

zadne nastavovani skupin nebo podobne jsem nedelal a hddtemp muze spoustet pouze root...

ale nekdo to rad horke :-D
27.7.2015 13:18 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nedaji se na tohle pouzit capabilities?
Řešení 1× (Jan Šimek (tazatel))
27.7.2015 15:01 Sten
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Capabilities asi ne, ale skupiny na to použít jdou.
27.7.2015 17:33 R
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Ale pravo zapisu na blokove zariadenie je bezpecnostna diera.
27.7.2015 17:35 R
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Vlastne nielen zapisu, aj citanie umoznuje obist vsetky bezpecnostne mechanizmy OS.
28.7.2015 15:32 Sten
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Je to možná bezpečnostní díra. Záleží, jestli ten program bude mít bezpečnostní díru. Ale to je i u smartd a jím spouštěných skriptů.
Jan Šimek avatar 29.7.2015 22:42 Jan Šimek | skóre: 7
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
Není to zrovna řešení, jaké jsem si představoval, ale asi fakt nic lepšího/jednoduššího už nenajdu.
30.7.2015 01:56 2X4B-523P | skóre: 38 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: C/C++ - Zjištění teploty pevného disku
vlastne proc jednoduse?

proc si nenapsat jaderny modul, co to ze syslogu precte a posle do dmesg, vzdy kdyz se zavede pomoci cronu?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.