Привет, All!
Ubuntu 16.04.4 LTS x64.
Ядро Linux 4.15.5-041505-generic x86_64.
Среда MATE 1.12.1.
Была установлена VMware Workstation 12.5.7. После какого-то очередного обновления (каюсь, не помню, какого именно) она перестала работать. Потребовала перекомпилировать модули vmmon и vmnet, отвечающие за одноимённые устройства. Ну ок, не первый раз... тем более, VMware всё это сама пытается делать. Однако сборка модулей проваливалась.
Я начал гуглить, начал предпринимать разные действия. Обновил VMware Workstation до версии 14.0.0. Поменял ядро (на то, которое указано выше). Однако по-прежнему сижу у разбитого корыта.
Итак, последовательность действий:
Далее идём в упомянутый лог.
...
2018-03-01T14:25:30.667+03:00| vthread-1| I125: Extracting the vmmon source from "/usr/lib/vmware/modules/source/vmmon.tar".
2018-03-01T14:25:30.683+03:00| vthread-1| I125: Successfully extracted the vmmon source.
2018-03-01T14:25:30.683+03:00| vthread-1| I125: Building module with command "/usr/bin/make -j4 -C /tmp/modconfig-DYQHCD/vmmon-only auto-build HEADER_DIR=/lib/modules/4.15.5-041505-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2018-03-01T14:25:32.936+03:00| vthread-1| W115: Failed to build vmmon. Failed to execute the build command.
2018-03-01T14:25:32.939+03:00| vthread-1| I125: Setting destination path for vmnet to "/lib/modules/4.15.5-041505-generic/misc/vmnet.ko".
2018-03-01T14:25:32.939+03:00| vthread-1| I125: Extracting the vmnet source from "/usr/lib/vmware/modules/source/vmnet.tar".
2018-03-01T14:25:32.947+03:00| vthread-1| I125: Successfully extracted the vmnet source.
2018-03-01T14:25:32.947+03:00| vthread-1| I125: Building module with command "/usr/bin/make -j4 -C /tmp/modconfig-DYQHCD/vmnet-only auto-build HEADER_DIR=/lib/modules/4.15.5-041505-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2018-03-01T14:25:35.404+03:00| vthread-1| W115: Failed to build vmnet. Failed to execute the build command.
Если пытаться выполнить команду по vmmon вручную, то получим:
...
/tmp/vmware/vmmon-only/linux/hostif.c: In function ‘HostIF_InitUptime’:
/tmp/vmware/vmmon-only/linux/hostif.c:1753:4: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
init_timer(&uptimeState.timer);
^~~~~~~~~~
init_timers
/tmp/vmware/vmmon-only/linux/hostif.c:1754:31: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
uptimeState.timer.function = HostIFUptimeResyncMono;
...
А с vmnet - вот так:
...
In file included from /tmp/vmware/vmnet-only/netif.c:43:0:
/tmp/vmware/vmnet-only/netif.c: In function ‘VNetNetifStartXmit’:
/tmp/vmware/vmnet-only/compat_netdevice.h:345:48: error: ‘struct net_device’ has no member named ‘trans_start’; did you mean ‘mem_start’?
#define compat_netif_trans_update(d) do { (d)->trans_start = jiffies; } while (0)
^
/tmp/vmware/vmnet-only/netif.c:468:4: note: in expansion of macro ‘compat_netif_trans_update’
compat_netif_trans_update(dev);
^~~~~~~~~~~~~~~~~~~~~~~~~
...
Дальше я курил мануали, пытался делать
и так, и применять
вот такие патчи, но всё бесполезно. Работа встала.
Буду благодарен за помощь.
PS. Версия компилятора: gcc (Ubuntu 7.2.0-1ubuntu1~16.04) 7.2.0. С ним я тоже пытался помудрить, обновлял с 5.4.