Le piDrive (western digital) connecté à mon Raspberry bipe de façon aléatoire.

Dans un précédent article, je vous parlais de la raison pour laquelle j’ai installé le système de mon Jeedom sur un disque dur physique plutôt que sur la SD. Tout se passait bien jusqu’à aujourd’hui. Le disque dur se met à émettre des « bips » de façon aléatoire.

Les raisons possibles

Après avoir fouillé un peu partout sur le web voici les raisons possibles:

  1. Le disque dur est endommagé
  2. Le disque dur n’est pas assez alimenté.
  3. Cela peut arriver quand le disque dur via le power management passe souvent du mode « sleep » au mode « actif »

Mes résolutions.

Disque dur endommagé?

Commençons par le problème de DD endommagé. J’avoue que ce n’est pas le problème que je préfère.

Pour vérifier un peu l’état de mon disque, je commence par chercher s’il y a des blocks corrompus:

$>sudo badblocks -v /dev/sda1
$> sudo badblocks -v /dev/sda1
Checking blocks 0 to 4194303
Checking for bad blocks (read-only test):done
Pass completed, 0 bad blocks found. (0/0/0 errors)

Idem pour la partition /dev/sda2

Rien non plus en executant dmesg ni dans les fichiers /var/log/kern.log et /var/log/syslog

$> sudo less /var/log/syslog
...
$> sudo less /var/log/kern.log

Le disque dur à l’air OK.

Disque dur pas assez alimenté?

Il faut d’abord être sûr que le disque dur est bien alimenté. De mon côté j’ai pris le kit d’alimentation qui est vendu par Western Digital:

pidrive fig1sm

Avec une alimentation 2A qui est normalement suffisante : http://wdlabs.wd.com/products/raspberry-pi-accessories/#pidrive_cable_kit

C’est largement suffisant, comme on le voit sur l’image ci-dessus, le disque dur est directement alimenté par le bloc secteur. Mais pour être bien sûr, je vais un peu augmenter la puissance délivré par les ports USB (voir https://www.reddit.com/r/raspberry_pi/comments/3i84t8/ext_hdd_beeps_when_connected_to_pi/)

il s’agit d’éditer le fichier /boot/config.txt. Il faudra redémarrer par la suite. Je commence par regarder le contenu de ce fichier :

$> more /boot/config.txt
device_tree=

puis je vais le modifier pour ajouter

max_usb_current=1

Mon fichier contient maintenant

$> more /boot/config.txt
max_usb_current=1
device_tree=

Cela signifie que les ports USB peuvent maintenant délivrer jusqu’à 1A

Cela peut arriver quand le disque change de mode de gestion d’énergie.

Dernière possibilité! Pour cela la solution est là : https://community.wd.com/t/pidrive-314gb-random-beeps/169023/7

Le mieux est de désactiver le mode Advanced Power Management de mon disque dur. Avant de le désactiver je regarde son état en installant la commande hdparm

$> sudo apt-get install hdparm

Puis je regarde le mode utilisé pour mon disque dur:

$> sudo hdparm -B /dev/sda

/dev/sda:
APM_level = 128

et enfin je désactive le Advanced Power Management

$> sudo hdparm -B 255 /dev/sda

/dev/sda:
setting Advanced Power Management level to disabled
SG_IO: bad/missing sense data, sb[]:70 00 01 00 00 00 00 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
APM_level = off

Une petite vérification:

$> sudo hdparm -B /dev/sda

/dev/sda:
APM_level = 254

et voilà, c’est bon, c’est fini.

Reboot du système

Il me reste maintenant à rebooter le tout, mais avant, je vais demander un fdisk pour être sûr qu’il n’y a pas de problème caché sur mon disque dur. (voir http://www.cyberciti.biz/faq/linux-force-fsck-on-the-next-reboot-or-boot-sequence/)

Il suffit pour cela de créer un fichier à la racine du système de fichier:

$> sudo touch /forcefsck
$> sudo reboot

Ce fichier sera automatiquement supprimé après le fsck au reboot.

Conclusion

Pour être bien sur que tout va bien:

  1. Vérifier l’état du disque dur
  2. Vérifier qu’il est bien alimenté
  3. Désactiver le Advanced Power Management

 

Je vous donne rendez-vous dans quelques jours pour savoir si le disque bipe toujours.

4 thoughts on “Le piDrive (western digital) connecté à mon Raspberry bipe de façon aléatoire.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *