web-dev-qa-db-ja.com

Ubuntu 16.04上のVMWare Workstation Pro 12はvmmonをコンパイルできません

Ubuntu 16.04(デュアルブース)に問題なくVMwareバンドルをインストールしました。実行しようとしてコンパイルしようとすると、次のログが生成され、vmmonをコンパイルできません。

...
2016-08-15T16:13:39.909+02:00| vthread-4| I125: Successfully extracted the vmmon source.
2016-08-15T16:13:39.910+02:00| vthread-4| I125: Building module with command "/usr/bin/make -j8 -C /tmp/modconfig-SUMBLV/vmmon-only auto-build HEADER_DIR=/lib/modules/4.4.0-34-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2016-08-15T16:13:40.934+02:00| vthread-4| W115: Failed to build vmmon.  Failed to execute the build command.

Webで検索して問題のトラブルシューティングを開始し、vmnet.target_user_pagesメソッド名をget_user_pages_remoteの両方に変更しました。 vmmon.tarディレクトリにありますが、問題は解決していません。vmmonはまだコンパイルされません。

ターミナル経由でgksudoを使用してVMwareを起動すると、次のエラーメッセージが表示されます。

Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                    done
   VMware Authentication Daemon                                        done

グラフィックカード関連の問題だと思って、グラフィックカード用のNVidiaドライバーを正常にインストールし、インストール後に起動するときにMOK管理ユーティリティを使用してセキュアブートを無効にしました。また、BIOSでセキュアブートを無効にしました。これはAsusラップトップです。

Gksudoを使用してVMWareバンドルをインストールするのを忘れていました。問題の原因ではないと思いますが、正確さのためにこれを指摘します。

カーネルのバージョンは4.4.0-34-genericです。このカーネルバージョンにパッチを適用するのはVMWareチーム次第だと読みましたが、これを解決するための簡単な修正はありますか、それともVirtualboxを撮影してそれをやり直すべきですか

別の場所からインポートしたい仮想マシンイメージがいくつかあります。

読んでくれてありがとう。

5
uncanny_valley

同じ問題がありました。ここに修正があります

cd /usr/lib/vmware/modules/source

Vmmon.tarファイルを使用して展開します(これらを実行するにはsu/Sudoが必要な場合があります)

tar xf vmmon.tar

ファイル./vmmon-only/linux/driver.cを編集します

nano ./vmmon-only/linux/driver.c

https://forums.gentoo.org/viewtopic-p-7841306.html#7841306 の好意により、これらの変更を適用します。400行目付近で、-で始まる行を削除し、+で始まる行を追加します。 (実際に+を付けないでください)。 patchコマンドを使用してこれを行う方法はありますが、何でもあります。パッチファイルの読み方を知っていれば、そのフォームのユーザーには別のファイルへの別の変更が含まれていることがわかりますが、それを実行しなくてもすべて機能します。

#ifdef VMX86_DEVEL 
    unregister_chrdev(linuxState.major, linuxState.deviceName); 
 #else 
-   if (misc_deregister(&linuxState.misc)) { 
-      Warning("Module %s: error unregistering\n", linuxState.deviceName); 
-   } 
+   misc_deregister(&linuxState.misc); 

元のバックアップ

mv vmmon.tar vmmon.tarbackup

ファイルをリター

tar cf vmmon.tar ./vmmon-only

私はいくつかのことをして、各ステップの後にテストしなかったので、この時点から少し不確かです。したがって、これらの両方が厳密に必要なわけではありません。編集したばかりのdriver.cを使用してライブラリを再コンパイルします

Sudo vmware-modconfig --console --install-all

VMWareを実行し、コンパイルしたばかりのライブラリを使用するように指示します

Sudo VMWARE_USE_SHIPPED_LIBS=yes vmwarex:
7
m3k3r1