# [hddtemp]pour un usage utilisateur[Résolu en contournant]

## bivittatus

Salut à tous,

Je cherche ç afficher la température de mon HDD sur conky...pour celà, il y a la commande hddtemp qui le fait très bien...si ce n'est qu'il m'est impossible de lancer cette commande autrement qu'en root, sachant que mon conky est lancé en user...

```
toto@bivittatus ~ $hddtemp --help

-bash: hddtemp: command not found

```

```
root@bivittatus /home/toto #hddtemp --help

 Usage: hddtemp [OPTIONS] [TYPE:]DISK1 [[TYPE:]DISK2]...

   hddtemp displays the temperature of drives supplied in argument.

   Drives must support S.M.A.R.T.

  TYPE could be SATA, PATA or SCSI. If omitted hddtemp will try to guess.

  -b   --drivebase   :  display database file content that allow hddtemp to

                        recognize supported drives.

  -D   --debug       :  display various S.M.A.R.T. fields and their values.

                        Useful to find a value that seems to match the

                        temperature and/or to send me a report.

                        (done for every drive supplied).

  -d   --daemon      :  run hddtemp in TCP/IP daemon mode (port 7634 by default.)

  -f   --file=FILE   :  specify database file to use.

  -l   --listen=addr :  listen on a specific interface (in TCP/IP daemon mode).

  -n   --numeric     :  print only the temperature.

  -p   --port=#      :  port to listen to (in TCP/IP daemon mode).

  -s   --separator=C :  separator to use between fields (in TCP/IP daemon mode).

  -S   --syslog=s    :  log temperature to syslog every s seconds.

  -u   --unit=[C|F]  :  force output temperature either in Celius or Fahrenheit.

  -q   --quiet       :  do not check if the drive is supported.

  -v   --version     :  display hddtemp version number.

  -w   --wake-up     :  wake-up the drive if need.

  -4                 :  listen on IPv4 sockets only.

  -6                 :  listen on IPv6 sockets only.

Report bugs or new drives to <hddtemp@guzu.net>.

hddtemp version 0.3-beta15

root@bivittatus /home/toto #

```

Merci d'avance... :Wink: 

----------

## bivittatus

J'ai contourné le problème...je poste ça demain, je suis out là!!!  :Laughing: 

----------

## bivittatus

Pour ceux que ça intéresserait (et qui ne savent pas comment faire...heu...je suis peut-être tout seul dans ce cas...!!! :Laughing: ), voici donc la méthode pour obtenir la température de votre disque dur sur conky, en considérant que celui-ci est déjà installé bien entendu! :Wink: 

Il faut avant tout installer hddtemp et netcat:

```
# emerge hddtemp netcat
```

Ensuite, il faut éditer le fichier /etc/conf.d/hddtemp et y apporter les modifications suivantes:

```
# nano -w /etc/conf.d/hddtemp

# Copyright 1999-2006 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/app-admin/hddtemp/files/hddtemp-conf.d,v 1.3 2006$

# the hddtemp executable

HDDTEMP_EXEC=/usr/sbin/hddtemp

# various options to pass to the daemon

HDDTEMP_OPTS="-l 127.0.0.1"

# a list of drives to check

HDDTEMP_DRIVES="/dev/sda"            # Le ou les HDD dont vous souhaitez connaitre le température

SYSLOG="60"            # Le délai entre chaque "récuprération" de l'information concernant la température en secondes

```

Ensuite, il faut lancer le deamon hddtemp et surtout faire en sorte qu'il se lance automatiquement à chaque démarrage:

```
# /etc/init.d/hddtemp start

# rc-update add hddtemp default
```

Pour tester, vous pouvez lancer la commande suivante:

```
root@bivittatus /home/toto #hddtemp /dev/sda

/dev/sda: Maxtor 6Y160M0: 30°C

```

C'est là que netcat intervient. hddtemp n'est pas utilisable en user...et en règle générale, conky est lancé au démarrage d'une session qui (normalement) est, elle, en user justement...

En tapant la commande suivante en user, vous devez retrouver la même information que ci-dessus, mais présentée différemment. Voici ce que ça donne chez moi:

```
toto@bivittatus ~ $nc localhost 7634

|/dev/sda|Maxtor 6Y160M0|34|C|
```

Il ne reste plus qu'à demander à conky (en insérant la ligne suivante, adaptée à votre config dans le fichier ~/.conkyrc) d'aller chercher les deux chiffres indiquant la température dans cette chaîne de texte et de l'afficher à l'endroit voulu...chez moi, ça donne ça (avec l'info sur le hdd en même temps...je sais, j'aurais pu taper l'info en permanent mais bon... :Laughing: ):

```
${color #98c2c7}${exec nc localhost 7634 | cut -c11-24}:$color ${execi 60 nc localhost 7634 | cut -c26-27 ;}
```

Voilà...si ça peut au moins servir à une personne (autre que moi!!!)... :Wink: 

----------

## SiOu

Non tu n'es pas le seul qui veut voir sa température hdd sur conky , car moi aussi j'avais le meme probleme que toi :p

Merci pour ton threads il m'a bien aidé   :Wink: 

Edit => Petite question , jaii ajouté conky dans le lancement de gnome via système->preference->sessions , mais le probleme lors du démarrage de gnome conky s'affiche avant mon wallpaper , et ainsi quan dmon wallpaper s'affiche je ne vois plus conky ... comment résoudre cela ?

----------

## geekounet

 *SiOu wrote:*   

> Edit => Petite question , jaii ajouté conky dans le lancement de gnome via système->preference->sessions , mais le probleme lors du démarrage de gnome conky s'affiche avant mon wallpaper , et ainsi quan dmon wallpaper s'affiche je ne vois plus conky ... comment résoudre cela ?

 

C'est à cause de Nautilus qui se pose par dessus la root window. Pour régler ça :

```
own_window yes

own_window_transparent yes

own_window_type desktop
```

 :Wink: 

----------

## SnowBear

Je vais surement dire une bétise mais bon ^^.

Vous savez qu'il y a une fonction conky pour relever les températures ?

----------

## Poch

 *SnowBear wrote:*   

> 
> 
> Je vais surement dire une bétise mais bon ^^.
> 
> Vous savez qu'il y a une fonction conky pour relever les températures ?
> ...

 

Laquelle?

----------

## SnowBear

${hddtemp dev,(host,(port))}

http://conky.sourceforge.net/variables.html

A compiler avec le USE flag "hddtemp".

----------

## Poch

 *SnowBear wrote:*   

> ${hddtemp dev,(host,(port))}
> 
> http://conky.sourceforge.net/variables.html
> 
> A compiler avec le USE flag "hddtemp".
> ...

 En effet je viens de tomber dessus... C'est plus facile quand on sait ce qu'on cherche.

Merci bien.

----------

## mornik

Merci pour ce tips.

Par contre, si je puis me permettre, je remplacerai les cut par des awk comme suit :

```
${color #98c2c7}${exec nc localhost 7634 | awk -F\| '{print $3}'}:$color ${execi 60 nc localhost 7634 | awk -F\| '{print $4}' ;}
```

Ainsi, peux importe la taille du nom du disque ou sa température (imagine s'il fait plus de 99°  :Wink:    ) ton affichage sera correct.

----------

## Enlight

'une manière plus générale, quand c'est pour récupérer la sortie d'une quelqconque commande sur le même principe, je conseillerai plutôt d'utiliser un pipe plutot qu'un socket avec nc.

----------

## guilc

 *Enlight wrote:*   

> 'une manière plus générale, quand c'est pour récupérer la sortie d'une quelqconque commande sur le même principe, je conseillerai plutôt d'utiliser un pipe plutot qu'un socket avec nc.

 

Tu as mal lu la Enlight je crois  :Wink: 

Le problème est en fait que meme si tu mets ton user dans le groupe disk qui a les droits de lecture écriture sur device, tu reçois une jolie erreur :

```
$ hddtemp /dev/sda

/dev/sda: Permission non accordée
```

En fait, c'est parceque hddtemp utilise des ioctl dispos uniquement à l'utilisateur privilégié.

Le démon hddtemp permet lui d'envoyer les infos sur une socket. Il n'y a pas trop le choix de la méthode, pas de pipe utilisable, la socket est "imposée" par le démon hddtemp  :Wink: 

----------

## man in the hill

Salut,

Pour donner des droits à un user, il y a sudo pour ça ... 

en décommentant les lignes ds le fichier /etc/sudoers  (commande visudo)

```

...

# Same thing without a password

 %wheel ALL=(ALL)       NOPASSWD: ALL

# Samples

 %users  ALL=/bin/mount /cdrom,/bin/umount /cdrom, /usr/sbin/hddtemp

```

ensuite

```

heretiix@IRIA ~ $

 sudo hddtemp  /dev/hda

/dev/hda: Maxtor 6Y120P0: 51 C
```

----------

## SiOu

 *geekounet wrote:*   

>  *SiOu wrote:*   Edit => Petite question , jaii ajouté conky dans le lancement de gnome via système->preference->sessions , mais le probleme lors du démarrage de gnome conky s'affiche avant mon wallpaper , et ainsi quan dmon wallpaper s'affiche je ne vois plus conky ... comment résoudre cela ? 
> 
> C'est à cause de Nautilus qui se pose par dessus la root window. Pour régler ça :
> 
> ```
> ...

 

Oki merci sauf que maintenant il disparait des que je lance xchat , moizlla etc   :Rolling Eyes: 

----------

## Ezka

Ce que j'utilise pour conky sur gnome :

```
own_window yes

own_window_transparent yes

own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

own_window_type normal
```

----------

## bivittatus

Je n'avais pas vu que ce post était remonté à la surface!!!  :Laughing: 

Merci à tous pour vos petites idées, je vais tester tout ça dès que possible, on ne sait jamais!!!  :Wink: 

----------

## SiOu

 *Ezka wrote:*   

> Ce que j'utilise pour conky sur gnome :
> 
> ```
> own_window yes
> 
> ...

 

Merci maintenant cela fonctionne comme je veux !   :Laughing: 

----------

## Ezka

J' un problème avec conky et hddtemp. Conky me donne un joli " N/A "!

Pourtant j'ai lancer le demon avec le fichier de conf par defaut :

```
# the hddtemp executable

HDDTEMP_EXEC=/usr/sbin/hddtemp

# various options to pass to the daemon

HDDTEMP_OPTS="-l 127.0.0.1"

# a list of drives to check

HDDTEMP_DRIVES="/dev/sda /dev/sdb"
```

et j'obtient avec mon user :

```
ezka@Actis ~ $ telnet localhost 7634

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

|/dev/sda|Maxtor 6Y080P0|30|C||/dev/sdb|Maxtor 6Y080L0|27|C|Connection closed by foreign host.

```

Donc je serai assez enclin a croire  que le problème vient de konky   :Confused:  Je lui ai mis ceci pour qu'il récupère la t° :

```
${hddtemp /dev/sda,127.0.0.1,7634}
```

et tout ce que j'ai comme température c'est un joli N/A ! Grr !

Lancé sur un terminal je n'ai pas d'erreur ... rien !   :Sad: 

En plus il est compilé avec le flag hddtemp :

```
[ebuild   R   ] app-admin/conky-1.4.5  USE="X hddtemp ipv6 truetype -audacious (-bmpx) -mpd -vim-syntax" 0 kB
```

Es-ce que qu'elle marche chez vous cette variable de conky ?

NB : bon il a le flag ipv6 ... je sais pas d'où il me l'attrape mais je ne pense pas que le problème vienne de la.

----------

## SnowBear

Salut,

j'ai du quelque peut modifier mon fichier de conf pout hddtemp afin que celà fonctionne :

```
HDDTEMP_OPTS="-l 127.0.0.1 -p 7634 -s |"
```

----------

## Ezka

Nop rien de mieux ... mais les options que tu mets sont celles par défaut du demon.

Enfin même avec tes réglages j'ai N/A et pas de message d'erreur.

Quand je n'active pas le démon j'ai une belle erreur :

```
connect: Connection refused
```

Donc il y a surement un soucis avec conky   :Rolling Eyes: 

----------

## SlaXX

Merci pour votre aide, ça marche impeccable chez moi  :Smile: 

----------

## geekounet

Tu fais dans l'exhumation de topics SlaXX ?  :Smile: 

----------

## bivittatus

Ca prouve au moins qu'il utilise bien la fonction "recherhe"!!!  :Laughing:   :Wink: 

----------

## Scullder

J'avais fait un "chmod +s" pour utiliser hddtemp en user, un peu crade mais plus simple xD

----------

## loopx

Attend, "netcat" fait pareil que "sudo" ? 

Car dans ton cas, j'aurais utilisé "sudo", ca me parait plus simple :/

----------

## Scullder

 *loopx wrote:*   

> Attend, "netcat" fait pareil que "sudo" ? 
> 
> Car dans ton cas, j'aurais utilisé "sudo", ca me parait plus simple :/

 

Non pas du tout, netcat permet de communiquer par socket.

----------

## VisualStation

 *loopx wrote:*   

> Attend, "netcat" fait pareil que "sudo" ? 
> 
> Car dans ton cas, j'aurais utilisé "sudo", ca me parait plus simple :/

 

Non non !

Netact c'est juste du réseau et rien d'autre ...

----------

