Я недавно обновил к Ubuntu 17.04. К сожалению, я не могу выполнить VMware Workstation, потому что модули ядра не установят.
Это - файл журнала:
2017-04-16T12:59:06.065+01:00| vthread-4| I125: Log for VMware Workstation pid=6683 version=12.5.2 build=build-4638234 option=Release 2017-04-16T12:59:06.065+01:00| vthread-4| I125: The process is 64-bit. 2017-04-16T12:59:06.065+01:00| vthread-4| I125: Host codepage=UTF-8 encoding=UTF-8 2017-04-16T12:59:06.065+01:00| vthread-4| I125: Host is Linux 4.10.0-19-generic Ubuntu 17.04 2017-04-16T12:59:06.064+01:00| vthread-4| I125: DictionaryLoad: Cannot open file "/usr/lib/vmware/settings": No such file or directory. 2017-04-16T12:59:06.064+01:00| vthread-4| I125: PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values. 2017-04-16T12:59:06.064+01:00| vthread-4| I125: DictionaryLoad: Cannot open file "/root/.vmware/config": No such file or directory. 2017-04-16T12:59:06.064+01:00| vthread-4| I125: PREF Optional preferences file not found at /root/.vmware/config. Using default values. 2017-04-16T12:59:06.064+01:00| vthread-4| I125: PREF Unable to check permissions for preferences file. 2017-04-16T12:59:06.064+01:00| vthread-4| I125: DictionaryLoad: Cannot open file "/root/.vmware/preferences": No such file or directory. 2017-04-16T12:59:06.064+01:00| vthread-4| I125: PREF Failed to load user preferences. 2017-04-16T12:59:06.107+01:00| vthread-4| W115: Logging to /tmp/vmware-root/vmware-6683.log 2017-04-16T12:59:06.113+01:00| vthread-4| I125: Obtaining info using the running kernel. 2017-04-16T12:59:06.113+01:00| vthread-4| I125: Created new pathsHash. 2017-04-16T12:59:06.113+01:00| vthread-4| I125: Setting header path for 4.10.0-19-generic to "/lib/modules/4.10.0-19-generic/build/include". 2017-04-16T12:59:06.113+01:00| vthread-4| I125: Validating path "/lib/modules/4.10.0-19-generic/build/include" for kernel release "4.10.0-19-generic". 2017-04-16T12:59:06.113+01:00| vthread-4| I125: Failed to find /lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.113+01:00| vthread-4| I125: /lib/modules/4.10.0-19-generic/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead. 2017-04-16T12:59:06.113+01:00| vthread-4| I125: using /usr/bin/gcc for preprocess check 2017-04-16T12:59:06.119+01:00| vthread-4| I125: Preprocessed UTS_RELEASE, got value "4.10.0-19-generic". 2017-04-16T12:59:06.119+01:00| vthread-4| I125: The header path "/lib/modules/4.10.0-19-generic/build/include" for the kernel "4.10.0-19-generic" is valid. Whoohoo! 2017-04-16T12:59:06.247+01:00| vthread-4| I125: found symbol version file /lib/modules/4.10.0-19-generic/build/Module.symvers 2017-04-16T12:59:06.248+01:00| vthread-4| I125: Reading symbol versions from /lib/modules/4.10.0-19-generic/build/Module.symvers. 2017-04-16T12:59:06.265+01:00| vthread-4| I125: Read 21363 symbol versions 2017-04-16T12:59:06.265+01:00| vthread-4| I125: Reading in info for the vmmon module. 2017-04-16T12:59:06.265+01:00| vthread-4| I125: Reading in info for the vmnet module. 2017-04-16T12:59:06.265+01:00| vthread-4| I125: Reading in info for the vmblock module. 2017-04-16T12:59:06.265+01:00| vthread-4| I125: Reading in info for the vmci module. 2017-04-16T12:59:06.265+01:00| vthread-4| I125: Reading in info for the vsock module. 2017-04-16T12:59:06.265+01:00| vthread-4| I125: Setting vsock to depend on vmci. 2017-04-16T12:59:06.265+01:00| vthread-4| I125: Invoking modinfo on "vmmon". 2017-04-16T12:59:06.267+01:00| vthread-4| I125: "/sbin/modinfo" exited with status 256. 2017-04-16T12:59:06.267+01:00| vthread-4| I125: Invoking modinfo on "vmnet". 2017-04-16T12:59:06.268+01:00| vthread-4| I125: "/sbin/modinfo" exited with status 256. 2017-04-16T12:59:06.268+01:00| vthread-4| I125: Invoking modinfo on "vmblock". 2017-04-16T12:59:06.269+01:00| vthread-4| I125: "/sbin/modinfo" exited with status 256. 2017-04-16T12:59:06.269+01:00| vthread-4| I125: Invoking modinfo on "vmci". 2017-04-16T12:59:06.270+01:00| vthread-4| I125: "/sbin/modinfo" exited with status 256. 2017-04-16T12:59:06.270+01:00| vthread-4| I125: Invoking modinfo on "vsock". 2017-04-16T12:59:06.271+01:00| vthread-4| I125: "/sbin/modinfo" exited with status 0. 2017-04-16T12:59:06.286+01:00| vthread-4| I125: to be installed: vmmon status: 0 2017-04-16T12:59:06.286+01:00| vthread-4| I125: to be installed: vmnet status: 0 2017-04-16T12:59:06.308+01:00| vthread-4| I125: Obtaining info using the running kernel. 2017-04-16T12:59:06.308+01:00| vthread-4| I125: Setting header path for 4.10.0-19-generic to "/lib/modules/4.10.0-19-generic/build/include". 2017-04-16T12:59:06.308+01:00| vthread-4| I125: Validating path "/lib/modules/4.10.0-19-generic/build/include" for kernel release "4.10.0-19-generic". 2017-04-16T12:59:06.308+01:00| vthread-4| I125: Failed to find /lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.308+01:00| vthread-4| I125: /lib/modules/4.10.0-19-generic/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead. 2017-04-16T12:59:06.308+01:00| vthread-4| I125: using /usr/bin/gcc for preprocess check 2017-04-16T12:59:06.313+01:00| vthread-4| I125: Preprocessed UTS_RELEASE, got value "4.10.0-19-generic". 2017-04-16T12:59:06.313+01:00| vthread-4| I125: The header path "/lib/modules/4.10.0-19-generic/build/include" for the kernel "4.10.0-19-generic" is valid. Whoohoo! 2017-04-16T12:59:06.434+01:00| vthread-4| I125: found symbol version file /lib/modules/4.10.0-19-generic/build/Module.symvers 2017-04-16T12:59:06.434+01:00| vthread-4| I125: Reading symbol versions from /lib/modules/4.10.0-19-generic/build/Module.symvers. 2017-04-16T12:59:06.451+01:00| vthread-4| I125: Read 21363 symbol versions 2017-04-16T12:59:06.451+01:00| vthread-4| I125: Kernel header path retrieved from FileEntry: /lib/modules/4.10.0-19-generic/build/include 2017-04-16T12:59:06.451+01:00| vthread-4| I125: Update kernel header path to /lib/modules/4.10.0-19-generic/build/include 2017-04-16T12:59:06.451+01:00| vthread-4| I125: Validating path "/lib/modules/4.10.0-19-generic/build/include" for kernel release "4.10.0-19-generic". 2017-04-16T12:59:06.451+01:00| vthread-4| I125: Failed to find /lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.451+01:00| vthread-4| I125: /lib/modules/4.10.0-19-generic/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead. 2017-04-16T12:59:06.451+01:00| vthread-4| I125: using /usr/bin/gcc for preprocess check 2017-04-16T12:59:06.456+01:00| vthread-4| I125: Preprocessed UTS_RELEASE, got value "4.10.0-19-generic". 2017-04-16T12:59:06.456+01:00| vthread-4| I125: The header path "/lib/modules/4.10.0-19-generic/build/include" for the kernel "4.10.0-19-generic" is valid. Whoohoo! 2017-04-16T12:59:06.457+01:00| vthread-4| I125: Found compiler at "/usr/bin/gcc" 2017-04-16T12:59:06.459+01:00| vthread-4| I125: Got gcc version "6.3.0". 2017-04-16T12:59:06.459+01:00| vthread-4| I125: The GCC version matches the kernel GCC minor version like a glove. 2017-04-16T12:59:06.459+01:00| vthread-4| I125: Using user supplied compiler "/usr/bin/gcc". 2017-04-16T12:59:06.461+01:00| vthread-4| I125: Got gcc version "6.3.0". 2017-04-16T12:59:06.461+01:00| vthread-4| I125: The GCC version matches the kernel GCC minor version like a glove. 2017-04-16T12:59:06.462+01:00| vthread-4| I125: Trying to find a suitable PBM set for kernel "4.10.0-19-generic". 2017-04-16T12:59:06.462+01:00| vthread-4| I125: No matching PBM set was found for kernel "4.10.0-19-generic". 2017-04-16T12:59:06.462+01:00| vthread-4| I125: The GCC version matches the kernel GCC minor version like a glove. 2017-04-16T12:59:06.462+01:00| vthread-4| I125: Validating path "/lib/modules/4.10.0-19-generic/build/include" for kernel release "4.10.0-19-generic". 2017-04-16T12:59:06.462+01:00| vthread-4| I125: Failed to find /lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.462+01:00| vthread-4| I125: /lib/modules/4.10.0-19-generic/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead. 2017-04-16T12:59:06.462+01:00| vthread-4| I125: using /usr/bin/gcc for preprocess check 2017-04-16T12:59:06.468+01:00| vthread-4| I125: Preprocessed UTS_RELEASE, got value "4.10.0-19-generic". 2017-04-16T12:59:06.468+01:00| vthread-4| I125: The header path "/lib/modules/4.10.0-19-generic/build/include" for the kernel "4.10.0-19-generic" is valid. Whoohoo! 2017-04-16T12:59:06.469+01:00| vthread-4| I125: The GCC version matches the kernel GCC minor version like a glove. 2017-04-16T12:59:06.469+01:00| vthread-4| I125: Validating path "/lib/modules/4.10.0-19-generic/build/include" for kernel release "4.10.0-19-generic". 2017-04-16T12:59:06.469+01:00| vthread-4| I125: Failed to find /lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.469+01:00| vthread-4| I125: /lib/modules/4.10.0-19-generic/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead. 2017-04-16T12:59:06.469+01:00| vthread-4| I125: using /usr/bin/gcc for preprocess check 2017-04-16T12:59:06.475+01:00| vthread-4| I125: Preprocessed UTS_RELEASE, got value "4.10.0-19-generic". 2017-04-16T12:59:06.475+01:00| vthread-4| I125: The header path "/lib/modules/4.10.0-19-generic/build/include" for the kernel "4.10.0-19-generic" is valid. Whoohoo! 2017-04-16T12:59:06.475+01:00| vthread-4| I125: Using temp dir "/tmp". 2017-04-16T12:59:06.476+01:00| vthread-4| I125: Obtaining info using the running kernel. 2017-04-16T12:59:06.476+01:00| vthread-4| I125: Setting header path for 4.10.0-19-generic to "/lib/modules/4.10.0-19-generic/build/include". 2017-04-16T12:59:06.476+01:00| vthread-4| I125: Validating path "/lib/modules/4.10.0-19-generic/build/include" for kernel release "4.10.0-19-generic". 2017-04-16T12:59:06.476+01:00| vthread-4| I125: Failed to find /lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.476+01:00| vthread-4| I125: /lib/modules/4.10.0-19-generic/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead. 2017-04-16T12:59:06.476+01:00| vthread-4| I125: using /usr/bin/gcc for preprocess check 2017-04-16T12:59:06.481+01:00| vthread-4| I125: Preprocessed UTS_RELEASE, got value "4.10.0-19-generic". 2017-04-16T12:59:06.481+01:00| vthread-4| I125: The header path "/lib/modules/4.10.0-19-generic/build/include" for the kernel "4.10.0-19-generic" is valid. Whoohoo! 2017-04-16T12:59:06.608+01:00| vthread-4| I125: found symbol version file /lib/modules/4.10.0-19-generic/build/Module.symvers 2017-04-16T12:59:06.608+01:00| vthread-4| I125: Reading symbol versions from /lib/modules/4.10.0-19-generic/build/Module.symvers. 2017-04-16T12:59:06.626+01:00| vthread-4| I125: Read 21363 symbol versions 2017-04-16T12:59:06.626+01:00| vthread-4| I125: Invoking modinfo on "vmmon". 2017-04-16T12:59:06.628+01:00| vthread-4| I125: "/sbin/modinfo" exited with status 256. 2017-04-16T12:59:06.628+01:00| vthread-4| I125: Invoking modinfo on "vmnet". 2017-04-16T12:59:06.630+01:00| vthread-4| I125: "/sbin/modinfo" exited with status 256. 2017-04-16T12:59:07.100+01:00| vthread-4| I125: Setting destination path for vmmon to "/lib/modules/4.10.0-19-generic/misc/vmmon.ko". 2017-04-16T12:59:07.101+01:00| vthread-4| I125: Extracting the vmmon source from "/usr/lib/vmware/modules/source/vmmon.tar". 2017-04-16T12:59:07.106+01:00| vthread-4| I125: Successfully extracted the vmmon source. 2017-04-16T12:59:07.106+01:00| vthread-4| I125: Building module with command "/usr/bin/make -j4 -C /tmp/modconfig-JzkDhJ/vmmon-only auto-build HEADER_DIR=/lib/modules/4.10.0-19-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no" 2017-04-16T12:59:08.721+01:00| vthread-4| W115: Failed to build vmmon. Failed to execute the build command. 2017-04-16T12:59:08.723+01:00| vthread-4| I125: Setting destination path for vmnet to "/lib/modules/4.10.0-19-generic/misc/vmnet.ko". 2017-04-16T12:59:08.723+01:00| vthread-4| I125: Extracting the vmnet source from "/usr/lib/vmware/modules/source/vmnet.tar". 2017-04-16T12:59:08.729+01:00| vthread-4| I125: Successfully extracted the vmnet source. 2017-04-16T12:59:08.729+01:00| vthread-4| I125: Building module with command "/usr/bin/make -j4 -C /tmp/modconfig-JzkDhJ/vmnet-only auto-build HEADER_DIR=/lib/modules/4.10.0-19-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no" 2017-04-16T12:59:10.142+01:00| vthread-4| W115: Failed to build vmnet. Failed to execute the build command.
У меня работает Budgie 17.04, и VMware работает нормально. Я только установил инструменты сборки:
sudo apt install gcc make
После запуска VMware он успешно скомпилирует необходимые модули.
Я использовал пакет VMware-Player-12.5.5-5234757.x86_64.bundle .
У меня была точно та же проблема. Решение, которое работало на меня, находится в этой статье:
Как установить VMware Workstation 12 на ядре Linux 4.10
Установите VMware как нормального
В нашем случае мы установили VMware с файлом пакета. Чтобы заставить пакет работать, необходимо работать chmod u+x
на нем, затем выполненный:
sudo ./VMware-Workstation-Full-12.5.bundle #(example filename)
Установите GCC и основы сборки
sudo apt install gcc build-essential
Патч VMware
sudo tar -xf /usr/lib/vmware/modules/source/vmmon.tar
sudo nano vmmon-only/linux/hostif.c
Вокруг строки 1162, изменение
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
#else
retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
numPages, 0, 0, ppages, NULL);
#endif
кому:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);
#else
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
#else
retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
numPages, 0, 0, ppages, NULL);
#endif
#endif
Сохраните файл и выход, затем:
sudo tar -cf /usr/lib/vmware/modules/source/vmmon.tar vmmon-only/
sudo tar -xf /usr/lib/vmware/modules/source/vmnet.tar
sudo nano vmnet-only/userif.c
Ниже строки 114, изменение
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
#else
retval = get_user_pages(current, current->mm, addr,
1, 1, 0, &page, NULL);
#endif
кому:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
retval = get_user_pages(addr, 1, 0, &page, NULL);
#else
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
#else
retval = get_user_pages(current, current->mm, addr,
1, 1, 0, &page, NULL);
#endif
#endif
Сохраните файл, выход и затем переtar что один также
sudo tar -cf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only/
Выполните VMware снова
Теперь только запустите VMware как нормального, и он должен установить vmon и vmnet правильно.