Vmwareを実行できません。以下のエラーログがその理由を示しています。
ただし、アイデアや提案は歓迎します。ありがとうございました。
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Log for VMware Workstation pid=5707 version=10.0.1 build=build-1379776 option=Release
2014-02-03T16:32:00.904+08:00| vthread-3| I120: The process is 64-bit.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Host codepage=UTF-8 encoding=UTF-8
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Host is Linux 3.13.0-031300-generic Ubuntu 13.10
2014-02-03T16:32:00.903+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.903+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/usr/lib/vmware/settings": No such file or directory.
2014-02-03T16:32:00.903+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.903+08:00| vthread-3| I120: PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.904+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/config": No such file or directory.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Optional preferences file not found at /root/.vmware/config. Using default values.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Unable to check permissions for preferences file.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.904+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/preferences": No such file or directory.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Failed to load user preferences.
2014-02-03T16:32:00.904+08:00| vthread-3| W110: Logging to /tmp/vmware-root/vmware-modconfig-5707.log
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Created new pathsHash.
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:00.935+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:00.950+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:00.950+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid. Whoohoo!
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmmon module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmnet module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmblock module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmci module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vsock module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Setting vsock to depend on vmci.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Invoking modinfo on "vmmon".
2014-02-03T16:32:01.203+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 0.
2014-02-03T16:32:01.203+08:00| vthread-3| I120: Invoking modinfo on "vmnet".
2014-02-03T16:32:01.210+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.210+08:00| vthread-3| I120: Invoking modinfo on "vmblock".
2014-02-03T16:32:01.214+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.215+08:00| vthread-3| I120: Invoking modinfo on "vmci".
2014-02-03T16:32:01.220+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.220+08:00| vthread-3| I120: Invoking modinfo on "vsock".
2014-02-03T16:32:01.225+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 0.
2014-02-03T16:32:01.252+08:00| vthread-3| I120: to be installed: vmnet status: 0
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.273+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.289+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.289+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid. Whoohoo!
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Kernel header path retrieved from FileEntry: /lib/modules/3.13.0-031300-generic/build/include
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Update kernel header path to /lib/modules/3.13.0-031300-generic/build/include
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.528+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.542+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.542+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid. Whoohoo!
2014-02-03T16:32:01.546+08:00| vthread-3| I120: Found compiler at "/usr/bin/gcc"
2014-02-03T16:32:01.553+08:00| vthread-3| I120: Got gcc version "4.8".
2014-02-03T16:32:01.553+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4. But that is ok.
2014-02-03T16:32:01.553+08:00| vthread-3| I120: Using user supplied compiler "/usr/bin/gcc".
2014-02-03T16:32:01.562+08:00| vthread-3| I120: Got gcc version "4.8".
2014-02-03T16:32:01.563+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4. But that is ok.
2014-02-03T16:32:01.572+08:00| vthread-3| I120: Trying to find a suitable PBM set for kernel "3.13.0-031300-generic".
2014-02-03T16:32:01.572+08:00| vthread-3| I120: No matching PBM set was found for kernel "3.13.0-031300-generic".
2014-02-03T16:32:01.573+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4. But that is ok.
2014-02-03T16:32:01.573+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.573+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.587+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.588+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid. Whoohoo!
2014-02-03T16:32:02.909+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4. But that is ok.
2014-02-03T16:32:02.910+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:02.910+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:02.929+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:02.929+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid. Whoohoo!
2014-02-03T16:32:02.929+08:00| vthread-3| I120: Using temp dir "/tmp".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:02.995+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:02.995+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid. Whoohoo!
2014-02-03T16:32:03.237+08:00| vthread-3| I120: Invoking modinfo on "vmnet".
2014-02-03T16:32:03.245+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:06.212+08:00| vthread-3| I120: Setting destination path for vmnet to "/lib/modules/3.13.0-031300-generic/misc/vmnet.ko".
2014-02-03T16:32:06.241+08:00| vthread-3| I120: Extracting the vmnet source from "/usr/lib/vmware/modules/source/vmnet.tar".
2014-02-03T16:32:06.370+08:00| vthread-3| I120: Successfully extracted the vmnet source.
2014-02-03T16:32:06.370+08:00| vthread-3| I120: Building module with command "/usr/bin/make -j2 -C /tmp/modconfig-mjoI0c/vmnet-only auto-build HEADER_DIR=/lib/modules/3.13.0-031300-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2014-02-03T16:32:19.531+08:00| vthread-3| W110: Failed to build vmnet. Failed to execute the build command.
this solution を使用して3.13カーネルの問題を修正できました。
著者は、vmnetソースにパッチを適用することをお勧めします。
次の内容でファイルvmnet313.patch
をホームディレクトリに作成します。
205a206
> #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
206a208,210
> #else
> VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:
> #endif
255c259,263
< transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
---
> #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
> transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
> #else
> transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
> #endif
または、 このパッチ をホームディレクトリにダウンロードし、名前をvmnet313.patch
に変更します。例えば:
wget "http://Pastebin.com/raw.php?i=p3bkbAMu" -O vmnet313.patch
次に、次のコマンドを実行します。
#Change directory into the vmware module source directory
cd /usr/lib/vmware/modules/source
# untar the vmnet modules
tar -xvf vmnet.tar
#run a the patch you should have just saved earlier
patch vmnet-only/filter.c < ~/vmnet313.patch
# re-tar the modules
tar -uvf vmnet.tar vmnet-only
#delete the previous working directory
rm -r vmnet-only
# run the vmware module build program. (alternatively just run the GUI app)
/usr/lib/vmware/bin/vmware-modconfig --console --install-all
これで、最後のコマンド(またはvmplayer
)が正常に実行されるはずです。
いくつかの誤字修正(@nonsleeprの回答を参照)を含むこのvmnet313.patchを使用して、Ubuntu 14.04.4 LTS 64ビットデスクトップで9.0.2から9.02.4にアップグレードする際の問題を解決しました。
このスニペットは Pastebin.com/raw.php?i=p3bkbAM ;のコンテンツです。しかし、最後に2つのタイプミスを修正しました。
--- vmnet-only/filter.c 2013-10-18 23:11:55.000000000 +0400
+++ vmnet-only/filter.c 2013-12-03 04:16:31.751352170 +0400
@@ -27,6 +27,7 @@
#include "compat_module.h"
#include <linux/mutex.h>
#include <linux/netdevice.h>
+#include <linux/version.h>
#if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)
# include <linux/module.h>
#else
@@ -203,7 +204,11 @@
#endif
static unsigned int
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
VNetFilterHookFn(unsigned int hooknum, // IN:
+#else
+VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:
+#endif
#ifdef VMW_NFHOOK_USES_SKB
struct sk_buff *skb, // IN:
#else
@@ -252,7 +257,14 @@
/* When the Host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
/* When the Host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
- transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+ transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+#else
+ transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
+#endif
+ packetHeader = compat_skb_network_header(skb);
+ ip = (struct iphdr*)packetHeader;
私はまったく同じ問題に遭遇しました(Linux Mint 17、kernel 3.17)
見つかった解決策は次のとおりです。
# - as root user
$ cd /usr/lib/vmware/modules/source
$ tar -xvf vmnet.tar
# - edit the file vmnet-only/netif.c and replace the line that looks like
dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);
to
dev = alloc_netdev(sizeof *netIf, deviceName, NET_NAME_UNKNOWN, VNetNetIfSetup);
$ tar -cvf vmnet.tar vmnet-only/
$ rm -rf vmnet-only/
その後、vmplayerを再度実行します。
インストーラーにはシステムの正しいバージョンが常にあるとは限らないため、VMwareはいくつかのモジュールをビルドする必要があります。
Build-essentialをインストールします。
Sudo apt-get install build-essential
これにより、コンパイラと他のすべてのニーズがインストールされます。再起動してvmwareを再起動してください。これで解決します。
システム全体を完全にアップグレードせずに12.04 Hardware Enablement Stackを14.04バージョンにアップグレードすると、vmnetモジュールがvmplayer 6.0.1用にコンパイルに失敗する場合があります。私の解決策は、最新の6.0.3 vmplayerにアップグレードすることでした。その後は問題ありませんでした。
64ビットx86 SMP上のバージョン3.13.0のカーネルイメージを「linux-image-3.13.0-43-generic」に更新し、「linux-image-3.8.0-44-generic」(.. 。しかし、Ubuntuをアップグレードしませんでした!)
その後、VMPlayer 6.0の起動中に、VMPLayerによってログに記録されたエラーメッセージの1つに「vmnetの構築に失敗しました。構築コマンドの実行に失敗しました。」と表示され、VMPlayerの起動に失敗しました。
更新されたカーネルイメージを削除して、カーネルイメージをロールバックしました。
apt-get remove 3.13.0-43-generic
更新されたlinux-headersも削除されました。
Sudo apt-get autoremove
これで、カーネルイメージが以前のものに戻ります。
cat/proc/version:Linuxバージョン3.8.0-44-generic(buildd @ tipua)(gccバージョン4.6.3(Ubuntu/Linaro 4.6.3-1ubuntu5))#66〜precise1-Ubuntu SMP Tue Jul 15 04:01 :04 UTC 2014
その後、VMPlayer 6.0は正常に戻り、現在は正常に動作します。
私にとって、これらのソリューションは機能しませんでした。私はUbuntu 14を使用しているので、探求に行き、解決策を見つけました here 。
コマンドは次のとおりです。
Sudo apt-get install build-essential linux-headers-`uname -r`
32ビットシステムでは、次のコマンドを使用してVMware Playerをインストールできます。
mkdir ~/VMware && cd ~/VMware
wget -c http://goo.gl/kkfRJg -O VMware-Player-i386.bundle.tar
tar -xvf VMware-Player-i386.bundle.tar
chmod +x VMware-Player-6.0.1-1379776.i386.bundle
Sudo sh VMware-Player-6.0.1-1379776.i386.bundle
mkdir ~/VMware && cd ~/VMware
wget -c http://goo.gl/Uxia2s -O VMware-Player-x86_64.bundle.tar
tar -xvf VMware-Player-x86_64.bundle.tar
chmod +x VMware-Player-6.0.1-1379776.x86_64.bundle
Sudo sh VMware-Player-6.0.1-1379776.x86_64.bundle
インストール後、すべてが正常に機能し、Windows XP VMを最小限の問題でマウントできました。ドライバーをさらにいくつか更新する必要がありましたが、問題なく実行されました。 VMWare Player 6は、私のバージョンのUbuntuで最適に動作するようです。
別の解決策は、/usr/lib/vmware/modules/source/vmnet.tar
をVMware-Player-7.1.bundle
から取得した作業用のものに置き換えることです。インストーラーが終了するまで待つ必要はありません。ファイルを別の場所にコピーして中止します。次にVMware-Workstation10.bundle
(私の場合)を実行してvmnet.tar
を置き換え、作業中のワークステーションを実行します
Vmwareのバージョンにはfilter.cが含まれていません。ここにリストされているパッチを使用してvmnetにパッチを適用する必要があることがわかりました。
https://communities.vmware.com/message/2531821
diff -ur vmnet-only.a/driver.c vmnet-only/driver.c
--- vmnet-only.a/driver.c 2014-11-20 20:13:56.000000000 -0500
+++ vmnet-only/driver.c 2015-02-09 15:40:10.916640592 -0500
@@ -265,10 +265,17 @@
{
int ret = -ENOTTY;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
ret = VNetFileOpIoctl(filp->f_dentry->d_inode, filp, iocmd, ioarg);
}
return ret;
+#else
+ if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
+ ret = VNetFileOpIoctl(filp->f_path.dentry->d_inode, filp, iocmd, ioarg);
+ }
+ return ret;
+#endif
}
@@ -1191,11 +1198,19 @@
struct inode *inode = NULL;
long err;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
if (filp && filp->f_dentry) {
inode = filp->f_dentry->d_inode;
}
err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
return err;
+#else
+ if (filp && filp->f_path.dentry) {
+ inode = filp->f_path.dentry->d_inode;
+ }
+ err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
+ return err;
+#endif
}
#endif
diff -ur vmnet-only.a/userif.c vmnet-only/userif.c
--- vmnet-only.a/userif.c 2014-11-20 20:13:56.000000000 -0500
+++ vmnet-only/userif.c 2015-02-09 15:41:02.150847338 -0500
@@ -523,7 +523,13 @@
.iov_base = buf,
.iov_len = len,
};
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
return skb_copy_datagram_iovec(skb, 0, &iov, len);
+#else
+ struct iov_iter to;
+ iov_iter_init(&to, READ, &iov, 1, len);
+ return skb_copy_datagram_iter(skb, 0, &to, len);
+#endif
}
これはlubuntu 18.04 LTSで機能しました。 vmware-player-14.0.0-6661328.x86_64.bundleを使用しています。 vmplayerをダウンロードしてインストールした後、モジュールをビルドしようとしましたが失敗しました。修正するにはこのブランチからパッチをダウンロードする必要があります: https://github.com/mkubecek/vmware-Host-modules/tree/player-14.1.1 次の理由により、マスターをダウンロードしないでください。
ブランチ「マスター」はモジュールのビルドには使用できません。モジュールには共通ファイルのみが含まれているため、モジュール内の変更を他のすべてのブランチに簡単にマージできます。実際のソースを取得するには、「実際の」ブランチをチェックアウトします
ダウンロードした後、解凍して展開したディレクトリにcdして、
make
Sudo make install
Vmplayerを起動すると動作するはずです