{"id":2614,"date":"2019-09-30T16:48:49","date_gmt":"2019-09-30T23:48:49","guid":{"rendered":"http:\/\/rglinuxtech.com\/?p=2614"},"modified":"2019-09-30T16:48:49","modified_gmt":"2019-09-30T23:48:49","slug":"kernel-5-4-rc1-released-odd-quirks-with-kernel-symbols","status":"publish","type":"post","link":"https:\/\/rglinuxtech.com\/?p=2614","title":{"rendered":"Kernel &#8211; 5.4-rc1 Released &#8211; Odd Quirks with Kernel Symbols"},"content":{"rendered":"<p>Kernel <strong>5.4-rc1<\/strong> is out &#8211; a day later than usual, and brief details are here: <a href=\"http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1909.3\/04895.html\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1909.3\/04895.html<\/a><\/p>\n<p>My tests with VMware and NVIDIA revealed some odd errors\/warning relating to kernel symbols..<\/p>\n<p>With the latest NVIDIA (<strong>435.21<\/strong>) I got the following:<\/p>\n<p><code><strong><span style=\"font-family: Courier New, Courier, monospace;\"># make<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: Entering directory '\/usr\/src\/linux-5.4-rc1'<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">The Module.symvers file is missing, or does not contain any<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">symbols exported from the kernel. This could cause the NVIDIA<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">kernel modules to be built against a configuration that does<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">not accurately reflect the actual target kernel.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">The Module.symvers file check can be disabled by setting the<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">environment variable IGNORE_MISSING_MODULE_SYMVERS to 1.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[2]: *** [\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel\/Kbuild:181: module_symvers_sanity_check] Error 1<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: *** [Makefile:1670: \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel] Error 2<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: Leaving directory '\/usr\/src\/linux-5.4-rc1'<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make: *** [Makefile:81: modules] Error 2<\/span><\/strong><\/code><br \/>\n&#8211; But&#8230; the file <span style=\"text-decoration: underline;\">does<\/span> exist:<br \/>\n<code><strong><span style=\"font-family: Courier New, Courier, monospace;\"># ll \/usr\/src\/linux-5.4-rc1\/Module.symvers<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">-rw-r--r-- 1 root root 889339 Sep 30 14:47 \/usr\/src\/linux-5.4-rc1\/Module.symvers<\/span><\/strong><\/code><\/p>\n<p>To get the compile working:<br \/>\n<code><strong><span style=\"font-family: Courier New, Courier, monospace;\"># export IGNORE_MISSING_MODULE_SYMVERS=1<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\"># make<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: Entering directory '\/usr\/src\/linux-5.4-rc1'<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CONFTEST: hash__remap_4k_pfn<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CONFTEST: set_pages_uc<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CONFTEST: list_is_first<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CONFTEST: set_memory_uc<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CONFTEST: set_memory_array_uc<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CONFTEST: acquire_console_sem<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">..................<\/span><\/strong><\/code><br \/>\nbut then:<br \/>\n<code><strong><span style=\"font-family: Courier New, Courier, monospace;\">.............<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">SYMLINK \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel\/nvidia-modeset\/nv-modeset-kernel.o<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">LD [M] \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel\/nvidia-modeset.o<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CC [M] \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel\/nvidia-drm\/nvidia-drm.o<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CC [M] \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel\/nvidia-drm\/nvidia-drm-drv.o<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel\/nvidia-drm\/nvidia-drm-drv.c:662:44: error: \u2018DRIVER_PRIME\u2019 undeclared here (not in a function); did you mean \u2018DRIVER_PCI_DMA\u2019?<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">662 | .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_RENDER,<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| ^~~~~~~~~~~~<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">| DRIVER_PCI_DMA<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[2]: *** [scripts\/Makefile.build:266: \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel\/nvidia-drm\/nvidia-drm-drv.o] Error 1<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: *** [Makefile:1670: \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-435.21\/kernel] Error 2<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: Leaving directory '\/usr\/src\/linux-5.4-rc1'<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make: *** [Makefile:81: modules] Error 2<\/span><\/strong><\/code><\/p>\n<p>So &#8211; more investigation is needed here..<\/p>\n<p>With VMware <strong>15.5.0<\/strong>, there is a 5.4 patched version of <strong>vmmon\/vmnet<\/strong> at <a href=\"https:\/\/github.com\/mkubecek\/vmware-host-modules\/tree\/tmp\/workstation-15.5.0-k5.4\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/mkubecek\/vmware-host-modules\/tree\/tmp\/workstation-15.5.0-k5.4<\/a><br \/>\nI applied these, and the vmmon\/vmnet compile completed, but with some odd warnings (output truncated):<br \/>\n<code><strong><span style=\"font-family: Courier New, Courier, monospace;\">.....................<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol alloc_pages_current from namespace uptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol kmalloc_caches from namespace nterruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __kmalloc from namespace ock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol up_read from namespace _lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __put_devmap_managed_page from namespace e, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol vmalloc from namespace _lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol schedule_hrtimeout from namespace ruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol gdt_page from namespace lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol vm_node_stat from namespace _interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol init_timer_key from namespace nterruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol vfree from namespace ex_lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __get_user_1 from namespace _interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol tsc_khz from namespace _lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol cpu_number from namespace ck_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol vmemmap_base from namespace _interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol kthread_create_on_node from namespace ible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol jiffies from namespace _lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol down_read from namespace ock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol vm_zone_stat from namespace _interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol _copy_to_user from namespace interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol misc_register from namespace interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol del_timer_sync from namespace nterruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol memset from namespace x_lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __default_kernel_pte_mask from namespace e, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol vmalloc_to_pfn from namespace nterruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol current_task from namespace _interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol printk from namespace x_lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol kthread_stop from namespace _interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol _totalram_pages from namespace terruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol ktime_get_raw_ts64 from namespace ruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol vmap from namespace tex_lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol _cond_resched from namespace interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __x86_indirect_thunk_rbx from namespace le, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol down from namespace tex_lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol mod_timer from namespace ock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol poll_freewait from namespace interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol add_timer from namespace ock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol up_write from namespace lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol down_write from namespace ck_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol fput from namespace tex_lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol poll_initwait from namespace interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol page_offset_base from namespace erruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol kmem_cache_alloc from namespace erruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __free_pages from namespace _interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol smp_call_function from namespace rruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol ioremap_nocache from namespace terruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol cpu_khz from namespace _lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __get_free_pages from namespace erruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __stack_chk_fail from namespace erruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol schedule_timeout from namespace erruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol schedule from namespace lock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol __x86_indirect_thunk_rax from namespace le, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol wake_up_process from namespace terruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol msleep_interruptible from namespace ptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol _raw_spin_lock from namespace nterruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol vsnprintf from namespace ock_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">WARNING: module vmmon uses symbol free_pages from namespace ck_interruptible, but does not import it.<\/span><\/strong><br \/>\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">...etc, etc ..........<\/span><\/strong><\/code><br \/>\n&#8211; and with similar warnings for <span style=\"font-family: Courier New, Courier, monospace;\"><strong>vmnet<\/strong><\/span>..<br \/>\nDespite this, the modules install, and <strong><span style=\"font-family: Courier New, Courier, monospace;\">#vmare<\/span><\/strong> seems to work OK? (tested with Win7 guest).<\/p>\n<p>I did think that this might be a kernel config problem at my end, but installed the pre-compiled Fedora (Rawhide) kernel version &#8211; <span style=\"font-family: Courier New, Courier, monospace;\"><strong>5.4.0-0.rc0.git6.1.fc32.x86_64<\/strong><\/span> &#8211; and got similar results.<\/p>\n<p>So.. more investigation needed!<\/p>\n<p><em>Robert Gadsdon. September 30th 2019.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kernel 5.4-rc1 is out &#8211; a day later than usual, and brief details are here: http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1909.3\/04895.html My tests with VMware and NVIDIA revealed some odd errors\/warning relating to kernel symbols.. With the latest NVIDIA (435.21) I got the following: # make make[1]: Entering directory &#8216;\/usr\/src\/linux-5.4-rc1&#8217; The Module.symvers file is missing, or does not contain any symbols exported <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/rglinuxtech.com\/?p=2614\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[6,10,11,14,15,18,19,1533,25],"tags":[2103,2104,2106,2105],"class_list":["post-2614","post","type-post","status-publish","format-standard","hentry","category-crash-and-burn","category-fedora","category-hacks","category-kernel","category-linux-2","category-nvidia","category-opinion","category-patches","category-vmware","tag-kernel-5-4-rc1-out","tag-module-symvers-warnings","tag-nvidia-435-21-fails","tag-patched-vmware-15-5-ok"],"_links":{"self":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2614","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2614"}],"version-history":[{"count":3,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2614\/revisions"}],"predecessor-version":[{"id":2617,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2614\/revisions\/2617"}],"wp:attachment":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2614"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2614"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}