Обновление модулей ядра VMware на Linux

VMware — удобное решение для запуска нескольких ОС на одном компьютере. Однако после апдейта ядра Linux нередко ломаются модули VMware (host modules). В таких случаях у вас есть два варианта: ждать официального обновления от VMware или собрать и установить патчи самостоятельно. В этой инструкции показано, как сделать второе — быстро и вручную.
Быстрая карта действий
- Проверить, какая версия VMware установлена (Player или Workstation).
- Перейти на страницу mkubecek/vmware-host-modules на GitHub и выбрать ветку, соответствующую версии VMware.
- Клонировать репозиторий, выполнить make и sudo make install.
- При последующих обновлениях ядра просто выполнять git pull && make && sudo make install.
Важно: для сборки модулей нужен установленный набор инструментов разработки (make, gcc, kernel-headers).
Зачем это работает — краткое объяснение
Модули VMware — это набор C-исходников, которые должны быть скомпилированы под конкретную версию ядра. Когда API/ABI ядра меняются, старые бинарные модули больше не загружаются. Репозиторий mkubecek/vmware-host-modules содержит патчи и исходники, адаптированные под новые версии ядра, чтобы вы могли пересобрать модули локально.
Скачать патчи для текущей версии VMware
Репозиторий mkubecek/vmware-host-modules на GitHub собирает правки, необходимые для сборки host-модулей VMware (и для VMware Player, и для Workstation) под свежие ядра.
Самый простой путь — клонировать нужную ветку репозитория, собрать и установить файлы оттуда.
На странице репозитория выберите версию патча, соответствующую вашей версии VMware. Если вы не уверены в версии, скорее всего у вас последняя стабильная релизная ветка.
Найдите кнопку с веткой (обычно подписана master или номером версии). Затем нажмите зелёную кнопку Code и скопируйте URL для клонирования.
В терминале выполните команду, заменив URL на скопированный:
git clone https://github.com/mkubecek/vmware-host-modules.gitКлонирование обычно занимает несколько секунд. После этого вы получите локальную копию исходников и патчей.
Установка патча в первый раз
Перейдите в только что созданную директорию и выполните команды по порядку. Возможно, потребуется ввести пароль для sudo:
cd vmware-host-modules
make
sudo make installВо время сборки вы увидите много сообщений компилятора. Время выполнения зависит от мощности системы — от пары секунд до нескольких минут.
Важно: если команда make не найдена, установите инструменты сборки. В большинстве дистрибутивов это пакет build-essential или аналогичный, а также заголовки ядра (kernel-headers).
После успешной установки модулей попробуйте запустить VMware. Если появляется та же ошибка, перезагрузите систему, чтобы убедиться, что все модули загружены корректно.
Обновление модулей после следующих апдейтов ядра
Когда вы в следующий раз обновите ядро, повторно выполнить сборку проще — репозиторий уже клонирован.
В каталоге репозитория выполните:
git pull
sudo make clean
make
sudo make install- git pull скачает последние правки.
- sudo make clean удалит артефакты предыдущей сборки.
- make и sudo make install пересоберут и установят модули под новое ядро.
Полный чеклист перед сборкой (быстрый)
- Убедитесь, что установлены gcc и make (или эквиваленты).
- Установлены заголовки текущего ядра (kernel-headers / linux-headers).
- Проверена версия VMware (Player vs Workstation).
- Склонирован или обновлён репозиторий mkubecek/vmware-host-modules.
- Выполнены make и sudo make install под той же версией ядра, для которой нужны модули.
Частые ошибки и как их исправить
Important: Ниже — типичные ситуации и способы их решения.
Ошибка: «make: command not found» — установите инструменты сборки: в Debian/Ubuntu sudo apt install build-essential; в Fedora/RHEL sudo dnf groupinstall “Development Tools” и установите kernel-headers.
Ошибка при компиляции, упоминание внутренних API ядра — возможно, в репозитории ещё нет патча под вашу конкретную версию ядра. Проверьте открытые issue в репозитории или попробуйте выбрать соседнюю ветку/патч.
Модули не загружаются после установки — reboot, затем проверьте dmesg и systemctl status vmware (или vmware-workstation.service).
Конфликт с пакетом из дистрибутива — убедитесь, что нет другой установленной версии модулей, удалите старые артефакты перед make install.
Когда этот метод не сработает (примеры)
- Если API ядра изменилось радикально, и сообщество ещё не адаптировало исходники — придется ждать обновления от mkubecek или от VMware.
- Если у вас модифицированное или очень старое ядро, отсутствуют совместимые заголовки.
- Если вы используете модульную сборку VMware, сильно вшитую в дистрибутив — ручная сборка может не подойти.
Альтернативные подходы
- Ждать официального патча от VMware — самое простое, но медленнее.
- Использовать другой гипервизор: VirtualBox, QEMU/KVM — часто более интегрированы с Linux и менее чувствительны к частым обновлениям ядра.
- Откат ядра на предыдущую версию, где VMware работал — временное решение; полезно, если срочно нужно запустить VM.
Ментальные модели и правила принятия решения
- Сколько времени вы можете ждать? Если срочно — перепишите модули.
- Требуется ли вам GUI-Workstation или достаточно легковесного гипервизора? Если не нужен специфический функционал VMware, переход на KVM/VirtualBox может снизить количество подобных проблем.
- Готовы ли вы устанавливать инструменты разработки? Если да — ручная сборка быстро окупается.
Мини-методология: стандартная последовательность действий
- Проверить версию VMware и текущего ядра: uname -r и сведения о приложении.
- Клонировать нужную ветку mkubecek/vmware-host-modules.
- Установить зависимости (gcc, make, kernel-headers).
- Собрать и установить модули: make && sudo make install.
- Перезагрузить систему при необходимости.
- Проверить работоспособность VM и логирование (dmesg, journalctl).
Роли — быстрые рекомендации
- Администратор: автоматизируйте процесс сборки в ansible/chef/puppet; добавьте проверку версий ядра и авто-pull из репозитория.
- Разработчик: держите локальную копию репозитория и скрипт для быстрого make && sudo make install.
- Домашний пользователь: если не хочется возиться, рассмотрите откат ядра или альтернативный гипервизор.
Чеклист для тестирования (критерии приёмки)
- VMware запускается без ошибок сразу после установки модулей.
- Виртуальные машины загружаются и работают нормально (сетевые адаптеры, диски, GUI).
- В dmesg не видно сообщений о failed to load vmmon/other modules.
- При последующем обновлении ядра процесс повторяется без ручной отладки.
Краткая галерея крайних случаев и советы по миграции
- Если модуль несовместим и нет патча — используйте KVM/QEMU (в Fedora/Ubuntu доступны пакеты qemu-kvm/libvirt). Это потребует переноса образов дисков (qcow2/ raw / vmdk).
- Для автоматизации обновлений собирайте пакеты (deb/rpm) из исходников и ставьте их через стандартный менеджер пакетов.
Справочная таблица команд (cheat sheet)
# Клонировать репозиторий (один раз)
git clone https://github.com/mkubecek/vmware-host-modules.git
# При первом установке
cd vmware-host-modules
make
sudo make install
# При последующих обновлениях
git pull
sudo make clean
make
sudo make install
# Проверки
uname -r # версия ядра
dmesg | grep -i vm # лог сообщений ядра по vm
journalctl -u vmware # служебные логи VMware (если есть сервис)Диаграмма принятия решения
flowchart TD
A[VMware не запускается после обновления ядра?] -->|Да| B{Клонирован mkubecek/vmware-host-modules?}
B -->|Нет| C[Клонировать репозиторий и выбрать ветку]
B -->|Да| D[Выполнить git pull && make && sudo make install]
D --> E{Ошибки при компиляции?}
E -->|Нет| F[Перезагрузить и проверить VMware]
E -->|Да| G[Проверить зависимости и заголовки ядра]
G --> H{Решилась ли проблема?}
H -->|Нет| I[Искать issue или открыть новый на GitHub / рассмотреть альтернативы]
H -->|Да| FЗаключение
Теперь вы знаете, как быстро обновлять модули ядра VMware после апдейтов Linux. Клонирование репозитория mkubecek/vmware-host-modules и периодическая пересборка — надежный и быстрый способ вернуть работоспособность виртуальных машин без долгого ожидания официальных патчей.
Краткая сводка: проверьте зависимости, клонируйте нужную ветку, выполните make и sudo make install. При проблемах смотрите логи, открывайте issue в репозитории или рассматривайте переход на другой гипервизор.
Резюме
- Быстрое решение: git clone + make + sudo make install.
- Обновлять при каждом апдейте ядра — git pull && make && sudo make install.
- Убедитесь в наличии инструментов сборки и заголовков ядра.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента