[resolu]s2disk et hdparm

J’ai remarqué que les paramétrages hdpaerm après un s2disk étaient effacés. C’est ennuyeux pour l’histoire du parcage des têtes, visiblement le réglage par défaut parque beaucoup les têtes. Je ne connais pas bien s2disk et je vois pas ou mettre un script permettant de relancer hdparm après un resume. C’est poissible de bricoler en modifiant à la main l’initrd mais c’est un peu «crade» et guère moderne (hein matt).

Réponse à moi même, il suffit de mettre un fichier adéquat dans /etc/acpi/resume.d genre
/etc/acpi/resume.d/99hdparm.sh

Ah, bon! Et que devient le /etc/acpi/resume.d/90hdparm.sh qui est installé avec acpi-support (de Lenny et Sid; version 103.5, je crois) et qui c’est vrai est inefficace après une mise-en-veille?
Moi, j’ai une solution empirique et qui fonctionne: je débranche le secteur et le rebranche et plus de parcages intempestifs après une mise-en-veille!
Oui, OK! C’est pas beau, pas très “Debian” ni très scientifique mais ça fonctionne. Sur mon Dell Inspiron 1501 en Lenny, toujours bien. Mais pour le moment je n’ai rien trouvé d’autre.

Pas de fichier 90hdparm.sh chez moi…

J’ai rajouté une précision; c’est avec la version acpi-support 0.103.5 que cela s’installe.
Mais effectivement après un resume, c’est totalement inefficace chez moi; d’où l’astuce passage sous batterie puis retour.

Ouais ben vérification faite, ça ne marche pas, les scripts dans /etc/acpi/resume.d ne sont pas utilisés par s2disk, je vire le résolu et continue à chercher.

Bon, le seul script appelé après un s2disk est /etc/acpi/power.sh!!!
Aucun script sous /etc/init.d n’est appelé.
J’ai résolu le problème de la façon suivante.

  1. Rajout de
    /etc/init.d/perso
    au début de /etc/default/acpi-support, celui devient

[quote]#
/etc/init.d/perso

Comment the next line to disable ACPI suspend to RAM

ACPI_SLEEP=true

Comment the next line to disable suspend to disk

ACPI_HIBERNATE=true
[…]
[/quote]

  1. Le script /etc/init.d/perso contient

[quote]#!/bin/sh
/etc/init.d/hdparm restart
[/quote]

Le problème est réglé.

Ce que je n’ai toujours pas compris, c’est pourquoi sous *buntu quand tu mets le “ugly-fix” au emplacements dans lesquels se trouvent les 90hdparm.sh de l’installation de acpi-support 0.103.5 de Lenny ou Sid il n’y a pas de problème après une mise-en-veille ou en hibernation?
Peut-être faudrait-il comparer les paquets dans init.d et acpi-support? Mais je suis 100% Debian en ce moment (Desktop et laptop) et ne peux pas le faire. Peut-être en fin de semaine si je teste la nouvelle Gnewsense basée sur Hardy. L’actuelle basée sur Dapper ne veux rien connaître de mes ordinateurs.

Au pire les paramètres sont faits plusieurs fois, ça n’est pas gênant…

Ne fonctionne pas sur mon portable! Contrairement à mon débranche AC rebranche AC. Toujours bien pour la mise-en-veille (s2ram).

Bon voilà comment j’ai procédé:
Un fichier /tmp/trace.sh

#!/bin/sh cd /etc/acpi for f in `ls *.sh` ; do sed -e '1,$s|^#!\(.*/bin/.*sh.*\)$|#!\1\necho '$f' >> /var/tmp/SCRIPTS|' $f > /tmp/acpi/$f done chmod +x /tmp/acpi/* cd /etc/init.d for f in `ls` ; do sed -e '1,$s|^#!\(.*/bin/.*sh.*\)$|#!\1\necho '$f' >> /var/tmp/SCRIPTS|' $f > /tmp/init.d/$f done chmod +x /tmp/init.d/*

[code]$ mkdir /tmp/init.d
$ mkdir /tmp/acpi
$ sh /tmp/trace

mv /etc/init.d /etc/init.d.old

mv /tmp/init.d /etc

chown -R root.root /etc/init.d

cd /etc/acpi

mkdir OLD

mv *.sh OLD

mv /tmp/acpi/*.sh .

chown root.root *.sh

[/code]
puis un cycle «s2disk» et resume.
Tu regardes dans /var/tmp/SCRIPTS et tu as les scripts appelés au retour de s2disk. Pour remettre tout comme avant, tu fais

[code]# cd /etc

mv init.d init.d.new

mv init.d.old init.d

cd /etc/acpi

mkdir NEW

mv *.sh NEW

mv OLD/*.sh .

[/code]
Si tout marche bien, tu vires /etc/init.d.new, /etc/acpi/NEW et /etc/acpi/OLD (qui doit être vide). Après tu rajoutes les commandes dans le script appelé.

Là camarade, tu vois cela dépasse mes compétences.

Fonctionne sur Lenny

Disk Power Management
From openSUSE

Disk Power Management Configuration

Create a configuration file to management disk power management:

/etc/pm/config.d/disk

    [quote]# Configure disk power management settings to ensure both
    # long disk life and good power management.
    #
    # Space delimited list of disk devices this affects.
    #
    DEVICES_DISK_PM_NAMES="/dev/sda"
    #
    #
    # Power management modes
    #
    # Powersave mode off
    #  Disable APM and spin-down
    #
    DEVICES_DISK_PM_POWERSAVE_OFF="hdparm -q -B 255 -q -S 0"
    #
    # Powersave mode on
    # Enable APM to conservative 200 and set spin-down for 21 minutes
    #
    DEVICES_DISK_PM_POWERSAVE_ON="hdparm -q -B 200 -q -S 252"[/quote]

Note: Your laptop drive can get hot with no power management if you leave your laptop plugged in all the time. You may want to set DEVICES_DISK_PM_POWERSAVE_OFF to a large value, but not disabled completely. If you were going to do this, you might use something like: hdparm -q -B 254 -q -S 242

This means set the least power management, but not off, and spin down the disk after an hour.

Disk Power Management Script

Then create the power management script:

/etc/pm/power.d/disk

    [quote]#!/bin/bash
    . /usr/lib/pm-utils/functions
    . /etc/pm/config.d/disk

    if test -z "${DEVICES_DISK_PM_NAMES}"; then
            exit 1
    fi

    case "$1" in
            true)
                    echo "**enabled pm for harddisk"
                    for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do
                            ${DEVICES_DISK_PM_POWERSAVE_ON} ${DISK_NAME}
                    done ;;
            false)
                    echo "**disabled pm for harddisk"
                    for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do
                            ${DEVICES_DISK_PM_POWERSAVE_OFF} ${DISK_NAME}
                    done ;;
    esac

[/quote]
Make the script executable.

chmod +x /etc/pm/power.d/disk

Test the script

You can then test the set up by using the following commands:

pm-powersave true
hdparm -I /dev/sda | grep 'Advanced Power'

An asterisk next to 'Advanced Power Management feature set' means its enabled. Now try this:

pm-powersave false
hdparm -I /dev/sda | grep 'Advanced Power'

No asterisk means it's disabled.

These settings are immediately accessible to kpowersave or gnome-power-manager and are used by default when plugging in your power adapter or removing it on a laptop.
[b]Et pour que ça ne recommence pas après une mise-en-veille:[/b]
Suspend/Resume handling Script adopted based on Redhat Bugzilla Link:

disksr --> the script is created with a slight modification to adapt the one like suse script for handling suspend/resume and named disksr (sr stands for suspend resume), to be copied into /etc/pm/sleep.d/

create a file called disksr with the following contents

    [quote]#!/bin/bash
    . /usr/lib/pm-utils/functions
    . /etc/pm/config.d/disk


    if test -z ${DEVICES_DISK_PM_NAMES}; then
            exit 1
    fi

    case "$1" in
            hibernate|suspend)
                    echo "**enabled pm for harddisk"
                    for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do
                            ${DEVICES_DISK_PM_POWERSAVE_ON} ${DISK_NAME}
                    done ;;
            thaw|resume)
                    echo "**disabled pm for harddisk"
                    for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do
                            ${DEVICES_DISK_PM_POWERSAVE_OFF} ${DISK_NAME}
                    done ;;
    esac

[/quote]
give the file executable permission, chmod +x disksr from the folder where the script is saved. Copy the script to /etc/pm/sleep.d/ using the following command

sudo cp disksr /etc/pm/sleep.d/
sudo chmod +x /etc/pm/sleep.d/disksr

[b][i]Tout cela fonctionne impeccablement sur mon Dell Inspiron AMD Turion 64x2 avec Ubuntu Hardy  et Debian Lenny amd64 dessus.[/i][/b]

Désolé pour le up mais je suis tombé complètement par hasard ici.

J’ai trouvé une solution via /etc/acpi/resum.d sur internet.

Mon fichier /tmp/99-hdd-spin-fix.sh.

#!/bin/sh\nhdparm -B 254 /dev/sda

Puis pour qu’il soit utilisé.

for i in start suspend resume; do sudo install /tmp/99-hdd-spin-fix.sh /etc/acpi/$i.d; done

J’ai trouvé ça ici :
julienpecqueur.com/tutoriaux/custo_ubuntu.html

Désolé pour le up :smt006

Regardes au début du fil, tu verras que j’ai essayé cette solution et que ça n’a pas marché. Les scripts ne sont pas ou son mal appelés. Cyrille à trouvé la solution la plus élégante, la mienne est une usine à gaz…:
http://forum.debian-fr.org/viewtopic.php?f=3&t=17182