web-dev-qa-db-ja.com

起動時に特定のデバイスに対するIDENTIFY PACKET DEVICEコマンドを禁止できますか?

これは、現在解決されているインストールに関連する 前の質問 に関連しています。 DVDドライブを動作させる必要があるため、新しい質問を開いています。

問題

ASUS DRW-24B1/ST DVDドライブがasmedia ASM1061に接続されていると起動に失敗しました。

症状

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

背景

ASM1061 は、2 x 6Gb/sポートを提供するPCIeからSATAへのブリッジであり、SATA仕様に完全に準拠していると想定されています。

ASUS P8Z77-V proマザーボードの細かい印刷で、「これらのSATAポートはデータハードドライバー専用です。ATAPIデバイスはサポートされていません。」

ただし、このドライブを使用して既にWindows 7をインストールしており、そこからUbuntu 12.04インストーラーも実行できます。私が問題を抱えているのは、Ubuntuの起動中に ATAPIコマンド のように見えるIDENTIFY PACKET DEVICEを試​​行するときだけです。

他のデバイスに既に割り当てられているため、このデバイスを別のSATAポートに単純に切り替えることはできません。 (私のチップセットの2 x 6Gb/sはブートSSDと高速HDDに接続され、4 x 3Gb/sポートはRAID 5アレイを実行しています。)これを修正したり回避したりできない場合は、 SATAアドインカードを購入する必要があります。 Blech。

思考

実際にこれがデバイス固有の問題である場合(ATAPIディスカバリーをサポートしていない場合)、私は期待できません-udevですか? -それで動作するように。しかし、WindowsやUbuntuインストーラーでも問題なく動作しているようです。では、なぜudevに問題があるのですか?

結局のところ、Ubuntuの下でDVDを動作させるのはいいことですが、私はそれなしで生きることができます。しかし、これはデュアルブートマシンであるため、Windowsで動作させるため、物理的に切断することはできません。 (また、Ubuntuを起動するたびに物理的に切断することはオプションではありません。;-)

質問

  1. これはバグとみなすべきですか?私の気持ちは、それが他のOSで動作する場合、おそらくUbuntuでも動作するはずだということです。

  2. この問題を回避するにはどうすればよいですか? Linuxの内部については限られた知識しかありませんが、何らかの方法でudev(または発見を行っているもの)にそのデバイスを無視させることができるはずです。方法はありますか?

5
Brian Spisak

これらは、ATAPIコマンドがDVDドライブに送信された結果のカーネルからのlibataメッセージです。問題は、DVDが接続されているASM1061はATAPIをサポートしていないことです。

解決策は、/ lib/udev/rules.d/60-persistent-storage.rulesを編集し、「ATAPI」という単語を含む行を見つけて、次の行をコメントアウトすることです。

この回答に対する以前の投稿に対する回答を寄せてくれたOlli Helinに感謝します!

4
Brian Spisak

どうやら、ASM106xとオプティカルドライブは一緒に行かないようです。それは動作します-ほとんどの時間。しかし、その後バム!マシン全体がクラッシュし、これが画面上の最後のメッセージでした:

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

この問題は、linux-ideメーリングリストでも議論されました: http://thread.gmane.org/gmane.linux.ide/55284

そこに記載されている別の回避策は、libata.atapi_passthru16=0(カーネルパラメーター)です。

しかし、最終的にはバグのあるSATAコントローラーのようであり、光学ドライブに使用することは完全に避けてください。別のコントローラーまたはUSBアダプターでバックアップされたSATAポートを使用します。

1
frostschutz