2010/12/25(Sat)Intel 82578DM Gigabit EthernetをVMware vSphere Hypervisor (ESXi)で使う方法

2010/12/25 21:40 Software::VM/ESXi
最近NTT-X Storeの争奪戦で手に入れたNEC Express5800/S70 RBにESXiをインストールしようと思ったらNICが非対応だったので、カスタムドライバを追加して使えるようにしたときのメモ。
最後の方にバイナリパッチを置いているので、全く同じ事をしたい人は手順をすっ飛ばしてそっちを使うと楽です。

前提条件

  • VMware vSphere Hypervisor (VMware ESXi) 4.1を使っているが、別のバージョンでもできるかもしれない。
  • 物理メモリは標準添付の1GBだと動かないかも。適宜DDR3のを増設のこと。
  • 起動ドライブとしてUSBメモリ(最低1GB以上)または、SDカード等のリムーバブルデバイスを用意しておく。*1
  • その他作業用にLinuxもしくはWindowsがまともに動くPCが必要

*1 : ESXiはHDDからの起動も出来るが、作業の都合上と領域がもったいないのでUSBデバイスを用いている

下準備

ダウンロード

VMware-VMvisor-Installer-4.1.0-260247.x86_64.isoをGet VMware vSphere Hypervisor (ESXi)からダウンロードし、届いたメールからアクティベーションを行ってライセンスキーを取得しておく。

カスタムドライバ

適当な作業PCでISOからimagedd.bz2を取り出し、さらに解凍して950M弱のimageddというファイルを得る。*2
これがESXi InstallerでUSBメモリなどにインストールされるddイメージなので、これの中にカスタムドライバ(oem.tgz)を含めると認識するようになる。


vm-help.comの82578DCのトピックからoem-8086-10f0-v1119.tgzをダウンロード。
展開すると、
├── etc
│   └── vmware
│       ├── pci.ids
│       └── simple.map
└── usr
    └── lib
        └── vmware
            └── vmkmod
                └── e1000e2.o
のようになっているので、etc/vmware/pci.idsとetc/vmware/simple.mapに以下のパッチを当てる。
diff -ru etc/vmware/pci.ids etc/vmware/pci.ids
--- etc/vmware/pci.ids  2010-06-08 03:58:03.000000000 +0900
+++ etc/vmware/pci.ids    2010-12-25 18:13:32.000000000 +0900
@@ -12508,7 +12508,7 @@
        10ec  82598EB 10 Gigabit AT CX4 Network Connection
                8086 a01f  10 Gigabit CX4 Dual Port Server Adapter
                8086 a11f  10 Gigabit CX4 Dual Port Server Adapter
-       10f0  82578DC gigabit
+       10ef  82578DM gigabit
        10f1  82598EB 10 Gigabit AT Dual Port Network Connection
        10f4  82598EB 10 Gigabit AT Network Connection
                8086 106f  10 Gigabit XF LR Server Adapter
diff -ru etc/vmware/simple.map etc/vmware/simple.map
--- etc/vmware/simple.map       2010-06-08 03:57:11.000000000 +0900
+++ etc/vmware/simple.map 2010-12-25 18:13:45.000000000 +0900
@@ -455,7 +455,7 @@
 8086:10e2 8086:10e2 network igb.o
 8086:10e5 0000:0000 network e1000e.o
 8086:10ec 0000:0000 network ixgbe.o
-8086:10f0 0000:0000 network e1000e2.o
+8086:10ef 0000:0000 network e1000e2.o
 8086:10f1 0000:0000 network ixgbe.o
 8086:10f4 0000:0000 network ixgbe.o
 8086:10f5 0000:0000 network e1000e.o
その後再度、etc/とusr/が含まれるように圧縮しoem.tgzとする。

イメージの更新

次にWinImageを使って*3imageddを開き、[File]-[Inject]を選んで先ほどのoem.tgzを上書きして終了する。

ちなみにWindows向けにここまでの作業を行うimageddへのパッチを作りましたんで、使いたい人はどうぞ。

イメージの書き込み

Linuxなら普通にdd、WindowsならDD for Windowsを使って、先ほどのimageddをUSBデバイスに書き込む。

*2 : Windowsの場合はWinRAR、Linuxの場合は$ mount -o loop /path/to/isofile.iso /mnt/isoとtarコマンドの合わせ技で

*3 : LinuxだとISO Masterとかが使えるのかな?

起動

後は実際に実機で起動してみて、起動後の画面でIPアドレスが表示されればOK。


参考文献