Błąd podczas instalowania stacji roboczej Vmware w systemie Ubuntu


14

Próbuję zainstalować stację roboczą vmware 10.1 na Ubuntu 14.04 i otrzymałem następujące błędy.

Jak to naprawić?

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done

To najczystsza implementacja tego obejścia, z jakim się zetknąłem, dzięki. Dla mnie ostatni wiersz ¨sudo chown -R $ USER: $ USER .vmware¨ spowodowałby ten błąd. Za pomocą ~ / rozwiązano, że root @ me: / usr / lib / vmware / modules / source # sudo chown -R $ USER: $ USER .vmware chown: nie można uzyskać dostępu do '.vmware': Brak takiego pliku lub katalogu root @ me: / usr / lib / vmware / modules / source # sudo chown -R $ USER: $ USER ~ / .vmware
user298928

Odpowiedzi:


21

Aby to naprawić, będziemy musieli zastosować tę poprawkę do filter.c w źródłach modułu VMware Player.

Krok nr 1

utwórz plik w katalogu tmp nazwa filter.c.diff i skopiuj wklej następujący kod init.

nano /tmp/filter.c.diff

205a206
> #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
206a208,210
> #else
> VNetFilterHookFn(const struct nf_hook_ops *ops,        // IN:
> #endif
255c259,263
<    transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
---
>    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
>       transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
>    #else
>       transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
>    #endif

Krok nr 2

sudo -E -s

cd /usr/lib/vmware/modules/source/ 

cp vmnet.tar vmnet.tar.original

tar xvf vmnet.tar vmnet-only/filter.c

patch vmnet-only/filter.c < /tmp/filter.c.diff

tar -uvf vmnet.tar vmnet-only/filter.c

rm -rf vmnet-only/

Następnie uruchom vmware i będzie działało dobrze.

   Starting VMware services:
   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                    done
   VMware Authentication Daemon                                        done
   Shared Memory Available                                             done

Uwaga: musisz także wyświetlić katalog .vmware, w przeciwnym razie zmiany vmware nie zostaną zapisane

przykład

sudo chown -R one:one .vmware

Gdzie jedna to moja nazwa użytkownika, a druga moja grupa.sudo chown -R $USER:$USER .vmware

WSPARCIE


ale to nie działa na moim 32-bitowym Ubuntu 14.04 LTS
Vasu Dev Garg

nie będzie działać na Ubuntu 15.04
ubuntico 29.01.16

1
@ubuntico to bardzo stare, sprawdź wiki na archlinuxie dla stacji roboczej vmware. Mam nadzieję, że ci to pomoże
Qasim,

2
tar: vmnet-only / filter.c: Nie znaleziono w archiwum tar: Wyjście ze statusem błędu z powodu wcześniejszych błędów
Mahdi Rashidi

2
filter.c nie istnieje dla mnietar: vmnet-only/filter.c: Not found in archive tar: Exiting with failure status due to previous errors
Katz

4

Aby rozwiązać problem z jądrem Ubuntu 14.10 3.17.2

Krok nr 1

curl http://pastie.org/pastes/9636106/download -o /tmp/vmware-3.17.patch

Krok nr 2

Odbudowywanie modułów, Wyodrębnij źródła modułów:

cd /usr/lib/vmware/modules/source
for i in vmci vmmon vmnet vsock; do tar -xf $i.tar; done

Krok nr 3

Zastosuj łatkę:

 patch -p1 -i /tmp/vmware-3.17.patch

Krok nr 4

Odtwórz archiwa:

for i in *-only; do tar -cf ${i/-only}.tar $i; done

Krok nr 5

Usuń resztki:

rm -r *-only

Krok nr 6

Odbuduj moduły:

vmware-modconfig --console --install-all

WSPARCIE


1
NIESAMOWITA ODPOWIEDŹ DZIAŁAŁA IDEALNIE W 3.18.0
Trevor Rudolph


3

Aby rozwiązać problem z jądrem Ubuntu 14.x 3.19.x, uruchom następujące kroki jako root (w terminalu):

  1. zaloguj się jako root (np. sudo -s)

  2. Wpisz swoje hasło roota.

  3. Wpisz następujące polecenia:

curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch
cd / usr / lib / vmware / modules / source
tar -xf vmnet.tar
łatka -p0 -i /tmp/vmnet-3.19.patch
mv vmnet.tar vmnet.tar.SAVED
tar -cf vmnet.tar vmnet-only
rm -r vmnet-only
vmware-modconfig --console --install-all

Działa świetnie na Ubuntu 15.04
ubuntico

Miałem ten sam problem na Ubuntu 16.04 i próbowałem zastosować łatkę, ale to się nie udało. Jak się okazuje, najnowsza VM Workstation Pro (wersja 12.1.1) ma już zaimplementowane zmiany w łatce userif.ci driver.cnie ma nic pasującego do łatanego kodu. Następnie pobrałem najnowszy instalator i uruchomiłem go, co właśnie zakończyło się komunikatem, że wszystko jest już aktualne. To jednak zatrzymało usługi, a następnie mogłem go uruchomić i skompilować moduły.
iisisrael

2

Właśnie miałem ten sam problem. Możesz także po prostu utworzyć skrypt zawierający to:

#!/bin/bash

cat << EOF > /tmp/filter.c.patch
--- vmnet-only/filter.c 2013-10-18 15:11:55.000000000 -0400
+++ vmnet-only/filter.c 2013-12-21 20:15:15.000000000 -0500
@@ -27,6 +27,7 @@
 #include "compat_module.h"
 #include <linux/mutex.h>
 #include <linux/netdevice.h>
 +#include <linux/version.h>
 #if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)
 #   include <linux/module.h>
 #else
@@ -203,7 +204,11 @@
 #endif

 static unsigned int
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
 VNetFilterHookFn(unsigned int hooknum,                 // IN:
+#else
+VNetFilterHookFn(const struct nf_hook_ops *ops,        // IN:
+#endif
 #ifdef VMW_NFHOOK_USES_SKB
                  struct sk_buff *skb,                  // IN:
 #else
@@ -252,7 +257,12 @@

     /* When the host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
    /* When the host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
 -   transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
 +   
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+    transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+#else
+    transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
+#endif

    packetHeader = compat_skb_network_header(skb);
    ip = (struct iphdr*)packetHeader;
EOF

cd /usr/lib/vmware/modules/source
# untar the vmnet modules
tar -xvf vmnet.tar
#run a the patch you should have just saved earlier
 patch vmnet-only/filter.c < /tmp/filter.c.patch
# re-tar the modules
tar -uvf vmnet.tar vmnet-only
#delete the previous working directory
rm -rf vmnet-only

Upewnij się, że uruchamiasz go jako root. Następnie uruchom VMWARE ponownie i powinno się ono skompilować i uruchomić ponownie.

Dzięki http://fazlearefin.blogspot.ca/2014/03/vmware-workstation-10-not-working-on.html za stworzenie tego skryptu.


1

Był to również problem z kodem źródłowym modułu jądra dostarczanym z VMware Player 6.0.1 podczas pracy w systemie Linux 3.3.13.

VMware naprawiło problem 17 kwietnia w VMware Player 6.0.2 ( https://www.vmware.com/support/player60/doc/player-602-release-notes.html ) i VMware Workstation 10.02 ( https: // www.vmware.com/support/ws10/doc/workstation-1002-release-notes.html ).

Aktualizacja do powyższych wersji doda obsługę Ubuntu 14.04 do VMware.

Mikkel

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.