vmware-tools のインストール (kernel 2.6.16, X.Org 7.0) (2006/04/29)

カーネル 2.6.16 及び X.Org 7.0 の Debian GNU/Linux に vmware-tools をインストールしました.いろいろトラブルがあったので,それらについて書きます.

本筋とは異なる話ですが,vmware-tools のインストールには,カーネルをコンパイルしたヘッダが必要であったので,以前は,vmware-tools をインストールするのに,わざわざカーネルを構築していました.カーネルは debian パッケージで入れていたので,次のようにしてカーネルを構築していました.

# apt-get install linux-source-2.6.x
# cd /usr/src; tar jxvf linux-source-2.6.x.tar.bz2
# ln -s linux-source-2.6.x linux
# cd linux; cp /boot/config-2.6.x-1-686 .config
# make-kpkg clean
# make-kpkg --append_to_version -1-686 --initrd kernel_image

しかし,VMWare 上のゲスト OS で構築しているためか,結構な時間がかかります.カーネルをコンパイルしたときのヘッダファイルなら,パッケージになっていないかと思い,調べたたら,次のものがありました.

# apt-get install linux-headers-2.6.x-1-686

これで,インストールされたヘッダファイルのディレクトリの場所を示せばオーケーですでした.

ところが,カーネルのバージョンが 2.6.16 になってから,ヘッダファイルの読み込みで次のエラーが出るようになりました.

The kernel defined by this directory of header files does
not have the same address space size as your running kernel.

そこで,vmware-tools の tar ball 内の bin/vmware-config.pl の該当部分をコメントアウトしました.

#if ($header_page_offset =~ /[0-9a-fA-F]{8,}/) {
## We found a valid page offset
# if (defined($gSystem{'page_offset'}) and
# not (lc($header_page_offset) eq lc($gSystem{'page_offset'}))) {
#  if ($source eq 'user') {
#    print wrap('The kernel defined by this directory of header files does '
#               . 'not have the same address space size as your running '
#               . 'kernel.' . "\n\n", 0);
#  }
#  return '';
# }
#}

これでうまくいったと思ったたら,今度は,X.org のところで次のエラーでストップします.

Detected X.org version 7.0
Problem extracting verion of X.org
Execution aborted.

これは,X.Org 7.0 になった影響です.同じようにして,bin/vmware-config.pl で X.Org のバージョンで動作を変更する部分を次のように変更しました.

if ($major == 6) {
...
<<省略>>
...
 fix_X_link('6');
} elsif ($major == 7 && $minor == 0) {
  backup_file_to_restore($gXVideoDriverFile, 'OLD_X4_DRV');
  if (file_name_exist($gXVideoDriverFile)) {
   unlink $gXVideoDriverFile;
  }
  # Install the drivers.
  my %p;
  undef %p;
  install_file(db_get_answer('LIBDIR')  . '/configurator/XOrg/6.8.x' .
              ($gIs64BitX ? '_64' : '') . '/vmware_drv.o',
              $gXVideoDriverFile, \%p, 1);
  install_file(db_get_answer('LIBDIR')  . '/configurator/XOrg/6.8.x' .
              ($gIs64BitX ? '_64' : '') . '/vmmouse_drv.o',
              $gXMouseDriverFile, \%p, 1);
  fix_X_link('6');
} else {
 error ('Problem extracting verion of X.org' . "\n\n");
}

elsif 文の中身は,X.Org 6.8 のものとしました.というのも,X.Org 7.0 は,X.Org 6.8 と内容的には一緒とどこか読んだためです.ただ,ディレクトリ構成が変更したため,次のディクトリを作成する必要があります.

# mkdir /usr/X11R6/lib/modules/input

以上の修正で,Debian GNU/Linux のカーネル 2.6.16 及び X.Org 7.0 において,vmware-tools のインストールができました.


梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp
Last modified: 2020/05/01 15:37
Total Access Count