VM を実行する前に、いくつかのモジュールをコンパイルし、実行中のカーネルにロードする必要があります。

質問

Ubuntu 20.04 で仮想マシンを起動するとVMware、次のエラーが報告されますBefore you can run VMware several modules must be compiled and loaded into the running kernel。プロンプトに従ってクリックしてもinstall問題は解決できません。

解決

1 ダウンロードしvmware-host-modulesて、対応するブランチに切り替えます

git clone https://github.com/mkubecek/vmware-host-modules
cd vmware-host-modules
git checkout workstation-16.1.2 #这里16.1.2替换为你的VM版本

ここで直接実行すると、sudo make & sudo make install次のエラーが報告されます。

   67 |    ASSERT_ON_COMPILE(sizeof(Selector) == 2 &&                                \
      |                      ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   68 |                      ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   69 |                       sizeof(expr) <= 2))
      |                       ~~~~~~~~~~~~~~~~~~    

2.編集vm_asm_x86.h

編集vmware-host-modules/vmmon-only/include/vm_asm_x86.h
65 行目あたりを次のように変更します。

#ifndef USE_UBSAN
#define ASSERT_ON_COMPILE_SELECTOR_SIZE(expr)                                \
   ASSERT_ON_COMPILE(sizeof(Selector) == 2 &&                                \
                     ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
                      sizeof(expr) <= 2))
#else
#define ASSERT_ON_COMPILE_SELECTOR_SIZE(expr)
#endif

次のように変更します (他の人にコメントし、#define ASSERT_ON_COMPILE_SELECTOR_SIZE(expr)この行のみを残します)。

// #ifndef USE_UBSAN
// #define ASSERT_ON_COMPILE_SELECTOR_SIZE(expr)                                \
//    ASSERT_ON_COMPILE(sizeof(Selector) == 2 &&                                \
//                      ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
//                       sizeof(expr) <= 2))
// #else
#define ASSERT_ON_COMPILE_SELECTOR_SIZE(expr)
// #endif

3.make & make install

次に、以下を実行します。

sudo make
sudo make install

最後に、VM が正常に起動できるようになります。

参考リンク:

おすすめ

転載: blog.csdn.net/lyh458/article/details/125919668