VMware Workstation 12 vmmon nie znaleziono lub nie został załadowany


10

W systemie Ubuntu 12.04 z radością korzystałem z VMware Workstation 6. Pewnego pięknego dnia ten błąd wystąpił podczas uruchamiania maszyny wirtualnej:

Could not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon' is loaded.
Failed to initialize monitor device.

Nie jestem pewien powodu, ale może być to czysto spekulacyjne, ze względu na aktualizację sterownika Nvidia (było to podobne do wizyty w gabinecie dentystycznym, więc proszę, nie mów mi, żebym znowu zadzierał ze sterownikiem graficznym). )
W celu rozwiązania problemu zaktualizowałem do VMware Workstation 12 przy użyciu instalatora GUI.

gksudo bash xxxxx.bundle  

Zakładam, że odinstalowanie starszej wersji było wystarczająco inteligentne przed przystąpieniem do instalowania nowej wersji. Wszystko jest dobrze, z wyjątkiem tego samego problemu, który wystąpił powyżej, gdy próbowałem uruchomić maszynę wirtualną. Rzeczywiście, zgodnie z zaleceniami, nie mogłem znaleźć pliku lub katalogu / dev / vmmon w moim systemie (dotyczy to również ponownej instalacji do nowszej wersji).
Po innej mądrej próbie spróbowałem:

sudo vmware-modconfig --console --install-all

Pełny wynik (aby nie zostać docenionym z powodu braku szczegółów):

Stopping VMware services:
   VMware Authentication Daemon                                        done
   VM communication interface socket family                            done
   Virtual machine communication interface                             done
   Virtual machine monitor                                             done
   Blocking file system                                                done
Using kernel build system.
make: Entering directory `/tmp/modconfig-ha12A3/vmmon-only'
/usr/bin/make -C /lib/modules/3.13.0-49-generic/build/include/..    SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-49-generic'
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/vmcore/moduleloop.o
/tmp/modconfig-ha12A3/vmmon-only/linux/driver.c: In function   ‘LinuxDriver_Ioctl’:
/tmp/modconfig-ha12A3/vmmon-only/linux/driver.c:1983: warning: the frame size of 1280 bytes is larger than 1024 bytes
  LD [M]  /tmp/modconfig-ha12A3/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/tmp/modconfig-ha12A3/vmmon-only/vmmon.ko] undefined!
  CC      /tmp/modconfig-ha12A3/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-ha12A3/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-49-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-ha12A3/vmmon-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-ha12A3/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/modconfig-ha12A3/vmmon-only'
Using kernel build system.
make: Entering directory `/tmp/modconfig-ha12A3/vmnet-only'
/usr/bin/make -C /lib/modules/3.13.0-49-generic/build/include/..     SUBDIRS=$PWD     SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-49-generic'
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/modconfig-ha12A3/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/tmp/modconfig-ha12A3/vmnet-only/vmnet.ko] undefined!
  CC      /tmp/modconfig-ha12A3/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-ha12A3/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-49-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-ha12A3/vmnet-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-ha12A3/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/modconfig-ha12A3/vmnet-only'
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done
Unable to start services

Widzę kilka komunikatów ostrzegawczych, ale nie ma błędów, dlatego naprawdę zaskakuje przypadek brakującego i nieobciążalnego vmmon .

Po innych radach:

>> sudo /etc/init.d/vmware restart
Stopping VMware services:
   VMware Authentication Daemon                                        done
   VM communication interface socket family                            done
   Virtual machine communication interface                             done
   Virtual machine monitor                                             done
   Blocking file system                                                done
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done

>> sudo modprobe vmmon
FATAL: Error inserting vmmon (/lib/modules/3.13.0-49-generic/misc/vmmon.ko): Unknown symbol in module, or unknown parameter (see dmesg)

Twoja mądra rada, której desperacko szukam.


Próbowałem skopiować plik vmmon z innej stacji roboczej, która dobrze sobie radziła z VMware, ale nie mogła. Jest to „specjalny” plik o wielkości 0 bajtów. Co to za nikczemny Vmmon-Ster ???
ng0323,

Próbowałem ręcznie odinstalować z wiersza polecenia, a następnie ponownie zainstalować najnowszą wersję (pobraną dzisiaj) i powtórzyłem powyższe porady, ale moje wysiłki poszły na marne!
ng0323,

1
Proszę spróbowaćsudo vmware-modconfig --console --install-all
Charles Green

1
Czy istnieje sposób, aby to naprawić przy włączonym ufi boot?
rafaelphp

Rozwiązanie @CharlesGreen zadziałało dla mnie
TungstenX

Odpowiedzi:



8

Wyłączenie Bezpiecznego rozruchu z UEFI to kiepska odpowiedź, ale jest to oficjalna odpowiedź na forum VMWare.

Miałem podobny problem podczas instalowania VirtualBox i udało mi się rozwiązać mój problem VMWare przy użyciu tej samej metody. Pozwala mi to na włączenie bezpiecznego rozruchu, a także korzystanie z VMWare.

Problem polega na tym, że moduł jądra vmware nie jest podpisany, więc nie można go załadować, gdy włączony jest bezpieczny rozruch. Możesz jednak „samodzielnie podpisać” moduł, co zrobiłem zarówno dla stacji roboczej VMWare, jak i VirtualBox.

  1. Przejdź do tego postu na forum: https://forums.virtualbox.org/viewtopic.php?f=7&t=77363&start=15
  2. Idź do postu przez Fayce66 w dniu 6 maja 2016, 08:37
  3. W każdym poleceniu zamień moduł jądra „vboxdrv” (nazwa modułu virtualbox) na „vmmon” (nazwa modułu vmware)
  4. Może być konieczne ponowne wykonanie wszystkich poleceń dla modułu jądra „vmnet” (moduł sieciowy vmware)

Te kroki zadziałały dla mnie. Jestem w stanie utrzymać bezpieczny rozruch i korzystać z VMWare Workstation.


wstawię tutaj treść jako link do pastebin na wypadek, gdyby oryginalny link się zepsuł (ponieważ prawdopodobnie odpowiedź na cytat w odpowiedzi byłaby zbyt długa): pastebin.com/LyLdy3Wb
DeveloperACE

również osoba w tym komentarzu zacytowała link do gorka.eguileor.com/vbox-vmware-in-secureboot-linux (zaktualizowana wersja gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update ) jako jego źródło poprawki może być pomocne dla kogoś
DeveloperACE

Warto również zauważyć, że mokmanager.efi może nazywać się mmx64.efi zgodnie z rodsbooks.com/efi-bootloaders/secureboot.html
DeveloperACE

6

Możliwe, że Twój problem z VMware Workstation 12 polega na tym, że ...

Na hoście Linux z włączonym trybem bezpiecznym nie wolno ładować żadnych niepodpisanych sterowników. Z tego powodu nie można załadować sterowników VMware, takich jak vmmon i vmnet, co uniemożliwia włączenie maszyny wirtualnej.

Aby rozwiązać ten problem bez wyłączania bezpiecznego rozruchu, możesz wykonać następujące czynności w terminalu, aby samodzielnie podpisać sterowniki:

  1. Wygeneruj parę kluczy za pomocą openssl do podpisania modułów vmmon i vmnet:

    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
    

    (Zamień MOK na nazwę pliku, który chcesz dla klucza.)

  2. Podpisz moduły za pomocą wygenerowanego klucza, uruchamiając następujące polecenia:

    sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)
    sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)
    
  3. Zaimportuj klucz publiczny do listy MOK systemu, uruchamiając następujące polecenie:

    sudo mokutil --import MOK.der
    
  4. Potwierdź hasło do tego żądania rejestracji MOK.

  5. Uruchom ponownie komputer. Postępuj zgodnie z instrukcjami, aby dokończyć rejestrację z konsoli UEFI.

Cytowany z tego artykułu VMWare: https://kb.vmware.com/kb/2146460


To naprawiło mój problem, dzięki! Po prostu upewnij się, że masz sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)i sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $ (modinfo -n vmnet)jak na połączonej stronie i dodaj sudodo mokutil --import MOK.derpołączenia powyżej, z opcją użycia, sudo passwd roota następnie, sudo mokutil --import MOK.der --root-pwjeśli jak wyżej nie działa.
Campbeln

1

Wyłączenie bezpiecznego rozruchu nie jest złą odpowiedzią. W rzeczywistości jest to jedyny, który działał na obu moich komputerach (stacjonarnych i laptopach) z systemem Ubuntu 18.04 LTS i VMPlayer 14.x. Problem występuje w momencie otwierania pliku obrazu. Zamiast spędzać dużo czasu na różnych pracach - zalecam na razie wyłączyć bezpieczny rozruch, a później włączyć go, gdy obraz zostanie załadowany i użyty.
Ashu
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.