Ubuntu 17.10 Обновление Broke VMWare Workstation 12.5


10

Привет после обновления до Ubuntu 17.10, vmware теперь не запускается.

Я получаю сообщение:

/usr/lib/vmware/bin/vmware-modconfig: Relink `/lib/x86_64-linux-gnu/libbsd.so.0' with `/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol `clock_gettime'

Я знаю, что есть доступные исправления, и я пытаюсь применить их и перекомпилировать. Я бежал от решения в https://communities.vmware.com/thread/571370 :

cd ~  
#Copy the vmmon source tar ball to your temporary location
cp /usr/lib/vmware/modules/source/vmmon.tar .   
#Extract the tar ball
tar xf vmmon.tar  

#Download the modified file that mkubecek posted and overwrite the one from the tar ball for VMware Workstation 12.5:
wget -O ./vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c   

#Wrap up the newly modified files into a tar ball replacing the original one
sudo tar cf /usr/lib/vmware/modules/source/vmmon.tar vmmon-only  

#Rebuild the VMware kernel modules
sudo vmware-modconfig --console --install-all  
Failed to get gcc information. 
gcc --version
gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0 ...

К сожалению, vmware-modconfig терпит неудачу из-за зависимости, которая кажется определенной версией gcc. Я на правильном пути? Любая помощь в этом вопросе будет высоко ценится.

РЕДАКТИРОВАТЬ Спасибо, Стив, ниже снова заработал vmware. Я включил незначительные исправления. Протестировано и подтверждено, что я могу запустить виртуальную машину.

sudo su
# do all below as root
cd /usr/lib/vmware/modules/source
tar xvf vmmon.tar 
tar xvf vmnet.tar
wget -O ./vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c
vim vmnet-only/bridge.c
cd vmmon-only/
make
cd ../vmnet-only/
make
cd ..
mkdir /lib/modules/4.13.0-16-generic/misc
cp *.o /lib/modules/4.13.0-16-generic/misc
insmod /lib/modules/4.13.0-16-generic/misc/vmmon.o
insmod /lib/modules/4.13.0-16-generic/misc/vmnet.o
rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1
vmware-networks --start
exit

# run vmware as normal user
/usr/lib/vmware/bin/vmware

2
В общем, сторонняя виртуализация будет немного отставать от новых ядер и новых выпусков. Похоже, что это влияет на VMware больше, чем VirtualBox. Поскольку vmware является закрытым исходным кодом, вам придется спросить их. Как потенциальный альтернативный вариант - вот почему я стараюсь как можно больше использовать KVM или LXC (хотя я все еще чувствую, что LXC не готов к рабочим серверам). KVM + Spice очень быстро (FWIW). Я предполагаю, что с vmware будет обходиться где-то от 1-3 дней до 3-4 недель, в зависимости от сложности проблемы.
Пантера

Патч, который вы пытаетесь применить, предназначен для устранения ошибки с обработкой памяти, а не для проблемы, связанной с упомянутым вами сообщением об ошибке. AFAIK, пока нет решения этой проблемы. На панели запуска есть сообщение об ошибке: bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552
user749720

Вам удалось решить проблему «Не удалось получить информацию о gcc»?
Ожужан Топчу

К сожалению, нет, в настоящее время я запускаю скрипт, который выполняет sudo insmodи vmware-networksкоманды, а затем исполняет двоичный файл vmware как обычный пользователь.
user1330734

У меня Lubuntu 18.04 - Метод от Стивена Вассела не сработал. Решение от Tokam - обновление до VMWare 14 тоже не работало - из-за политики от VMWare только для поддержки новейшего оборудования. Метод от Джона сработал - но только если я запустил vmplayer как su. В противном случае я получу надежное сообщение: строка 106: 29487 ошибка памяти (записан дамп памяти) "$ BINDIR" / vmware-modconfig --appname = "VMWaer Player! --Ivon =" vmware-player "
Tobias Trappe

Ответы:


12

Мне удалось заставить VMWare Workstation 12.5.7 работать на Kubuntu 17.10.

В /usr/lib/vmware/modules/source:

  1. Извлечь vmmon.tarиvmnet.tar

    sudo tar -xf vmmon.tar
    sudo tar -xf vmnet.tar
    

    Это создаст vmmon-onlyи vmnet-onlyкаталоги.

  2. Получить исправленный hostif.c

    sudo wget -O vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c
    

    (примечание: https://communities.vmware.com/thread/571370 - также содержит аналогичное исправление для VMWare Workstation 14)

  3. Редактировать vmnet-only/bridge.c:

    639c639
    <        atomic_inc(&clone->users);
    ---
    >        atomic_inc((atomic_t*)&clone->users);
    
  4. Запустить

    make -C vmmon-only
    make -C vmnet-only
    cp -t /lib/modules/4.13.0-16-generic/misc *.ko
    modprobe -r vmmon
    insmod /lib/modules/4.13.0-16-generic/misc/vmmon.ko
    rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
    ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1  # see https://communities.vmware.com/thread/572259
    vmware-networks --start  # see https://forum.chakralinux.org/viewtopic.php?id=8579
  5. Как пользователь:

    /usr/lib/vmware/bin/vmware
    

    (чтобы он не работал vmware-modconfig)


Круто, отличная работа, Стивен, твой ответ был чрезвычайно легок для понимания. Я повторил шаги явно, а также добавил незначительные исправления для шага 8 в мой вопрос редактирования выше. Ура!
user1330734

Рад, что это сработало для вас! Я также исправил свой шаг 8, спасибо за исправление. Надеюсь, что все это сохраняется после перезагрузки ...
Стивен Васселл

1
Еще раз спасибо, Стивен, все хорошо, если я начну /usr/lib/vmware/bin/vmware, иначе vmware сообщает, что не может найти GCC.
user1330734

Большое спасибо за публикацию! Это заставило меня снова бежать. Есть ли место, где мы можем посмотреть, где находится VMWare с предоставлением исправления?
Эрик

4
Выпущена рабочая станция 14.1.0, которая решает эту проблему. my.vmware.com/group/vmware/…
Стивен Васселл

6

Я пробовал примерно все другие решения, но ничего не получалось. Но эти шаги работали для меня на Ubuntu 18.04, VMware 12.5.9

git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
git checkout workstation-12.5.9 (change it to your version. it's important)
make && sudo make install
cd /usr/lib/vmware/lib/libz.so.1
sudo mv libz.so.1 libz.so.1.old
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 .
sudo depmod -a
sudo /etc/init.d/vmware restart

Ссылка:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552/comments/29


2
это прекрасно работает, спасибо за тонну! Я искал решение этой проблемы для Ubuntu 18.04 с момента его выхода!
Стам Кейли

1
Можно подтвердить, что это работает для Ubuntu 18.10 с VMWare Workstation Pro 12.5.9.
аноннуар

Это решение работало для меня на Linux Mint 19.2 64bit с рабочей станцией vmware pro 12.5.9.
Lexib0y

2

Исправление, описанное: Стивен приводит многих к другой ошибке: «Не удалось получить информацию gcc».

Самое простое решение - скачать рабочую станцию ​​vmware player 14.1 .

Установка его вместо версии 12.5 решает проблемы, описанные выше.

Для этого просто бегите

chmod +x VMware-Player-14.1.1-7528167.x86_64.bundle
sudo ./VMware-Player-14.1.1-7528167.x86_64.bundle

И следуйте инструкциям графического установщика.


2
который требует обновления лицензии
shadowbq

/usr/lib/vmware/bin/vmwareвместо этого запустите, чтобы решить «Не удалось получить информацию о gcc»
shadowbq

2
Я думаю, что некоммерчески это также работает без этого обновления лицензии
Tokam

2

В дополнение к ответу Стивена Вассела , если вы все еще работаете с версией VM Workstation 12.5.x, вам нужно будет перекомпилировать свою версию .koдля каждого патча ядра ... что довольно много ...

Вы можете увидеть эту ошибку: ( Неверный формат модуля )

# insmod /lib/modules/4.13.0-31-generic/misc/vmnet.ko 
insmod: ERROR: could not insert module /lib/modules/4.13.0-31-generic/misc/vmnet.ko: Invalid module format

Вот инструмент для обновления модулей ядра для ubuntu-flavour-distros после обновления ядра.

https://gist.github.com/shadowbq/5897002b620b093ca7578b5f13c3f3a1

Я также включил простую оболочку, .shкоторую вы можете использовать вместо запуска рабочей станции vmware, чтобы вы могли быть уверены, что она каждый раз соответствующим образом загружает модули ядра vm-network и vm-mon.

Примечание: этот скрипт не будет расширять 'tar' или 'patch' исходные файлы, он предназначен для автоматической перекомпиляции модулей ядра после исправления ядра, следуя шагам оригинала Стивена Васселла.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.