今回は、先月リリースされた Fedora 15 でも試してみたいと思います。ただし、Linux ディストリビューション各社は、オリジナルの Linux Kernel に追加機能やパッチを含めているはずですので、やはり純正 !? のカーネル ソースを利用するべきだと考え、Fedora 15 ではその方法でチャレンジしてみたいと思います。結果から先に言うと、成功しました!!
まず、Hyper-V の仮想マシンに Fedora 15 をクリーン インストールします。今回は、x86_64 DVD (Fedora-15-x86_64-DVD.iso、Live CD ではありません!!) を使用しました。インストール方法に注意点は特にありません。仮想マシンに「レガシ ネットワーク アダプター」を追加しておくこと (hv_netvsc が利用可能になるまで標準の「ネットワーク アダプター」は利用できないため)、タイムゾーンの設定で「システム クロックで UTC を使用」のチェックを外すこと (その理由についてはこちら) くらいです。
Fedora 15 をクリーン インストールしたら、ネットワークが利用可能なことを確認してください。irqbalance が悪さをして、ネットワーク (IPv4) がアクティブにならないようです。次の 2 つのおまじないを実行して、NetworkManager で接続を開始するか、自動接続するように構成すれば、DHCPv4 で自動構成されるようになりました (NetworkManager さんごめんなさい)。固定 IP を割り当てたい場合は、以下の取り消し線の操作でよいかと。
chkconfig irqbalance off
reboot
chkconfig network on
/etc/init.d/NetworkManager Stop
/etc/init.d/network start
いよいよカーネルの再構築です。http://fedoraproject.org/wiki/Docs/CustomKernel の説明に従って、以下のように操作しました。作業は、root 以外のユーザーで、$HOME をベースに行いました (注: 行頭の $ はプロンプトです)。
$ su -c 'yum install rpmdevtools yum-utils'
#su -c 'yum install qt3-devel libXi-devel'
(※ make xconfig を使わないのでスキップ。)
$ su -c 'yum install kernel-devel'
(※ ドキュメントには無いけど必要だと思う。)
$ su -c 'yum install ncurses-devel'
(※ ドキュメントには無いけど必要だと思う。)
$ rpmdev-setuptree
$ yumdownloader --source kernel
(※ kernel-2.6.38.7-30.fc15.src.rpm がダウンロードされました。)
$ su -c 'yum-builddep kernel-2.6.38.7-30.fc15.src.rpm'
$ rpm -Uvh kernel-2.6.38.7-30.fc15.src.rpm
(※ ドキュメントにあるように、「警告: ユーザー mockbuild は存在しません。 - root を使用します」「警告: グループ mockbuild は存在しません。 - root を使用します」は無視します)
$ cd $HOME/rpmbuild/SPECS
$ rpmbuild -bp --target=$(uname -m) kernel.spec
$ cd $HOME/rpmbuild/BUILD/kernel-2.6.38.fc15/linux-2.6.38.x86_64
(※ ここで、念のため drivers/staging/hv の存在を確認しました。ちゃんと、Hyper-V Synthetic Drivers のソースがありました。)
$ cp configs/kernel-2.6.38.7-x86_64.config .config
$ make oldconfig
$ make menuconfig
(※ Device Drivers > Staging Drivers > Microsoft Hyper-V client drivers を選択して保存します。ここで、仮想マシンで不要なドライバーをごっそりと削除しておくのも良いかも。)
$ vi .config
(※ ファイルの最初に # x86_64 を書いて保存します。必須の手順なのかは?)
$ cp .config $HOME/rpmbuild/SOURCES/config-`uname -m`-generic(※ ` は ' ではありません。[Shift]+[@]の方。)
$ cd $HOME/rpmbuild/SPECS
$ vi kernel.spec
(※ # % define buildid .local の行を %define buildid .hyperv に書き換えます。% と define の間の空きを取ること。)
$ rpmbuild -bb --target=`uname -m` kernel.spec
(※ カーネルのを再構築し、.rpm パッケージを作成します。非常に時間がかかります。気長に待ちましょう。)
$ su -c "rpm -ivh --force $HOME/rpmbuild/RPMS/x86_64/kernel-2.6.38.7-30.hyperv.fc15.x86_64tar.rpm"
(※ 再構築したカーネルをインストールします。)
$ reboot
(※ 新しいカーネルをインストールしたら、再起動。2.6.38.7-30.hyperv カーネルを選択して起動します。)
$ lsmod |grep hv_
(※ hv_vmbus などがロードされていることを確認します。)
めでたしめでたし。1 日かかりました。お疲れ様でした。
※ kernel-2.6.38.7-30.hyperv.fc15.x86_64tar.rpm をとっておけば、他の仮想マシンに Fedora 15 をインストールしたときに、簡単に Hyper-V 対応済みカーネルを導入できます。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。