↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

おのたく日記 [RDF] YouTubeも始めました→


2006-04-18(Tue) [長年日記]

[VMware] Linux kernel 2.6.16に上げた

Debian 3.1(sarge)用のbackportsで、Kernel 2.6.16がリリースされたので、Kernel 2.6.15ではVMWareでUSBがうまく扱えない(iPodがダメ)だったので、早速upgradeした。

しかし、

What is the location of the directory of C header files that match your running

kernel? [/usr/src/linux/include] /lib/modules/2.6.16-1-686/build/include/

The kernel defined by this directory of header files does not have the same

address space size as your running kernel.

[vmware-config.plより引用]

といってエラーとなる。

Googleでしらべてみると

とりあえず、場当たり的な↓なパッチでOKそう。

--- vmware-config.pl.orig 2006-01-19 15:00:36.000000000 +0900

+++ vmware-config.pl 2006-03-22 18:34:17.000000000 +0900

@@ -1969,7 +1969,7 @@

. ' -E - | ' . shell_string($gHelper{'grep'}) . ' '

. shell_string($pattern));

chomp($header_page_offset);

- $header_page_offset =~ s/^$pattern (?0x([0-9a-fA-F]{8,}).*$/$1/;

+ $header_page_offset =~ s/^$pattern (?.+?0x([0-9a-fA-F]{8,}).*$/$1/;

if ($header_page_offset =~ /[0-9a-fA-F]{8,}/) {

# We found a valid page offset

if (defined($gSystem{'page_offset'}) and

[[vmware][linux] kernel 2.6.16でVMwareより引用]

という事なので、早速パッチを当てたけど動かない。

どうやら、取得されるpage_offsetが B000000 らしいのでパッチをさらに当てる

--- vmware-config.pl.org 2006-01-02 03:30:33.000000000 +0900

+++ vmware-config.pl 2006-04-28 15:17:49.000000000 +0900

@@ -1969,7 +1969,8 @@

. ' -E - | ' . shell_string($gHelper{'grep'}) . ' '

. shell_string($pattern));

chomp($header_page_offset);

- $header_page_offset =~ s/^$pattern (?0x([0-9a-fA-F]{8,}).*$/$1/;

+ $header_page_offset =~ s/^$pattern (?.+?0x([0-9a-fA-F]{8,}).*$/$1/;

+ print $header_page_offset . ' : ' . $gSystem{'page_offset'};

if ($header_page_offset =~ /[0-9a-fA-F]{8,}/) {

# We found a valid page offset

if (defined($gSystem{'page_offset'}) and

@@ -2595,8 +2596,10 @@

$first = lc(substr($fields[0], 0, 1));

if ($first =~ /^[4567]$/) {

$first = '40000000';

- } elsif ($first =~ /^[89ab]$/) {

+ } elsif ($first =~ /^[89a]$/) {

$first = '80000000';

+ } elsif ($first =~ /^[b]$/) {

+ $first = 'B0000000';

} elsif ($first =~ /^[cd]$/) {

$first = 'C0000000';

} elsif ($first =~ /^[ef]$/) {

[さらにPatchより引用]

そうしたら、vmware-configの中のモジュールのコンパイルでエラーが出るようになった。

これについては、

- patching a file in a couple of compressed archives, by adding a line of code:

[cacao74@winnie source]$ pwd

/opt/vmware/lib/modules/source

[cacao74@winnie source]$ tar xf vmmon.tar

[cacao74@winnie source]$ vi vmmon-only/Makefile.kernel

add the bold line

vm_check_build = $(shell if $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default -DKBUILD_BASENAME=\"$(DRIVER)\" \

-Werror -S -o /dev/null -xc $(1) > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)

[cacao74@winnie source]$ tar xf vmnet.tar

[cacao74@winnie source]$ vi vmnet-only/Makefile.kernel

add the bold line

vm_check_build = $(shell if $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default -DKBUILD_BASENAME=\"$(DRIVER)\" \

-Werror -S -o /dev/null -xc $(1) > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)

[cacao74@winnie source]$ mv vmmon.tar vmmon.tar.ori

[cacao74@winnie source]$ mv vmnet.tar vmnet.tar.ori

[cacao74@winnie source]$ tar cf vmmon.tar vmmon-only/

[cacao74@winnie source]$ tar cf vmnet.tar vmnet-only/

[Topic: 2.6.15-1.1907_FC5: vmware-config.pl failsより引用]

という情報を見つけたので、

-DKBUILD_BASENAME=\"$(DRIVER)\"

[Makefile.kernelより引用]

とうのをvmmon-only/とvmnet-only/に追加したら、vmware-config.plが正常に終了するようになった。これで、無事にVMWare 5.5.1 がLinux kernel 2.6.16で動くようになった。

kernel 2.6.16でも、やっぱりiTunesでiPodが認識できず(;_; ただのUSB大容量ディバイスだと認識されてしまい、iPodの更新ができません。

_ わんこ日記:VMware Server RC1をインストール (2006-06-03(Sat) 03:05)

VMWare Server RC1ではLinux Kernel 2.6.16に対応ずみだった。

_ わんこ日記:Linux kernel 2.6.16-2でVMWare Guest OSでiPodを認識させる (2006-07-03(Mon) 15:07)

6月22日の日記で書いたように、Linuxのカーネル2.6.8以降だと、VMWare for Linux 5.5で動かしているGuestOS(WindowsXP)のiTunesでiPodが認識されない。(ただのUSBストレージとして認識されてしまう) Oh if it is SuSE 10 I have a good idea what is going on there. The..

本日のPingbacks(全0件)

Google Web検索 on-o.com内を検索