前回、H77のSATAをパススルーしたら他のSATA I/Fが認識されなくなったのは、AHCIのドライバが読み込まれなくなったせいらしい。
ESXiの各種ドライバは、ESXiが公式に対応するデバイスが存在して初めて読み込まれる仕組みになっているそうなので(まぁそりゃそうか)、H77がパススルーによって見えなくなる→AHCIドライバが読み込まれない→他のSATA I/Fが使えないという状態だった模様。これまでASM1061と88SE9123は、H77 SATAのおこぼれで偶然動いていたというわけ。
デバイスとドライバの対応表を弄れば、非公式デバイスを使えるようになるっぽいので書き換えてみる。
下記作業ログ内に出てくるsata-ahc.v00は、sata-ahc.v00(ハイフン)な環境とsata_ahc.v00(アンダースコア)な環境がある模様。自分の環境では間違いなくハイフンなんだけど謎。コマンドをコピペされる際は注意されたし。
5.1をクリーンインストールした場合はアンダースコア、5.0から5.1にアップデートした場合はハイフンな模様。
# lspci -v 000:001:00.0 SATA controller Mass storage controller: Marvell Technology Group Ltd. 88SE9123 PCIe SATA 6.0 Gb/s controller [vmhba34] Class 0106: 1b4b:9123 ←これ 000:006:00.0 SATA controller Mass storage controller: [vmhba36] Class 0106: 1b21:0612 ←これ
# hwinfo -p 000:001:00.0 1b4b:9123 1b4b:9123 11/ 11/0x88 A V ahci vmhba34 000:006:00.0 1b21:0612 1849:0612 5/ 5/0xa0 A V ahci vmhba36 ↑これ
~ # cd /tmp /tmp # mkdir tweak; cd tweak /tmp/tweak # vmtar -x /bootbank/sata-ahc.v00 -o sata-ahc.tar /tmp/tweak # tar xvf sata-ahc.tar
/tmp/tweak # vi etc/vmware/driver.map.d/ahci.map (↓を最後に追加) regtype=linux,bus=pci,id=1b4b:9123 1b4b:9123,driver=ahci,class=storage regtype=linux,bus=pci,id=1b21:0612 1849:0612,driver=ahci,class=storage
/tmp/tweak # vi usr/share/hwdata/driver.pciids.d/ahci.ids 1b4b Marvell Technology Group Ltd. 9123 88SE9123 PCIe SATA 6.0 Gb/s controller 1b21 ASMedia Technology Inc. 0612 ASM1062 Serial ATA Controller
/tmp/tweak # rm sata-ahc.tar /tmp/tweak # tar cvf sata-ahc.tar etc usr /tmp/tweak # vmtar -c sata-ahc.tar -o sata-ahc.vgz /tmp/tweak # mv sata-ahc.vgz /bootbank/sata-ahc.v00
上手く追加出来てればvSphere Clientから正しく認識される。追加前と追加後でvmhbaの割り当て順が変わってるが、まぁキニシナイ。
これでようやくH77 SATAのパススルーが出来る!と、喜び勇んで設定&FreeBSDのVMに割り当てて起動!そして、PSoD………/(^o^)\ナンテコッタイ