# [Noyau] Pbm arrêt disque dur

## arlequin

Bien le bonjour,

j'ai un petit soucis avec le disque dur de mon portable. Lorsque j'éteint mon portable (shutdown), le disque dur n'est pas arrêté correctement (power off). Du coups, il s'éteint en poussant un cri de désespoir.

C'est pas que je m'inquiète, mais à force il va finir par plus aimer.

Le disque sur :

```
ata1.00: ATA-7, max UDMA/100, 153356490 sectors: LBA48 NCQ (depth 0/32)

ata1.00: ata1: dev 0 multi count 8

ata1.00: configured for UDMA/100

  Vendor: ATA       Model: Hitachi HTS54108  Rev: MB4O

  Type:   Direct-Access                      ANSI SCSI revision: 05
```

Le contrôleur :

```
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 01)
```

Je n'ai compilé que le support SATA dans le noyau (pas de support pour le PATA) :

```
CONFIG_SCSI_SATA=y

CONFIG_SCSI_SATA_AHCI=y
```

J'ai testé avec plusieurs noyaux différents, en activant l'ACPI et/ou l'APM. Rien n'y change.

J'ai également testé avec le dernier LiveCD de Knoppix... et là ça fonctionne. Le disque dur est correctement éteint avant l'extinction de la machine (donc, il me reste une lueur d'espoir).

Si quelqu'un a une idée...

----------

## Magic Banana

À ma connaissance il ne s'agit que d'une option à mettre dans le noyau. À quoi ressemble ta configuration pour ce qui est de l'ACPI ?

----------

## arlequin

J'ai activé tout ce qui me semblait important :

```
CONFIG_ACPI=y

CONFIG_ACPI_SLEEP=y

CONFIG_ACPI_SLEEP_PROC_FS=y

CONFIG_ACPI_SLEEP_PROC_SLEEP=y

CONFIG_ACPI_AC=y

CONFIG_ACPI_BATTERY=y

CONFIG_ACPI_BUTTON=y

CONFIG_ACPI_VIDEO=y

CONFIG_ACPI_HOTKEY=y

CONFIG_ACPI_FAN=y

CONFIG_ACPI_PROCESSOR=y

CONFIG_ACPI_HOTPLUG_CPU=y

CONFIG_ACPI_THERMAL=y

CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y

CONFIG_ACPI_SYSTEM=y

CONFIG_ACPI_CONTAINER=y

CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y

CONFIG_X86_ACPI_CPUFREQ_PROC_INTF=y

CONFIG_PNPACPI=y
```

----------

## Magic Banana

Bon. Déjà certaines options n'étant pas supportées par certains BIOS, essaie de ne garder que "CONFIG_ACPI_BUTTON=y" et de metre le reste à "n".

Si cela ne fonctionne pas c'est que le problème est plus compliqué. Cette commande pourrait nous aider à découvrir quelque chose :

```
dmesg | grep ACPI
```

J'ai un peu peur que la solution à ton problème passe par cette procédure complexe...

----------

## arlequin

Concernant l'ACPI :

```
ACPI: RSDP (v000 DELL                                  ) @ 0x000fc1d0

ACPI: RSDT (v001 DELL    M07     0x27d6071c ASL  0x00000061) @ 0x3f693a0f

ACPI: FADT (v001 DELL    M07     0x27d6071c ASL  0x00000061) @ 0x3f694800

ACPI: MADT (v001 DELL    M07     0x27d6071c ASL  0x00000047) @ 0x3f695000

ACPI: MCFG (v016 DELL    M07     0x27d6071c ASL  0x00000061) @ 0x3f694fc0

ACPI: BOOT (v001 DELL    M07     0x27d6071c ASL  0x00000061) @ 0x3f694bc0

ACPI: SSDT (v001  PmRef    CpuPm 0x00003000 INTL 0x20050624) @ 0x3f693a47

ACPI: DSDT (v001 INT430 SYSFexxx 0x00001001 INTL 0x20050624) @ 0x00000000

ACPI: PM-Timer IO Port: 0x1008

ACPI: Local APIC address 0xfee00000

ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)

ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)

ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])

ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])

ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])

ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)

ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)

ACPI: IRQ0 used by override.

ACPI: IRQ2 used by override.

ACPI: IRQ9 used by override.

Using ACPI (MADT) for SMP configuration information

ACPI: Core revision 20060707

ACPI: bus type pci registered

ACPI: Interpreter enabled

ACPI: Using IOAPIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (0000:00)

ACPI: Assume root bridge [\_SB_.PCI0] bus is 0

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Link [LNKA] (IRQs 9 10 *11)

ACPI: PCI Interrupt Link [LNKB] (IRQs 5 7) *4

ACPI: PCI Interrupt Link [LNKC] (IRQs 9 10 *11)

ACPI: PCI Interrupt Link [LNKD] (IRQs 5 7 9 10 11) *3

ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 *7 9 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIE._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP04._PRT]

pnp: PnP ACPI init

pnp: PnP ACPI: found 11 devices

PCI: Using ACPI for IRQ routing

ACPI: PCI Interrupt 0000:00:1c.0[A] -> GSI 16 (level, low) -> IRQ 169

ACPI: PCI Interrupt 0000:00:1c.1[B] -> GSI 17 (level, low) -> IRQ 177

ACPI: PCI Interrupt 0000:00:1c.3[D] -> GSI 19 (level, low) -> IRQ 185

ACPI: PCI Interrupt 0000:00:02.0[A] -> GSI 16 (level, low) -> IRQ 169

ACPI: AC Adapter [AC] (on-line)

ACPI: Battery Slot [BAT0] (battery present)

ACPI: Lid Switch [LID]

ACPI: Power Button (CM) [PBTN]

ACPI: Sleep Button (CM) [SBTN]

ACPI: Video Device [VID] (multi-head: yes  rom: no  post: no)

ACPI: Video Device [VID] (multi-head: yes  rom: no  post: no)

ACPI: Video Device [VID2] (multi-head: yes  rom: no  post: no)

ACPI (exconfig-0455): Dynamic SSDT Load - OemId [ PmRef] OemTableId [ Cpu0Ist] [20060707]

ACPI (exconfig-0455): Dynamic SSDT Load - OemId [ PmRef] OemTableId [ Cpu0Cst] [20060707]

ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])

ACPI: Processor [CPU0] (supports 8 throttling states)

ACPI (exconfig-0455): Dynamic SSDT Load - OemId [ PmRef] OemTableId [ Cpu1Ist] [20060707]

ACPI (exconfig-0455): Dynamic SSDT Load - OemId [ PmRef] OemTableId [ Cpu1Cst] [20060707]

ACPI: CPU1 (power states: C1[C1] C2[C2] C3[C3])

ACPI: Processor [CPU1] (supports 8 throttling states)

ACPI: Thermal Zone [THM] (58 C)

ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 177

ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 17 (level, low) -> IRQ 177

ACPI: PCI Interrupt 0000:00:1d.7[A] -> GSI 20 (level, low) -> IRQ 225

ACPI: (supports S0 S3 S4 S5)

ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 21 (level, low) -> IRQ 233

ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 20 (level, low) -> IRQ 225

ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 21 (level, low) -> IRQ 233

ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 22 (level, low) -> IRQ 50

ACPI: PCI Interrupt 0000:00:1d.3[D] -> GSI 23 (level, low) -> IRQ 58

ACPI: PCI Interrupt 0000:00:1f.3[B] -> GSI 17 (level, low) -> IRQ 177

ACPI: PCI Interrupt 0000:03:01.0[A] -> GSI 19 (level, low) -> IRQ 185

ACPI: PCI Interrupt 0000:03:01.1[B] -> GSI 18 (level, low) -> IRQ 66

ACPI: PCI Interrupt 0000:0c:00.0[A] -> GSI 17 (level, low) -> IRQ 177
```

Pour la correction du DSDT, je m'y suis déjà penché. Mais comme l'arrêt du disque fonctionne sous Knoppix (de base), je ne pense pas que la solution soit aussi compliquée (enfin, j'espère).

----------

## Mickael

Juste comme ça, c'est quel type de DELL. A l'arrêt mon disque me fait un ptit "clap" lors d'une extinction.

----------

## arlequin

Un Dell XPS M1210.

----------

## Magic Banana

As-tu essayé de ne garder que "CONFIG_ACPI_BUTTON=y" (et ce dont cette option dépend) dans ton noyau ? Comme je l'ai déjà écris, pas toutes les options ACPI sont suportées par tous les BIOS.

Peut-être est-il possible de regarder la configuration du noyau sur ta knoppix pour voir en quoi qui diffère ?

----------

## arlequin

En ne gardant que "CONFIG_ACPI_BUTTON=y", ça ne fonctionne pas mieux.

Sous Knoppix, les options ACPI sont compilées en modules, mais chargées au démarrage. Et le disque s'éteint parfaitement...

Je continue à creuser.

----------

## Scullder

 *arlequin wrote:*   

> En ne gardant que "CONFIG_ACPI_BUTTON=y", ça ne fonctionne pas mieux.
> 
> Sous Knoppix, les options ACPI sont compilées en modules, mais chargées au démarrage. Et le disque s'éteint parfaitement...
> 
> Je continue à creuser.

 

Fait un lsmod sous knoppix quivabien, un lsmod sur ta gentoo, et regarde quels modules manquent sous gentoo en rapport avec l'acpi ?

Sinon essaie de chopper le .config du kernel de ta knoppix. (avec un peu de chance, y'a un fichier /proc/config.gz).

----------

## Mickael

 *Scullder wrote:*   

>  *arlequin wrote:*   En ne gardant que "CONFIG_ACPI_BUTTON=y", ça ne fonctionne pas mieux.
> 
> Sous Knoppix, les options ACPI sont compilées en modules, mais chargées au démarrage. Et le disque s'éteint parfaitement...
> 
> Je continue à creuser. 
> ...

 

Si c'est dérivé de debian comme l'est unbutu, je crois bien que le la config se trouve dans le /boot... mais je crois seulement...

----------

## arlequin

J'ai comparé les modules ACPI de la Knoppix avec ma Gentoo. C'est identique.

J'ai également récupéré la config du nouyau Knoppix (dans /usr/src/linux).

Je vais essayer avec un noyau gentoo-sources compilé avec genkernel, pour voir si il y a une différence.

----------

## Mickael

Dite moi si je dis une connerie. Mais aurais-tu également des modules APM en dure (ou non) dans ton noyo. J'ai comme un souvenir que acpi et APM ne font pas forcément bon ménage ensemble...

----------

## arlequin

Je n'ai pas activé l'APM, puisque l'ACPI le remplace (si j'ai bien compris).

Je viens de tester avec un noyau vanilla (2.6.16.17) et un fichier de configuration issu de Debian. Le problème persiste.

Je commence à me demander si le pbm vient bien de l'ACPI.

Pour info, j'ai essayer d'éteindre le disque avec hdparm (-Y). Le disque met quasiment 1 minute pour se réveiller, et j'ai dans mes logs :

```
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen

ata1.00: tag 0 cmd 0xe5 Emask 0x4 stat 0x40 err 0x0 (timeout)

ata1: port is slow to respond, please be patient

ata1: port failed to respond (30 secs)

ata1: soft resetting port

ata1.00: configured for UDMA/100

ata1: EH complete

SCSI device sda: 153356490 512-byte hdwr sectors (78519 MB)

sda: Write Protect is off

sda: Mode Sense: 00 3a 00 00

SCSI device sda: drive cache: write back
```

Je me demande si c'est pas le pilote du contrôleur qui pose problème.

----------

## arlequin

Je continue mes prospections. L'extinction se fait parfaitement avec le LiveCD d'Ubuntu... et celui de Gentoo (v.2006.1) !

Je vais tester en copiant la config du LiveCD 2006.1. On verra bien...

----------

## TrizoLakai

 *MickTux wrote:*   

> Juste comme ça, c'est quel type de DELL. A l'arrêt mon disque me fait un ptit "clap" lors d'une extinction.

 

Moi aussi  :Smile: 

Un MAXTOR c'est grave docteur ?

----------

## arlequin

Hum, c'est marrant que personne ne se soucie de ce genre de phénomène.

Finalement, le test avec le noyau du LiveCD n'est pas concluant.

Je commence à me demander si le problème vient réellement du noyau...

----------

## TrizoLakai

Je m'en soucis pas parce que mon DD externe fais la même chose   :Laughing: 

----------

## Mickael

Est-ce qu'à la fin du "boot-stop" vous avez un petit message, qui parle de syncronisation du disque?

EDIT : tu n'aurais pas cette option de cochée par hasard : Device Drivers > ATA/ATAPI/MFM/RLL support

```
< > ATA/ATAPI/MFM/RLL support
```

 si oui vire là puisque tu es "full scsi/sata"

----------

## arlequin

 *TrizoLakai wrote:*   

> Je m'en soucis pas parce que mon DD externe fais la même chose  

 

J'ai le même problème avec mon disque externe (USB).

J'ai essayé avec l'ATA activé et désactivé, ça ne change rien.

J'ai effectivement le message "Syncing...", mais c'est à ce moment que ça coupe.

----------

## Mickael

 *arlequin wrote:*   

> 
> 
> J'ai effectivement le message "Syncing...", mais c'est à ce moment que ça coupe.

 

IDEM, peut-être est-ce là le problème???

HEEEEEEEEEELLLLPPPPP  :Laughing: 

----------

## arlequin

Pour les gens que ce problème passionne, j'ai réussi à avoir un shutdown (presque) propre.

En désactivant complétement l'ACPI (acpi=off et noacpi en paramètres du noyau), j'obtiens comme dernier message du noyau :

```
Synchronizing SCSI cache for disk sda:

System halted.
```

En soit, c'est presque une bonne nouvelle, sauf que l'ordinateur ne s'éteint plus tout seul (normal), je suis obligé d'appuyer sur le bouton power. De plus, c'est vachement pratique l'ACPI sur un portable (pour cpufreq et co.)...

----------

## nemo13

 *MickTux wrote:*   

>  *arlequin wrote:*   
> 
> J'ai effectivement le message "Syncing...", mais c'est à ce moment que ça coupe. 
> 
> IDEM, peut-être est-ce là le problème???
> ...

 

N'est-ce pas lié aux possibilité de write-back ou write-through ( désolé pour l'orthographe )

des disques dur ?

----------

## Mickael

Tu peux développer s'il te plaît Nemo.

----------

## widan

 *arlequin wrote:*   

> En désactivant complétement l'ACPI (acpi=off et noacpi en paramètres du noyau), j'obtiens comme dernier message du noyau :
> 
> ```
> Synchronizing SCSI cache for disk sda:
> 
> ...

 

Si ça ne fait pas de bruit quand tu coupes dans cet état, c'est que le kernel envoie bien la commande STANDBY au disque (c'est la commande qui dit au disque de s'arrêter). Le problème avec l'ACPI actif, c'est qu'il coupe l'alim trop tôt après, sans laisser le temps au disque de s'arrêter complètement...

Tu peux essayer de modifier la fonction acpi_power_off() dans /usr/src/linux/driver/acpi/sleep/poweroff.c comme ça, pour faire attendre 5 secondes avant de tout couper:

```
void acpi_power_off(void)

{

        /* wait a bit */

        acpi_os_stall(5000000);

        /* acpi_sleep_prepare(ACPI_STATE_S5) should have already been called */

        printk("%s called\n", __FUNCTION__);

        local_irq_disable();

        /* Some SMP machines only can poweroff in boot CPU */

        acpi_enter_sleep_state(ACPI_STATE_S5);

}
```

----------

## Mickael

 *widan wrote:*   

>  *arlequin wrote:*   En désactivant complétement l'ACPI (acpi=off et noacpi en paramètres du noyau), j'obtiens comme dernier message du noyau :
> 
> ```
> Synchronizing SCSI cache for disk sda:
> 
> ...

 

juste une petite précision widan,

pour les 5s tu parles de ces deux lignes là :

 *Quote:*   

> /* wait a bit */
> 
>         acpi_os_stall(5000000);

 

ou bien de ceci (en gras):

 *Quote:*   

> /* acpi_sleep_prepare(ACPI_STATE_S5) should have already been called */
> 
>         printk("%s called\n", __FUNCTION__);
> 
>         local_irq_disable();
> ...

 

EDIT : ma question était vraiment très c****  :Embarassed:   :Razz: 

----------

## TrizoLakai

Lis le commentaire  :Wink: 

Wait a bit => attendre un peu

----------

## TrizoLakai

Bon j'ai essayé, ça attend bien seconde j'ai le temps de lire les messages plein de fois  :Smile: 

MAIS j'ai toujours le "clock" ou plutot "Cliak" à la fin.   :Embarassed: 

Enfin c'était une très bonne idée   :Idea: 

----------

## nemo13

 *MickTux wrote:*   

> Tu peux développer s'il te plaît Nemo.

 

urgh ! 

un petit lien

quelques commentaires :

bien que le write through est préféré, en général, pour les disques dur il y a risque de vieillissement prématuré du disque si ton appli ( ou ton FS ) est gourmante en accès disque.

faut alors arbitrer entre

sécuriser les données / coupure courant

sécuriser les données / scratch disque

-------si t'es plein de tunes : alim redondantes + raid.

a+

rem : le sclong ne serait-il pas  le bruit , un peu fort soit , du parquage de la tête de lecture ?

----------

## TrizoLakai

Bin je pensais au début que c'était un truc du genre mais ce topic m'a mis le doute maintenant je suis paranoïaque 

merci !

----------

## widan

 *nemo13 wrote:*   

> rem : le sclong ne serait-il pas  le bruit , un peu fort soit , du parquage de la tête de lecture ?

 

C'est probablement le cas. Mais un disque peut tout à fait s'arrêter sans bruit (en le mettant en standby avec "hdparm -y" par exemple). Le bruit se produit lors d'une coupure de l'alimentation sur un disque qui tourne encore (ie pas en standby), mais tous les disques ne le font pas.

----------

## Mickael

Est-il possible de régler autre chose afin d'éviter cet arret trop rapide du disque. Est-ce que l'acpi peut travailler avec hdparm??

----------

## Ezka

Si tu passes par "poweroff" pour arreter la machine tu peux ptêtre faire un alias dans ton .bashrc :

```
alias poweroff="hdparm -y /dev/hda && poweroff"
```

Voir même rajouter un latence pour voir si le klank disparait :

```
alias poweroff="hdparm -y /dev/hda && sleep 5 && poweroff"
```

Ta machine mettra 5 scd de plus pour s'arreter mais si le "klank" s'en va c'est pas bien grave. Remplace le hda par le bon hdd si jamais.

Tu as d'autre option pour hdparm plus forte dans la mise en veille de ton hdd, comme -Y qui le stope. (NB: de mémoire, voir le man pour être sur   :Wink:  )

PS : heu j'ai pas lu tt le post, on t'as ptêtre déjà proposer ça remarque ...   :Arrow:   :Rolling Eyes: 

----------

## Mickael

Je rectifie mais cela doit être du pareil au même : vu que j'ai un disque dur sata, se sera sdparm. Enfin c'est juste pour souligné la chose.

EDIT : bon on peut pas le faire avec sdparm. faut utiliser hdparm.  :Razz: 

----------

## arlequin

Hop, un coups de debriefing :

 *nemo13 wrote:*   

> N'est-ce pas lié aux possibilité de write-back ou write-through [...] des disques dur ?

 

J'ai essayé en modifiant ces options (hdparm -W) mais ça ne change rien.

 *widan wrote:*   

> Tu peux essayer de modifier la fonction acpi_power_off() dans /usr/src/linux/driver/acpi/sleep/poweroff.c comme ça, pour faire attendre 5 secondes avant de tout couper [...]

 

C'est la solution pour laquelle je penchais le plus hier, mais je n'ai pas eu le temps de l'appliquer... mais ça ne fonctionne pas meiux.

 *nemo13 wrote:*   

> rem : le sclong ne serait-il pas  le bruit , un peu fort soit , du parquage de la tête de lecture ?

 

Non, puisque sous Windows je n'ai pas ce problème. D'ailleurs, le disque se coupe parfaitement et sans bruit avec hdparm -y

 *Ezka wrote:*   

> Si tu passes par "poweroff" pour arreter la machine tu peux ptêtre faire un alias dans ton .bashrc [...] Ta machine mettra 5 scd de plus pour s'arreter mais si le "klank" s'en va c'est pas bien grave. Remplace le hda par le bon hdd si jamais.

 

L'idée est bonne, mais puisque avant l'extinction complète de la machine, il faut arreter les services (qui, de facto, font des lectures/écritures), le disque sera remis sous tension.

Je vais tout de meme essayer de modifier la fonction acpi_power_off(), histoire de toucher un peu de code (3 mois que chui en vacances !).

Merci à tous et n'hésitez pas à balancer vos idées !

----------

## arlequin

Ça marche ! C'est pas beau, mais ça marche !

J'ai modifié le fichier drivers/acpi/sleep/poweroff.c et j'ai enfin un résultat. Le disque a le temps de s'arrêter avant que la machine ne se coupe. Par contre, j'ai placé le bout de code dans la fonction int acpi_sleep_prepare(u32 acpi_state), pour que l'attente soit aussi appliquée lorsque je fais un suspend-to-disk :

```
int acpi_sleep_prepare(u32 acpi_state)

{

    printk("Attente de 5 secondes dans acpi_sleep_prepare() !\n");

    acpi_os_stall(5000000);

    [...]

}
```

Du coups, on a isolé (merci widan) le problème.

 *TrizoLakai wrote:*   

> MAIS j'ai toujours le "clock" ou plutot "Cliak" à la fin.  

 

Tu peux éventuellement augmenter le temps d'attente (monte à 10sec. = 10000000).

----------

## Mickael

Et ça ne marche pas...........

EDIT : Comment trouver les paramètres de son disque dur SATA relatif au temps d'arrêt svp?

EDIT 2 : j'ai trouvé ceci :

```
cat /sys/bus/scsi/drivers/sd/0\:0\:0\:0/timeout

30
```

Cela veut-il dire qu'il faille mettre 30s dans acippoweroff  :Confused: 

C'est pas un peu long tout de même?

EDIT 3 : Bordel je viens de passer à 35 secondes et que dalle!!!!  :Evil or Very Mad:  toujours ce cliap!!

----------

## Mickael

Bon alors, j'ai passé l'option noapic dans grub, et je n'ai plus de cliap pour la fermeture. J'utilise poweroff en lgne de commande avec ceci dans mon bashrc :

```
alias poweroff="hdparm -Y /dev/sda && poweroff"
```

Vous pourriez commenter svp, et me dire si la fonction éteindre de gnome utilise également mon alias poweroff="hdparm -Y /dev/sda && poweroff"?

EDIT ce que je veux c'est éteindre mon mon disque dur sans cliap, et comme je suis sur un portable, je voudrais juste la gestion ou indication batterie/seccteur, le reste je m'en fou. Donc si autre chose que acpid peut faire cela je prend et je désactive l'acpi, vous voyez ou je je veux en venir.

EDIT 2 : pour l'histoire des 35 secondes, il semblerait que l'attente ne soit pas de 35 secondes mais plus courte, alors que ce passe t-il?

EDIt 3 : des infos sur l'acpi dans dmesg :

```
grep -i "ACPI" /var/log/dmesg

ACPI: RSDP (v000 DELL                                  ) @ 0x000fc370

ACPI: RSDT (v001 DELL    M07     0x27d60609 ASL  0x00000061) @ 0x1f6d3a54

ACPI: FADT (v001 DELL    M07     0x27d60609 ASL  0x00000061) @ 0x1f6d4800

ACPI: MADT (v001 DELL    M07     0x27d60609 ASL  0x00000047) @ 0x1f6d5000

ACPI: MCFG (v016 DELL    M07     0x27d60609 ASL  0x00000061) @ 0x1f6d4fc0

ACPI: BOOT (v001 DELL    M07     0x27d60609 ASL  0x00000061) @ 0x1f6d4bc0

ACPI: SSDT (v001  PmRef    CpuPm 0x00003000 INTL 0x20050624) @ 0x1f6d3a8c

ACPI: DSDT (v001 INT430 SYSFexxx 0x00001001 INTL 0x20050624) @ 0x00000000

ACPI: PM-Timer IO Port: 0x1008

ACPI: Local APIC address 0xfee00000

ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)

ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)

ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])

ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])

ACPI: Skipping IOAPIC probe due to 'noapic' option.

ACPI: Core revision 20060707

ACPI: setting ELCR to 0200 (from 0eb8)

ACPI: bus type pci registered

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (0000:00)

ACPI: Assume root bridge [\_SB_.PCI0] bus is 0

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Link [LNKA] (IRQs 9 10 *11)

ACPI: PCI Interrupt Link [LNKB] (IRQs 5 7) *4

ACPI: PCI Interrupt Link [LNKC] (IRQs 9 10 *11)

ACPI: PCI Interrupt Link [LNKD] (IRQs 5 7 9 10 11) *3

ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 *9 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 *7 9 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIE._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP04._PRT]

pnp: PnP ACPI init

pnp: PnP ACPI: found 11 devices

PCI: Using ACPI for IRQ routing

ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11

ACPI: PCI Interrupt 0000:00:1c.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11

ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 10

ACPI: PCI Interrupt 0000:00:1c.3[D] -> Link [LNKD] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11

ACPI: AC Adapter [AC] (on-line)

ACPI: Battery Slot [BAT0] (battery present)

ACPI: Lid Switch [LID]

ACPI: Power Button (CM) [PBTN]

ACPI: Sleep Button (CM) [SBTN]

ACPI: Video Device [VID] (multi-head: yes  rom: no  post: no)

ACPI: Video Device [VID] (multi-head: yes  rom: no  post: no)

ACPI: Video Device [VID2] (multi-head: yes  rom: no  post: no)

ACPI (exconfig-0455): Dynamic SSDT Load - OemId [ PmRef] OemTableId [ Cpu0Ist] [20060707]

ACPI (exconfig-0455): Dynamic SSDT Load - OemId [ PmRef] OemTableId [ Cpu0Cst] [20060707]

ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])

ACPI: Processor [CPU0] (supports 8 throttling states)

ACPI (exconfig-0455): Dynamic SSDT Load - OemId [ PmRef] OemTableId [ Cpu1Ist] [20060707]

ACPI (exconfig-0455): Dynamic SSDT Load - OemId [ PmRef] OemTableId [ Cpu1Cst] [20060707]

ACPI: CPU1 (power states: C1[C1] C2[C2] C3[C3])

ACPI: Processor [CPU1] (supports 8 throttling states)

ACPI: Thermal Zone [THM] (38 C)

ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 7

ACPI: PCI Interrupt 0000:00:1f.2[B] -> Link [LNKB] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11

ACPI: PCI Interrupt 0000:03:01.1[B] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11

Time: acpi_pm clocksource has been installed.

ACPI: PCI Interrupt 0000:03:01.0[A] -> Link [LNKD] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 9

ACPI: PCI Interrupt 0000:00:1d.0[A] -> Link [LNKE] -> GSI 9 (level, low) -> IRQ 9

ACPI: PCI Interrupt Link [LNKF] enabled at IRQ 10

ACPI: PCI Interrupt 0000:00:1d.1[B] -> Link [LNKF] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI Interrupt Link [LNKG] enabled at IRQ 7

ACPI: PCI Interrupt 0000:00:1d.2[C] -> Link [LNKG] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 5

ACPI: PCI Interrupt 0000:00:1d.3[D] -> Link [LNKH] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI Interrupt 0000:00:1b.0[A] -> Link [LNKF] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI Interrupt 0000:03:00.0[A] -> Link [LNKB] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt 0000:00:1d.7[A] -> Link [LNKE] -> GSI 9 (level, low) -> IRQ 9

ACPI: PCI Interrupt 0000:0b:00.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11

```

----------

## Mickael

Bon et bien l'apic n' a rien avoir avec tout cela c'est bien l'acpi. Avec un acpi=off au boot, j'ai pas de cliap. J'ai regardé ma dsdt et il n'y a aucune erreur, dans le wiki j'ai lu une histoire de nom_acpi=windows ou je ne sais quoi. Je suis un peu perdu...

 *Quote:*   

> 
> 
>  Troubleshooting
> 
> My DSDT is fixed, but I still have ACPI errors. Now what?
> ...

 

help.

EDIT :  Bon j'ai testé avec le demon acpid activé, plus de noapic ou quoi que soit au grub, seulement acpi_os_name="Microsoft Windows XP" sans savoir si c'était réellement windows XP car le win que je possède c'est un Windows Media Center?? Et après un reboot pas de bruit : on tient le bon bout .................... enfin j'espère...............Et merde

EDIT : je retente avec la solution à widan, mais cette fois ci je la place dans les sources su noyo on verra bien....

EDIT : 3 arrêts et c'est bon, ça à l'air de tenir...

----------

## Mickael

Bon et bien pour moi cela ne fonctionne pas, de plus j'ai dû désactiver acpid puisqu'il me coupait X et me renvoyait sous gdm lorsque je passais sur ma batterie de mon portable. Donc maintenant la solution de widan je ne peux pas l'utiliser  :Evil or Very Mad:   je dois ruser avec la fcontion shutdown comme ceci :

```
nano /etc/init.d/shutdown.sh 
```

 *Quote:*   

> # Copyright 1999-2006 Gentoo Foundation
> 
> # Distributed under the terms of the GNU General Public License v2
> 
> #Version originale
> ...

 

une fois le shutdown effectué, j'attends quelques secondes environ 5s (juste au cas ou) puis je fais le poweroff en appuyant sur le bouton.

des infos : 

lspci :

 *Quote:*   

> 
> 
> lspci
> 
> 00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
> ...

 

cat :

```
cat /proc/scsi/scsi

Attached devices:

Host: scsi0 Channel: 00 Id: 00 Lun: 00

  Vendor: ATA      Model: Hitachi HTS54106 Rev: MB3O

  Type:   Direct-Access                    ANSI SCSI revision: 05

Host: scsi1 Channel: 00 Id: 00 Lun: 00

  Vendor: SONY     Model: DVD+-RW DW-Q58A  Rev: UDS2

  Type:   CD-ROM                           ANSI SCSI revision: 05

```

infos kernel_config :

-Support scsi :

```
zgrep -i "scsi" /proc/config.gz 

# SCSI device support

CONFIG_SCSI=y

CONFIG_SCSI_PROC_FS=y

# SCSI support type (disk, tape, CD-ROM)

# Some SCSI devices (e.g. CD jukebox) support multiple LUNs

# CONFIG_SCSI_MULTI_LUN is not set

CONFIG_SCSI_CONSTANTS=y

CONFIG_SCSI_LOGGING=y

# SCSI Transport Attributes

CONFIG_SCSI_SPI_ATTRS=m

CONFIG_SCSI_FC_ATTRS=m

CONFIG_SCSI_ISCSI_ATTRS=m

CONFIG_SCSI_SAS_ATTRS=m

# SCSI low-level drivers

# CONFIG_ISCSI_TCP is not set

# CONFIG_SCSI_3W_9XXX is not set

# CONFIG_SCSI_7000FASST is not set

# CONFIG_SCSI_ACARD is not set

# CONFIG_SCSI_AHA152X is not set

# CONFIG_SCSI_AHA1542 is not set

# CONFIG_SCSI_AHA1740 is not set

# CONFIG_SCSI_AACRAID is not set

# CONFIG_SCSI_AIC7XXX is not set

# CONFIG_SCSI_AIC7XXX_OLD is not set

# CONFIG_SCSI_AIC79XX is not set

# CONFIG_SCSI_DPT_I2O is not set

# CONFIG_SCSI_ADVANSYS is not set

# CONFIG_SCSI_IN2000 is not set

CONFIG_SCSI_SATA=y

CONFIG_SCSI_SATA_AHCI=y

CONFIG_SCSI_SATA_SVW=m

CONFIG_SCSI_ATA_PIIX=y

CONFIG_SCSI_SATA_MV=y

CONFIG_SCSI_SATA_NV=m

CONFIG_SCSI_PDC_ADMA=m

CONFIG_SCSI_HPTIOP=y

CONFIG_SCSI_SATA_QSTOR=m

CONFIG_SCSI_SATA_PROMISE=m

CONFIG_SCSI_SATA_SX4=m

# CONFIG_SCSI_SATA_SIL is not set

# CONFIG_SCSI_SATA_SIL24 is not set

# CONFIG_SCSI_SATA_SIS is not set

# CONFIG_SCSI_SATA_ULI is not set

# CONFIG_SCSI_SATA_VIA is not set

# CONFIG_SCSI_SATA_VITESSE is not set

# CONFIG_SCSI_BUSLOGIC is not set

# CONFIG_SCSI_DMX3191D is not set

# CONFIG_SCSI_DTC3280 is not set

# CONFIG_SCSI_EATA is not set

# CONFIG_SCSI_FUTURE_DOMAIN is not set

# CONFIG_SCSI_FD_MCS is not set

CONFIG_SCSI_GDTH=y

# CONFIG_SCSI_GENERIC_NCR5380 is not set

# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set

# CONFIG_SCSI_IBMMCA is not set

# CONFIG_SCSI_IPS is not set

# CONFIG_SCSI_INITIO is not set

# CONFIG_SCSI_INIA100 is not set

# CONFIG_SCSI_NCR53C406A is not set

# CONFIG_SCSI_NCR_D700 is not set

# CONFIG_SCSI_SYM53C8XX_2 is not set

# CONFIG_SCSI_IPR is not set

# CONFIG_SCSI_NCR_Q720 is not set

# CONFIG_SCSI_PAS16 is not set

# CONFIG_SCSI_PSI240I is not set

# CONFIG_SCSI_QLOGIC_FAS is not set

# CONFIG_SCSI_QLOGIC_1280 is not set

# CONFIG_SCSI_QLA_FC is not set

# CONFIG_SCSI_LPFC is not set

# CONFIG_SCSI_SIM710 is not set

# CONFIG_SCSI_SYM53C416 is not set

# CONFIG_SCSI_DC395x is not set

# CONFIG_SCSI_DC390T is not set

# CONFIG_SCSI_T128 is not set

# CONFIG_SCSI_U14_34F is not set

# CONFIG_SCSI_ULTRASTOR is not set

# CONFIG_SCSI_NSP32 is not set

# CONFIG_SCSI_DEBUG is not set

# Old CD-ROM drivers (not SCSI, not IDE)

# CONFIG_CD_NO_IDESCSI is not set

CONFIG_I2O_SCSI=m

# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'

```

-ATA :

```
zgrep -i "ata" /proc/config.gz 

CONFIG_X86_MCE_NONFATAL=y

# CONFIG_ATALK is not set

# CONFIG_ATA_OVER_ETH is not set

# ATA/ATAPI/MFM/RLL support

CONFIG_SCSI_SATA=y

CONFIG_SCSI_SATA_AHCI=y

CONFIG_SCSI_SATA_SVW=m

CONFIG_SCSI_ATA_PIIX=y

CONFIG_SCSI_SATA_MV=y

CONFIG_SCSI_SATA_NV=m

CONFIG_SCSI_SATA_QSTOR=m

CONFIG_SCSI_SATA_PROMISE=m

CONFIG_SCSI_SATA_SX4=m

# CONFIG_SCSI_SATA_SIL is not set

# CONFIG_SCSI_SATA_SIL24 is not set

# CONFIG_SCSI_SATA_SIS is not set

# CONFIG_SCSI_SATA_ULI is not set

# CONFIG_SCSI_SATA_VIA is not set

# CONFIG_SCSI_SATA_VITESSE is not set

# CONFIG_SCSI_EATA is not set

CONFIG_USB_STORAGE_DATAFAB=y

# CONFIG_ATARI_PARTITION is not set

```

----------

## Mickael

Manipulation de la dsdt : résultat 8 warning :

 *Quote:*   

> 
> 
> cat /proc/acpi/dsdt > dsdt.dat
> 
> iasl -d dsdt.dat
> ...

 

Besion d'aide  :Laughing: 

----------

## Mickael

Pour mon problème d'acpid tout est rentré dans l'ordre grace à Mister Enlight. Cela venait tout simplement du fait que xdm et acpid n'était pas sur le même niveau de runlevel. Acpid était sur le runlevel battery et xdm default, doù la fermeture de X lorsque je passais sur batterie. Par contre pour le disque dur, on dirait que cela vient des instructions de stanby de halt/poweroff/shutdown qui n'ont pas l'air de bien fonctionner. problème au niveau de la config des modules dans le noyo ou bien de l'un de ces 3 scripts.

----------

## galerkin

Bon, moi aussi j'ai le même problème que vous   :Confused:  (J'aurai jamais du lire ce post)

Enfin le même que toi Micktux...

J'ai testé la solution de Widan, j'ai bien le time out de 5 secondes mais toujours ce fameux bruit à l'extinction   :Exclamation:   :Exclamation: 

Ta solution qui consiste à changer le shutdown.sh fonctionne pour moi aussi, mais ca ne fait pas très propre.

Je me demande si tout cela n'est pas lié à un problème de halt....

Je suis en train de parcourir les sources halt.c mais ce n'est pas évident pour moi   :Sad: 

Je pensais mettre une tempo directement dans ce fichier vous en pensez quoi ??

----------

## Nunux

Bonjour à tous

J'ai constaté le meme probleme que vous. 

J'ai modifié le script shutdown.sh.

```
# Copyright 1999-2006 Gentoo Foundation

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

hdparm -y /dev/sda > /dev/null

hdparm -y /dev/sdb > /dev/null

opts="-dh"

[[ ${INIT_HALT} != "HALT" ]] && opts="${opts}p"

[[ ${RC_DOWN_INTERFACE} == "yes" ]] && opts="${opts}i"

/sbin/halt "${opts}"

# hmm, if the above failed, that's kind of odd ...

# so let's force a halt

/sbin/halt -f

```

 Ainsi je met la mise en veille de mes deux disques durs avant que le halt ne le fasse avec le parametre -h.

Comme indiqué ici:

```

-h     Put all harddrives on the system in  standby  mode  just  before

              halt or poweroff.

```

Le bruit du clap des deux disques se fait toujours mais une ou deux secondes avant l'arret du pc.

Donc je suppose que les tetes des disques ont le temps de se parker avant la coupure de courant.

A noté que ce bruit est le même que lorsque je met un disque dur en stand by avec hdparm -y en cours d'utilisation de l'os.

Je ne pense donc pas que ce bruit emis par le hdd soit néfaste. 

Si quelqu'un d'autre aurait une idée de la cause de ce bruit.   :Wink: 

----------

## Mickael

Salut, apparemment c'est un bug dû à libata, qui semble être corrigé d'après cette discussion sur bugzilla kernel. cf le dernier message.

http://bugzilla.kernel.org/show_bug.cgi?id=7674 Additional Comment #15 From Francesco Pretto  2007-03-26 05:33

EDIT : j'ai rien compris, dans les liens qui pointent ici : http://thread.gmane.org/gmane.linux.scsi/30487/focus=30489 il y quatre patch, faut-il tous les utlisés??  :Confused: 

----------

## Mickael

bon ce problème est enfin réglé depuis la version 6.21-r2 des gentoo sources qui inclue(nt) les patchs précédemment cités.  :Very Happy:   (résolu)  :Rolling Eyes: 

----------

