VMWare для Ubuntu 24.04 LTS не работает после обновления с 22.04, и я не могу его починить.

Вопрос или проблема

Я недавно обновился до 24.04 LTS с 22.04 LTS. При попытке запустить некоторые машины VMWare, как я обычно ожидал, мне нужно было перекомпилировать vmmon и vmnet в ядро. Это не сработало, ссылаясь на журнал, содержащий множество ошибок, связанных с невозможностью найти стандартные заголовки C, такие как stdarg.h, stdio.h и т.д.

Я следовал каждой инструкции, которую мог найти для решения проблемы, от простой перестройки до загрузки исходников и перестройки из них (даже с замечательными репозиториями mkubecek). Я был осторожен с использованием репозитория vmware версии 16.2.5, так как это была последняя версия, на которой работал этот компьютер.

Сборка из исходников завершается с различными сообщениями, которые я действительно не знаю, как решить. Эти сообщения – большое количество “нет предыдущего прототипа для”, а затем приводится метод (например, VMNetUserLister_Create) и файл исходного кода на языке C (например, userif.c). Это заставляет меня думать, что что-то значительно отличается в требовании к C (glibc?? – я действительно не обращал на это особого внимания, так как не ожидал такой проблемы).

Мой компьютер – это Dell с двумя процессорами XEON по 12 ядер каждый, 64 ГБ оперативной памяти и 2 ТБ дискового пространства. Так что мне не хватает производительности.

Я могу только подумать, что либо что-то пошло не так при обновлении, либо в 24.04 что-то радикально отличается от 22.02 в отношении того, что нужно VMWare.

Я готов принять любой совет сейчас. Я не могу сломать дальше то, что уже сломано!

Ответ или решение

Обновление операционной системы Linux может привести к различным проблемам с совместимостью программного обеспечения и драйверов. Из вашего описания кажется, что после перехода на новую версию Ubuntu 24.04 LTS возникли трудности с работой VMWare, что обусловлено необходимостью перекомпиляции модулей vmmon и vmnet для текущего ядра. Однако процесс компиляции не прошёл успешно из-за отсутствия стандартных заголовочных файлов C, таких как stdarg.h и stdio.h, что может указывать на более серьёзные недочёты в системе или в процессе обновления. Разберём возможные решения и причины данной проблемы.

Теория: причины проблемы

С учётом описания проблемы кажется, что проблема заключается в том, что после обновления ядра и необходимых для его работы библиотек, VMWare не может найти заголовочные файлы, которые, как правило, устанавливаются в системе по умолчанию. Возможные причины могут включать:

  1. Недостающие пакеты для разработки: Пакеты, содержащие заголовочные файлы для C-компилятора (например, build-essential, linux-headers-generic и т.п.), могут быть не установлены или удалены в процессе обновления.

  2. Изменения в библиотеке glibc: Новая версия glibc или изменений в её API может требовать обновлений в исходном коде модулей VMWare для корректной компиляции.

  3. Проблема с источниками и конфликт версий: Если исходный код для модулей VMWare не был оптимизирован для новой версии ядра, их старая версия может не компилироваться.

  4. Общая проблема с системой после обновления: Возможно, некоторые конфигурации или библиотеки в системе стали несовместимы или были удалены.

Пример: решение проблемы на практике

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

  1. Проверьте установку необходимых пакетов для разработки. Убедитесь, что установлены пакеты build-essential и соответствующие заголовки ядра:

    sudo apt update
    sudo apt install build-essential linux-headers-$(uname -r)
  2. Убедитесь, что необходимые пути указаны. Проверьте, что пути к заголовочным файлам и библиотеки установлены правильно.

  3. Используйте последний совместимый исходный код модулей. Убедитесь, что используете актуальные версии репозиториев. Mkubecek’а репозитории могут помочь, но проверьте, что настройки и зависимости под новую версию Ubuntu актуальны.

  4. Проанализируйте повторяющиеся ошибки прототипов. Ошибки "no previous prototype for" могут возникать при отсутствии деклараций или несовпадении сигнатур функций. Это может требовать ручного вмешательства — исправления исходного кода или поиска патчей.

  5. Перепроверка зависимости libc и glibc. Хотя код VMWare может быть несовместим с новой библиотекой, переустановка и переконфигурация может помочь:

    sudo apt install --reinstall libc6-dev

Применение: рекомендации для вашей системы

Исходя из приведённого выше, следующая стратегия может быть применена на вашей машине:

  1. Убедитесь в наличии всех пакетов разработки. Переустановите пакеты, поддерживающие компиляцию C-программ. Это обеспечит наличие всех необходимых заголовочных файлов.

  2. Используйте правильные исходные файлы VMWare. Обращайте внимание на изменения в репозиториях, особенно в контексте вашей версии Ubuntu и её ядра.

  3. Проверка конфигурации связанного ПО. Иногда ошибки с заголовками связаны с неправильной конфигурацией среды. Проверка путей системных переменных, таких как PATH и LD_LIBRARY_PATH, может быть полезной.

  4. Будьте готовы к удалению и перевстановке ПО. Возможно, проще будет установить последнюю стабильную и официально поддерживаемую версию VMWare для вашей новой ОС.

Если после выполнения всех вышеперечисленных действий проблема сохраняется, рекомендуется обратиться к официальным форумам и сообществам Ubuntu или VMWare, возможно, другие пользователи уже столкнулись с подобной проблемой и могут предоставить актуальные патчи или советы.

Оцените материал
Добавить комментарий

Капча загружается...