Share:

Решение проблем с модулями VMware в Ubuntu 22.04

YPermitinвDevOps

2024-08-30

#DevOps

#*.nix

#Linux

#VMWare

#решение

#проблемы

Кто долго раздумывает, не всегда находит лучшее решение.
(с) Иоганн Вольфганг Гёте

Описание решения ошибок при установке модулей VMWare Workstation на Ubuntu 22.04 после обновления ядра или при начальной установке.

Содержание

Описание проблемы

При попытке установки модулей VMWare Workstation могут возникнуть ошибки вида:

Unable to install all modules

В логах установщика содержиться подобная информация:

Log for VMware Workstation pid=4915 version=16.2.4 build=build-19376536 option=Release
The host is 64-bit.
Host codepage=UTF-8 encoding=UTF-8
Host is Linux 5.15.0-25-generic Ubuntu 22.04 LTS Ubuntu 22.04 LTS 22.04
...
...
...
Using kernel build system.
/tmp/modconfig-Xivrap/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Free() falls through to next function PhysTrack_Add()
/tmp/modconfig-Xivrap/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Add() falls through to next function PhysTrack_Remove()
/tmp/modconfig-Xivrap/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Remove() falls through to next function PhysTrack_Test()
In file included from /tmp/modconfig-Xivrap/vmmon-only/./include/x86desc.h:33,
from /tmp/modconfig-Xivrap/vmmon-only/./include/modulecall.h:34,
from /tmp/modconfig-Xivrap/vmmon-only/common/task.c:60:
/tmp/modconfig-Xivrap/vmmon-only/common/task.c: In function ‘TaskRestoreHostGDTTRLDT’:
/tmp/modconfig-Xivrap/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
...

Или могут быть ошибки такого вида (пример для русской локализации):

In file included from /tmp/modconfig-QkiJUD/vmmon-only/common/apic.c:19:
/tmp/modconfig-QkiJUD/vmmon-only/./include/vm_basic_defs.h:54:12: fatal error: stddef.h: Нет такого файла или каталога
54 | # include <stddef.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:257: /tmp/modconfig-QkiJUD/vmmon-only/common/apic.o] Ошибка 1
make[2]: *** Ожидание завершения заданий…
In file included from /tmp/modconfig-QkiJUD/vmmon-only/bootstrap/bootstrap.c:27:
/tmp/modconfig-QkiJUD/vmmon-only/./include/vm_basic_defs.h:54:12: fatal error: stddef.h: Нет такого файла или каталога
54 | # include <stddef.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:257: /tmp/modconfig-QkiJUD/vmmon-only/bootstrap/bootstrap.o] Ошибка 1
In file included from /tmp/modconfig-QkiJUD/vmmon-only/./include/cpu_types.h:29,
from /tmp/modconfig-QkiJUD/vmmon-only/./include/modulecall.h:33,
from /tmp/modconfig-QkiJUD/vmmon-only/common/crosspage.c:57:
/tmp/modconfig-QkiJUD/vmmon-only/./include/vm_basic_defs.h:54:12: fatal error: stddef.h: Нет такого файла или каталога
54 | # include <stddef.h>
| ^~~~~~~~~~
compilation terminated.

Причина ошибки

Дистрибутив модулей ядра для VMWare Workstation, который поставлялся с установщиком программы, устарел и стал несовместимым с текущей версией ядра.

Как решить

Необходимо обновить модули до актуальной версии. Для этого нужно выполнить ряд команд:

# Переходим в каталог с исходными файлами модулей
cd /usr/lib/vmware/modules/source
# Клонируем публичный репозиторий модулей VMWare Workstation от Michal Kubeček
git clone https://github.com/mkubecek/vmware-host-modules
# Переходим в каталог склонированного репозитория
cd vmware-host-modules
# Переходим на ветку, в которой идет разработка для версии 16.2.4
# (!!! Здесь можно указать версию, которая нужна Вам)
git checkout workstation-16.2.4
# Выполняем сборку
make
# Создаем архивы для модулей
tar -cf vmnet.tar vmnet-only
tar -cf vmmon.tar vmmon-only
# И заменяем старые архивы на новые
mv vmnet.tar /usr/lib/vmware/modules/source/
mv vmmon.tar /usr/lib/vmware/modules/source/
# Повторно делаем установку модулей VMWare Workstation
vmware-modconfig --console --install-all

После этого VMWare Workstation будет успешно запущен.

Не забываем, что команды нужно вводить с соответствующими привилегиями.

Y

YPermitin

.NET, TSQL, DevOps, 1C:Enterprise

Developer, just developer.

Поделиться

Другие статьи

Расширение для SQL Server. Быстро и просто. SQLCLR снова в деле
Расширение для SQL Server. Быстро и просто. SQLCLR снова в деле
Решение проблем с модулями VMware в Ubuntu 22.04
Решение проблем с модулями VMware в Ubuntu 22.04
Берем процессы под контроль в .NET
Берем процессы под контроль в .NET

Все статьи от автора: YPermitin

Copyright © 2024 Убежище инженера