Délai de démarrage dû à un disque SATA inexistant

Ma carte ASUS M4A87TD EVO a deux controllers de disque embarqués, l'un d'entre eux est un JMicron JMB361 avec un ancien disque IDE connecté. Quand je lance Arch Linux, il apparaît dans le journal système comme ceci:

Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: JMB361 has only one port Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: AHCI 0001.0000 32 slots 2 ports 3 Gbps 0x3 impl SATA mode Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: flags: 64bit ncq pm led clo pmp pio slum part Nov 02 12:53:50 host kernel: ata9: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe100 irq 17 Nov 02 12:53:50 host kernel: ata10: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe180 irq 17 Nov 02 12:53:50 host kernel: ata9: SATA link down (SStatus 0 SControl 300) Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed) Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed) Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed) Nov 02 12:53:50 host kernel: ata10: limiting SATA link speed to 1.5 Gbps Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed) Nov 02 12:53:50 host kernel: ata10: reset failed, giving up 

Je ne sais pas d'où viennent ata9 et ata10. Il n'y a qu'un seul disque IDE connecté à ce controller et il est initialisé correctement. Le BIOS ne montre rien concernant ata9 ou ata10 (et il ne devrait pas parce qu'il n'y a rien connecté) et je n'ai pas trouvé le moyen de les désactiver dans le BIOS.

Je pensais avoir trouvé un moyen de désactiver la détection de ces deux périphériques ici: Comment dire à Linux Kernel> 3.0 d'ignorer complètement un disque défaillant? mais cela n'a pas fait de différence. Voici comment je démarre le kernel:

 Nov 02 12:53:50 host kernel: Linux version 3.17.2-1-ARCH (builduser@thomas) (gcc version 4.9.1 20140903 (prerelease) (GCC) ) #1 SMP PREEMPT Thu Oct 30 20:49:39 CET 2014 Nov 02 12:53:50 host kernel: Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=2cfdc373-7023-48d7-a90d-43d030af277b rw libata.force=9:disable,10:disable quiet 

Le système parvient à démarrer en bout de ligne, mais les softresets défaillants retardent de manière gênante le process de démarrage d'au less 90 secondes.

Donc, bien évidemment, le paramètre de paramètre libata.force disable kernel est appliqué trop tard dans le process. Le pilote ATA tente d'abord de réinitialiser le périphérique avant de le désactiver. Ce qui a fonctionné pour moi est de désactiver les réinitialisations ainsi que le périphérique avec ce paramètre du kernel libata.force=9:disable,9:norst,10:disable,10:norst .

Je reçois toujours quelques inputs de journal du kernel pour ces périphériques, mais ils ne me dérangent pas tant que rien ne s'affiche sur la console et le système démarre immédiatement:

 Nov 08 01:19:39 host kernel: ata9: FORCE: link flag 0x6 forced -> 0x6 Nov 08 01:19:39 host kernel: ata9: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe100 irq 17 Nov 08 01:19:39 host kernel: ata10: DUMMY Nov 08 01:19:39 host kernel: ata9: SATA link down (SStatus 0 SControl 300)