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 を実行します。
実行したイメージにはネットワークドライバ 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 Kamikazeダウンロードサイト
http://downloads.openwrt.org/kamikaze/
2010.07.22