web-dev-qa-db-fra.com

Puis-je empêcher une commande IDENTIFY PACKET DEVICE sur un périphérique spécifique au démarrage?

Ceci est lié à question précédente liée à l'installation qui est maintenant résolue. J'ouvre une nouvelle question, car je dois encore faire fonctionner mon lecteur de DVD.

Problème :

Échec du démarrage lorsque mon lecteur de DVD ASUS DRW-24B1/ST est connecté à mon ASM1061 asmedia.

Symptôme :

ata8.00: exception Emask 0x52 Sact 0x0 SErr 0xffffffff action 0xe frozen
ata8: SError: { blah blah }
ata8.00: failed command: IDENTIFY PACKET DEVICE
ata8.00: cmd blah blah
         res blah blah (ATA bus error)
ata8.00: status: { DRDY }
ata8: hard resetting link

Contexte :

Le ASM1061 est un pont PCIe vers SATA fournissant 2 ports 6 Gb/s et est censé être totalement conforme aux spécifications SATA.

Je viens de découvrir dans les détails de ma carte mère ASUS P8Z77-V que "Ces ports SATA sont réservés aux pilotes de données durs. Les périphériques ATAPI ne sont pas pris en charge."

Cependant, j'ai déjà installé Windows 7 en utilisant ce lecteur et je peux également exécuter le programme d'installation Ubuntu 12.04. La seule fois où j'ai un problème, c'est lors du démarrage d'Ubuntu lorsqu'il tente un IDENTIFY PACKET DEVICE qui semble être un commande ATAPI .

Je ne peux pas simplement changer ce périphérique sur un autre port SATA car ils sont déjà attribués à d'autres périphériques. (Les 2 x 6 Gb/s de mon jeu de composants sont connectés à mon SSD de démarrage et à un disque dur rapide alors que les ports 4 x 3Gb/s utilisent une matrice RAID 5.) Si cela ne peut pas être corrigé ou corrigé, je suppose que je aller acheter une carte d'extension SATA. Blech.

Pensées :

S'il s'agit bien d'un problème spécifique à un périphérique (qu'il ne prend pas en charge la découverte ATAPI), je ne peux pas m'attendre - est-ce udev? - travailler avec elle. Mais, il semble que Windows et même le programme d’installation Ubuntu fonctionnent correctement. Alors, pourquoi udev a-t-il un problème?

À la fin de la journée, il serait bien d’avoir le DVD sous Ubuntu, mais je peux vivre sans. Mais, comme il s’agit d’une machine à double démarrage, je ne peux pas la déconnecter physiquement car je veux qu’elle fonctionne avec Windows. (Et le déconnecter physiquement à chaque fois que je veux démarrer Ubuntu n'est PAS une option. ;-)

Questions :

  1. Cela devrait-il être considéré comme un bug? Mes sentiments sont que si cela fonctionne avec un autre système d’exploitation, il devrait probablement également fonctionner avec Ubuntu.

  2. Comment puis-je contourner ce problème? J'ai une connaissance limitée des internes de Linux, mais il semble que je devrais être capable de dire à udev (ou à tout ce qui fait la découverte) d'ignorer ce périphérique. Y a-t-il un moyen?

5
Brian Spisak

Il s’agit de messages libata du noyau résultant de l’envoi de commandes ATAPI au lecteur de DVD. Le problème est que l'ASM1061 auquel le DVD est relié ne prend pas en charge ATAPI.

La solution consiste à éditer /lib/udev/rules.d/60-persistent-storage.rules, à rechercher la ligne contenant le mot "ATAPI" et à commenter la ligne suivante.

Merci à Olli Helin pour sa réponse à mon précédent post pour cette réponse!

4
Brian Spisak

Apparemment, l'ASM106x et les lecteurs optiques ne vont pas ensemble. Cela fonctionne - la plupart du temps. Mais alors bam! la machine entière se bloque et c'était le dernier message à l'écran:

ata10.00: exception Emask 0x52 SAct 0x0 SErr 0xffffffff action 0xe frozen
ata10: SError: { RecovData REcovComm UnrecovData Persist Proto HostInt PHYRdyChg PHYInt CommWake 10B8B Dispar BadCRC Handshk LinkSeq TrStaTrns UnrecFIS DevExch }
ata10.00: failed command: IDENTIFY PACKET DEVICE
ata10.00: cmd a1/00:01:00:00:00/00:00:00:00:00/0 tag 0 pio 512 in
         res 40/00:03:00:00:00/00:00:00:00:00/a0 Emask 0x56 (ATA bus error)
ata10.00: status: { DRDY }
ata10: hard resetting link

La question a également été discutée sur la liste de diffusion linux-ide: http://thread.gmane.org/gmane.linux.ide/55284

Une autre solution de contournement mentionnée est libata.atapi_passthru16=0 (paramètre du noyau).

Mais au final, il semble que ce soit un contrôleur SATA défectueux et vous devriez éviter de l’utiliser pour les lecteurs optiques. Utilisez un port SATA supporté par un autre contrôleur ou un adaptateur USB.

1
frostschutz