OpenWrtをVMwareで動かす

コンパイル済みのOpenWrt Kamikaze for x86-2.6 (7.06)をVMware Workstation 6.5の仮想マシンとして動作させます。

コンパイル済みOpenWrtの入手とVMwareイメージの作成

作業用Linuxマシンの準備

作業用Linuxマシンとして、VMware Workstation 6.5にUbuntu 9.04をインストールします。

QEMUのインストール

VMwareイメージを作成するのにエミュレータQEMUを使用します。
QEMUをインストールします。

$ sudo apt-get install qemu

OpenWrt Kamikaze for x86-2.6.imageのダウンロード

コンパイル済みのOpenWrt Kamikaze for x86-2.6をダウンロードします。

 $ cd /home
 $ sudo mkdir kamikaze
 $ cd kamikaze
 $ sudo mkdir 7.06

 $ cd /home/kamikaze/7.06
 $ sudo wget http://downloads.openwrt.org/kamikaze/7.06/x86-2.6/openwrt-x86-2.6-ext2.image

VMwareイメージの作成

QEMUでVMwareイメージを作成します。

 $ cd /home/kamikaze/7.06
 $ sudo qemu-img convert -f raw openwrt-x86-2.6-ext2.image -O vmdk openwrt-x86-2.6-ext2.vmdk

VMwawre設定ファイルの作成

下記の内容で拡張子 .vmx のファイル(openwrt-x86-2.6-ext2.vmx)を作成します。

config.version = "8"
virtualHW.version = "4"
displayName = "OpenWrt Kamikaze (x86-2.6)"
annotation = ""
guestinfo.vmware.product.long = ""
guestinfo.vmware.product.url = ""
guestOS = "other26xlinux"
nvram = "OpenWrt Kamikaze (x86-2.6).nvram"
MemTrimRate = "-1"
memsize = "128"
numvcpus = "1"
MemAllowAutoScaleDown = "FALSE"
uuid.action = "create"
checkpoint.vmState = ""
hints.hideAll = "TRUE"
serial0.pipe.endPoint = "server"
floppy0.present = "FALSE"
serial0.present = "TRUE"
serial0.fileType = "pipe"
serial0.fileName = "\\.\pipe\com_1"
serial0.hardwareFlowControl = "TRUE"
sound.present = "FALSE"
logging = "FALSE"
isolation.tools.hgfs.disable = "FALSE"
isolation.tools.dnd.disable = "FALSE"
isolation.tools.copy.enable = "TRUE"
isolation.tools.paste.enabled = "TRUE"
gui.restricted = "FALSE"
paevm = "TRUE"
gui.fullScreenAtPowerOn = "FALSE"
tools.syncTime = "TRUE"
ethernet0.present = "TRUE"
ethernet0.virtualDev = "e1000"
ethernet0.connectionType = "bridged"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0c:29:90:a3:18"
ethernet0.generatedAddressOffset = "0"
ethernet1.present = "TRUE"
ethernet1.virtualDev = "e1000"
ethernet1.connectionType = "bridged"
ethernet1.generatedAddress = "00:0c:29:f3:81:22"
ethernet1.generatedAddressOffset = "0"
scsi0.present = "FALSE"
ide0:0.present = "TRUE"
ide0:0.fileName = "openwrt-x86-2.6-ext2.vmdk"
ide0:0.deviceType = "disk"
ide0:0.mode = "persistent"
ide0:0.redo = ""
ide0:0.startConnected = "TRUE"
ide0:0.writeThrough = "TRUE"
ide0:0.autodetect = "TRUE"
# USB settings
# This config activates USB
usb.present = "TRUE"
usb.generic.autoconnect = "FALSE"

OpenWrtの実行確認

作成した openwrt-x86-2.6-ext2.vmdk と openwrt-x86-2.6-ext2.vmx を同じディレクトリに入れ、openwrt-x86-2.6-ext2.vmx を実行します。

openwrt_vmware_7.06.png

実行したイメージにはネットワークドライバ kmod-e1000 が含まれていないため、ネットワークにアクセスすることができません。

ネットワークドライバを別途インストールする必要があります。

ネットワークドライバ kmod-e1000 をインストールするときに使用する作業用のディスクを作成しておきます。

 /dev/hdb が追加ディスクになりました。

kmod-e1000 packageのダウンロードとインストール

ネットワークドライバのダウンロード

・ネットワークドライバ kmod-e1000 をダウンロードします。
OpenWrt Kamikazeダウンロードサイト
http://downloads.openwrt.org/kamikaze/
http://downloads.openwrt.org/kamikaze/7.06/x86-2.6/packages/kmod-e1000_2.6.19.2-x86-1_i386.ipk

ネットワークドライバインストール用追加ディスクの作成

・作業用LinuxマシンUbuntu 9.04に追加ディスクを作成します。
 /dev/sdaが追加ディスクになりました。
・追加ディスクをext2でフォーマットします。
 $ mkfs.ext2 /dev/sda
・マウントポイントを作成し、追加ディスクをマウントします。
 $ sudo mkdir /mnt/sda
 $ sudo mount -t ext2 /dev/sda /mnt/sda
・ダウンロードした kmod-e1000_2.6.19.2-x86-1.ipk を追加ディスクにコピーします。
 $ sudo cp kmod-e1000_2.6.19.2-x86-1.ipk /mnt/sda
・アンマウントします。
 $ sudo umount /mnt/sda
・ 作業用Linuxマシン(Ubuntu 9.04)をシャットダウンします。

ネットワークドライバインストール用追加ディスクの置き換え

OpenWrt仮想マシンの追加ディスクを、 kmod-e1000_2.6.19.2-x86-1.ipk をコピーした作業用Linuxマシン(Ubunto 9.04)の追加ディスクで置き換えます。ファイル名もOpenWrt仮想マシンの追加ディスクと同じものに変更します。

ネットワークドライバのインストール

・OpenWrt仮想マシンを起動します。
・追加ディスクをマウントします。
 # mkdir /mnt/hdb
 # mount -t ext2 /dev/hdb /mnt/hdb
・ドライバをインストールします。
 # ipkg install /mnt/hdb/kmod-e1000_2.6.19.2-x86-1.ipk

ネットワークの設定

DHCPサーバからネットワーク設定を取得するように設定します。
 # uci set network.lan.proto=dhcp
 # uci commit network
 # ifdown lan
 # ifup lan

openwrt_7.06_eth0.png

OpenWrt Kamikazeダウンロードサイト
http://downloads.openwrt.org/kamikaze/

2010.07.22