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
user1330734
источник
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

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

tokam
источник
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' исходные файлы, он предназначен для автоматической перекомпиляции модулей ядра после исправления ядра, следуя шагам оригинала Стивена Васселла.

shadowbq
источник