{"id":2051,"date":"2017-09-16T22:24:38","date_gmt":"2017-09-17T05:24:38","guid":{"rendered":"http:\/\/rglinuxtech.com\/?p=2051"},"modified":"2017-09-16T22:24:38","modified_gmt":"2017-09-17T05:24:38","slug":"kernel-4-14-rc1-released-breaks-vmware-and-nvidia-gpl-errors-again","status":"publish","type":"post","link":"https:\/\/rglinuxtech.com\/?p=2051","title":{"rendered":"Kernel &#8211; 4.14-rc1 Released &#8211; Breaks VMware and NVIDIA..  GPL Errors Again.."},"content":{"rendered":"<p>Kernel <strong>4.14-rc1<\/strong> has been released &#8211; a day early &#8211; and brief details are here:\u00a0\u00a0 <a href=\"http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1709.2\/00177.html\" target=\"_blank\" rel=\"noopener\">http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1709.2\/00177.html<\/a><\/p>\n<p>Tested with the latest NVIDIA (<strong>384.69<\/strong>) and VMware (<strong>12.5.7<\/strong> with <em>4.13-patched<\/em> vmnet):<\/p>\n<p>NVIDIA compile failed, in several places:<\/p>\n<pre><span style=\"font-family: courier new,courier;\"><strong>.....<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>CC [M] \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.o<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:173:6: error: \u2018const struct drm_crtc_helper_funcs\u2019 has no member named \u2018enable\u2019; did you mean \u2018disable\u2019?<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> .enable = nvidia_crtc_enable,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> disable<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:173:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> .enable = nvidia_crtc_enable,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~~~~~~~~~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:173:19: note: (near initialization for \u2018nv_crtc_helper_funcs.mode_valid\u2019)<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c: In function \u2018nvidia_plane_create\u2019:<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:226:9: error: incompatible type for argument 7 of \u2018drm_universal_plane_init\u2019<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> plane_type<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>In file included from \/usr\/src\/linux-4.14-rc1\/include\/drm\/drm_crtc.h:45:0,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> from \/usr\/src\/linux-4.14-rc1\/include\/drm\/drmP.h:69,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-priv.h:30,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:27:<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/usr\/src\/linux-4.14-rc1\/include\/drm\/drm_plane.h:548:5: note: expected \u2018const uint64_t * {aka const long long unsigned int *}\u2019 but argument is of type \u2018enum drm_plane_type\u2019<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> int drm_universal_plane_init(struct drm_device *dev,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~~~~~~~~~~~~~~~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:222:11: error: too few arguments to function \u2018drm_universal_plane_init\u2019<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ret = drm_universal_plane_init(<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~~~~~~~~~~~~~~~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>In file included from \/usr\/src\/linux-4.14-rc1\/include\/drm\/drm_crtc.h:45:0,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> from \/usr\/src\/linux-4.14-rc1\/include\/drm\/drmP.h:69,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-priv.h:30,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:27:<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/usr\/src\/linux-4.14-rc1\/include\/drm\/drm_plane.h:548:5: note: declared here<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> int drm_universal_plane_init(struct drm_device *dev,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~~~~~~~~~~~~~~~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c: In function \u2018nvidia_drm_add_crtc\u2019:<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:353:11: error: too few arguments to function \u2018drm_crtc_init_with_planes\u2019<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ret = drm_crtc_init_with_planes(dev,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~~~~~~~~~~~~~~~~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>In file included from \/usr\/src\/linux-4.14-rc1\/include\/drm\/drmP.h:69:0,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-priv.h:30,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:27:<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/usr\/src\/linux-4.14-rc1\/include\/drm\/drm_crtc.h:899:5: note: declared here<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> int drm_crtc_init_with_planes(struct drm_device *dev,<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~~~~~~~~~~~~~~~~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>cc1: some warnings being treated as errors<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[3]: *** [\/usr\/src\/linux-4.14-rc1\/scripts\/Makefile.build:312: \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.o] Error 1<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[2]: *** [\/usr\/src\/linux-4.14-rc1\/Makefile:1498: _module_\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel] Error 2<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[2]: Leaving directory '\/usr\/src\/linux-4.14-rc1'<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[1]: *** [Makefile:145: sub-make] Error 2<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[1]: Leaving directory '\/usr\/src\/linux-4.14-rc1'<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make: *** [Makefile:81: modules] Error 2<\/strong><\/span><\/pre>\n<p>I found a combo patch already posted, which included some extra (Gentoo-specific?) compiler options, and some code patches..<\/p>\n<p><a href=\"https:\/\/devtalk.nvidia.com\/default\/topic\/1023822\/linux\/-patch-384-69-kernel-4-13-4-14-staging-\/\" target=\"_blank\" rel=\"noopener\">https:\/\/devtalk.nvidia.com\/default\/topic\/1023822\/linux\/-patch-384-69-kernel-4-13-4-14-staging-\/<\/a><\/p>\n<p>I applied the code patches, and everything compiled OK, but then failed with (once again..!.) GPL violation errors:<\/p>\n<pre><span style=\"font-family: courier new,courier;\"><strong>...........<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol 'acpi_device_fwnode_ops'<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[3]: *** [\/usr\/src\/linux-4.14-rc1\/scripts\/Makefile.modpost:91: __modpost] Error 1<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[2]: *** [\/usr\/src\/linux-4.14-rc1\/Makefile:1502: modules] Error 2<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[2]: Leaving directory '\/usr\/src\/linux-4.14-rc1'<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[1]: *** [Makefile:145: sub-make] Error 2<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[1]: Leaving directory '\/usr\/src\/linux-4.14-rc1'<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make: *** [Makefile:81: modules] Error 2<\/strong><\/span><\/pre>\n<p>The combo patch does include license changes, but these are not legal, so I did not test any further&#8230;\u00a0\u00a0\u00a0\u00a0 The previous time these licensing issues arose, then &#8211; eventually &#8211; the kernel devs relented, and reverted the changes to the kernel code, but there is &#8211; so far &#8211; no indication of whether this will happen this time..<\/p>\n<p>VMware <em>patched<\/em> vmnet compiled\/loaded OK, but vmmon failed:<\/p>\n<pre><span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/vmmon-only\/linux\/hostif.c: In function \u2018HostIF_EstimateLockedPageLimit\u2019:<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>\/home\/rgadsdon\/kernel\/vmmon-only\/linux\/hostif.c:1597:31: error: implicit declaration of function \u2018global_page_state\u2019; did you mean \u2018global_numa_state\u2019? [-Werror=implicit-function-declaration]<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> unsigned int lockedPages = global_page_state(NR_PAGETABLE) +<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> ^~~~~~~~~~~~~~~~~<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong> global_numa_state<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>cc1: some warnings being treated as errors<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[2]: *** [scripts\/Makefile.build:312: \/home\/rgadsdon\/kernel\/vmmon-only\/linux\/hostif.o] Error 1<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[1]: *** [Makefile:1498: _module_\/home\/rgadsdon\/kernel\/vmmon-only] Error 2<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make[1]: Leaving directory '\/usr\/src\/linux-4.14-rc1'<\/strong><\/span>\r\n<span style=\"font-family: courier new,courier;\"><strong>make: *** [Makefile:120: vmmon.ko] Error 2<\/strong><\/span><\/pre>\n<p>I did try replacing occurrences of &#8216;\u2018global_page_state\u2019 with \u2018global_numa_state\u2019, and vmmon compiled and loaded OK, but gave the following memory error when attempting to run a correctly-configured VM:<br \/>\n<em><strong>&#8220;Not enough physical memory is available to power on this virtual machine with its configured settings&#8230;&#8230;&#8230;.&#8221;<\/strong><\/em> \u00a0\u00a0\u00a0 etc..<br \/>\nSo &#8211; presumably &#8211; this is <span style=\"text-decoration: underline;\">not<\/span> the correct solution!<\/p>\n<p><em>Robert Gadsdon.\u00a0 September 16, 2017.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kernel 4.14-rc1 has been released &#8211; a day early &#8211; and brief details are here:\u00a0\u00a0 http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1709.2\/00177.html Tested with the latest NVIDIA (384.69) and VMware (12.5.7 with 4.13-patched vmnet): NVIDIA compile failed, in several places: &#8230;.. CC [M] \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.o \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-384.69\/kernel\/nvidia-drm\/nvidia-drm-crtc.c:173:6: error: \u2018const struct drm_crtc_helper_funcs\u2019 has no member named \u2018enable\u2019; did you mean \u2018disable\u2019? .enable = nvidia_crtc_enable, ^~~~~~ disable <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/rglinuxtech.com\/?p=2051\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[14,15,18,25],"tags":[969,1678,1676,1681,1680,1679,1632,1677],"class_list":["post-2051","post","type-post","status-publish","format-standard","hentry","category-kernel","category-linux-2","category-nvidia","category-vmware","tag-compile-fails","tag-gpl-errors","tag-kernel-4-14-rc1","tag-memory-error-with-vm","tag-vmmon-compile-fails","tag-vmnet-4-13-patched","tag-vmware-12-5-7","tag-vmware-384-69"],"_links":{"self":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2051","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2051"}],"version-history":[{"count":2,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2051\/revisions"}],"predecessor-version":[{"id":2053,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2051\/revisions\/2053"}],"wp:attachment":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2051"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}