2010年11月18日木曜日

SolarisでAMD SP5100のAHCIモードが使えない

このエントリーをはてなブックマークに追加
新しいサーバにとりあえずOpenIndianaをインストールしようとしたのですが、SATAをAHCIモードにするとハードディスクを認識しません。Solaris 11 Expressも試してみたのですがだめでした。同じチップセットのDellのPowerEdge R715でSolarisは動くことになっているので、HCLのデータを見てみたのですがIDEモードで動かしていました。

インストーラを32bitモードのカーネルで起動すると認識するので、AMDのサウスブリッジのAHCIモードで64bit DMAアドレスが使えない問題にはまっているようです。しかし、この問題は解決済みでAHCIドライバのソースコードを見ると回避策が入っています。コメントを見ると、新しいサーバのマザーボードのサウスブリッジSP5100も考慮されているようです。しかし、デバイスIDとして0x4391を想定していますが、手元でデバイスIDを調べてみると0x4394になっています。そのため、この回避策が機能していないようです。

ドライバのパラメータで32bit DMAアドレスを強制することもできるので、32bitモードでインストールして/etc/systemにset ahci:ahci_commu_64bit_dma = 0と書いて64bitモードで起動してみたら起動しました。本当はもっと試行錯誤してるのですが、まとめるとこんな感じです。

1 件のコメント:

  1. まったりやりながら試行錯誤2日間って感じですな。PCI sybsystem-id が 0x4391 だったのもあって、障害回避コードが効いていると誤解していたのが大きな敗因。device-id でしか判別していなかった。。。

    まぁでも、opensolaris の src code と bug db が見られたから解決したって話もあり、Solaris の情報が非公開方向に突き進んでいる現状、だんだん辛くなってきそうですね。

    返信削除