どうも、相変わらずhyper-vで遊んでいるひでりんです。
hyper-vにfedora 15 αをぶち込んでみました。
fedoraはどうもネットワークが繋がらないのが悩みどころなのですが、
うまくいった方法をとりあえずメモ。。。
まずは、インストールするのですが、オプションの選択で開発ツールを
インストールしておきます。
で、インストールが終わったら、linuxカーネルのソースをここからダウンロードして
解凍し、「linux-2.6.38.X\drivers\staging\hv」を取り出し、ライティングソフトとかで
isoファイルに格納します。
で、hyper-vの仮想マシンにさっきのisoファイルをマウントし、仮想マシン上の
fedoraにログオンします(めんどくさいので私はrootでログインしましたw)。
mkdir /mnt/share
mount -t iso9660 /dev/sr0 /mnt/share
cp -r /mnt/share/hv ./
でドライバのディレクトリをコピーします。
このとき、私の環境だけかもしれませんが、何故かファイル名が全て小文字になって
いたので、大文字であるべきファイルをリネームしてやります。
cd hv
mv makefile Makefile
mv kconfig Kconfig
mv todo TODO
で、Makefileを編集して単独でコンパイルできるようにしてやります。
vi Makefile
KERNELSRCDIR = /usr/src/kernels/`uname -r` ←追加
BUILD_DIR := $(shell pwd)←追加
VERBOSE = 0←追加
obj-$(CONFIG_HYPERV) += hv_vmbus.o hv_timesource.o
obj-$(CONFIG_HYPERV_STORAGE) += hv_storvsc.o
obj-$(CONFIG_HYPERV_BLOCK) += hv_blkvsc.o
obj-$(CONFIG_HYPERV_NET) += hv_netvsc.o
obj-$(CONFIG_HYPERV_UTILS) += hv_utils.o
上記5行を以下に変更
obj-m += hv_vmbus.o hv_timesource.o
obj-m += hv_storvsc.o
obj-m += hv_blkvsc.o
obj-m += hv_netvsc.o
obj-m += hv_utils.o
hv_vmbus-y := vmbus_drv.o osd.o \
hv.o connection.o channel.o \
channel_mgmt.o ring_buffer.o
hv_storvsc-y := storvsc_drv.o storvsc.o
hv_blkvsc-y := blkvsc_drv.o blkvsc.o
hv_netvsc-y := netvsc_drv.o netvsc.o rndis_filter.o
最終行に以下を追加
all:
make -C $(KERNELSRCDIR) SUBDIRS=$(BUILD_DIR) KBUILD_VERBOSE=$(VERBOSE) modules
clean:
rm -f *.o
rm -f *.ko
rm -f *.mod.c
rm -f *~
で保存して、makeします。warningがでるけど気にしない(笑)
コンパイルは多分出来ると思うので、あとはコンパイルしてできた
ローダブルモジュールをインストール。
mkdir /lib/modules/`uname -r`/kernel/drivers/staging/hv
chmod 744 *.ko
cp *.ko /lib/modules/`uname -r`/kernel/drivers/staging/hv/
insmod /lib/modules/`uname -r`/kernel/drivers/staging/hv/hv_timesource.ko
insmod /lib/modules/`uname -r`/kernel/drivers/staging/hv/hv_vmbus.ko
insmod /lib/modules/`uname -r`/kernel/drivers/staging/hv/hv_utils.ko
insmod /lib/modules/`uname -r`/kernel/drivers/staging/hv/hv_netvsc.ko
insmod /lib/modules/`uname -r`/kernel/drivers/staging/hv/hv_storvsc.ko
insmod /lib/modules/`uname -r`/kernel/drivers/staging/hv/hv_blkvsc.ko
depmod -a
あとは、起動時にドライバをロードするために、以下のファイルを作成します。
vi /etc/sysconfig/modules/hv.modules
#!/bin/sh
/sbin/modprobe hv_vmbus
#/sbin/modprobe hv_blkvsc
/sbin/modprobe hv_utils
/sbin/modprobe hv_netvsc
/sbin/modprobe hv_storvsc
実行権限をつける。
chmod +x /etc/sysconfig/modules/hv.modules
再起動しなくても認識するけど、念のため再起動。
reboot
長かったけど、これでVmbus経由の「ネットワークアダプター」を
fedora上で認識できました。ヤッターw