Fedora11でVMware-Workstation-6.5.2を使う再び on 2.6.30.5-43.fc11

Fedora11をクリーンインストールして爆速具合(DHCP処理以外は10秒以内に起動)に満足している唐木です。

今回は、ありていに言えばFedoraのエラータカーネルにアップデートした場合の対応なんですが、さすがFedoraさん2.6.29から2.6.30へ上がったりするので油断できませんね。

2.6.29ではvmwareモジュールに当てるpatchが必要だったので、2.6.30ではさらに同じpatchだけではvmwareモジュールのコンパイルエラーになります。

普通だとそのまんま2.6.29カーネルで生活するんですが、試しにsdaに hdparm -t かけると 84-->94と2.6.30にすると結構速度が上がっている様子なので、これは少しつついてみようかと。。。
ここから先はかなりやっつけ仕事なので、文責は問わないでください。責任とれません。

Fedora11でVMware-Workstation-6.5.2を使うに書いたフォーラムからゲットしたpatchとshを少し改造します。と言っても2.6.29の文字を2.6.30に変えただけ。。。

  • vmware-6.5.2-modules-2.6.30-fix.sh(中の文字列29を30へ変えてます。)
  • vmware-6.5.2-modules-2.6.30-fix.patch(中の文字列29を30へ変えてます。あんまり必要ないかも)

vmware-6.5.2-modules-2.6.30-fix.sh を実行するとコンパイルエラーになります。

確認で /usr/lib/vmware/modules/source/ へ移動すると一個もモジュールができてません。<当たり前か。。。

そこで、/usr/lib/vmware/modules/source/ 以下のサブディレクトリへ降りて make を実行していきます。

# cd vmblock-only
# make-->エラー発生につき後述
# cd vmci-only
# make-->成功
# cd vmmon-only
# make-->成功
# cd vmnet-only
# make-->成功
# cd vmppuse-only
# make-->エラー発生、パラレルポートなんて使わないのでシカトします。
# cd vsock-only
# make-->成功
vmblock-onlyだけは見過ごせないので、コンパイルエラーを解消しましょう。

vmblock-onlyのコンパイルエラーはこんな感じ
「proc_dir_entry構造体にownerなんてメンバーはいないよ。<意訳」
2.6.29のproc_fs.hと2.6.30のproc_fs.hを比べると確かにproc_dir_entry構造体からownerメンバーが消えています。
Googleで[lkml proc_dir_entry owner]あたりで調べるとやっぱイラネと削除されてます。

※ここからやっつけ度MAXなのでご注意!
lkmlにならひて vmblock-only/linux/control.cの以下の2行を削除!します。

  • controlProcDirEntry->owner = THIS_MODULE;
  • controlProcMountpoint->owner = THIS_MODULE;

で再度 vmblock-only の下で make するとコンパイル通りました。

後は/usr/lib/vmware/modules/source/の下にある vmblock.o、vmci.o、vmmon.o、vmnet.o、vsock.oを /lib/modules/2.6.30.5-43.fc11.i586/misc ディレクトリ以下にコピーします。
それぞれのファイルにkoを拡張子としたシンボリックリンクを作成します。
# ln -s vmblock.o vmblock.ko
# ln -s vmci.o vmci.ko
以下同文

リンク作成が終わったらdepmodして、vmwareサービスを再起動します。
# service vmware restart

本当はVMware-Workstation-6.5.3対応もやりたいけど、まあそんなに機能が増えているわけでもないので、他人まかせにします。