{"id":352,"date":"2013-01-15T22:36:48","date_gmt":"2013-01-15T22:36:48","guid":{"rendered":"http:\/\/blog.cyberwizzard.nl\/?p=352"},"modified":"2016-03-17T21:26:43","modified_gmt":"2016-03-17T20:26:43","slug":"ubuntu-kernel-38-and-nvidia-drivers","status":"publish","type":"post","link":"https:\/\/blog.cyberwizzard.nl\/?p=352","title":{"rendered":"Ubuntu Kernel 3.8 and NVidia Drivers"},"content":{"rendered":"<p>While playing around with various mainline kernels I found out that the vanilla NVidia driver (310.xx and 313.xx) do not compile on the linux 3.8.0-rc3 kernel. Testing the xorg-edgers and ubuntu-x-swat versions of the NVidia driver package did not help either.<\/p>\n<p>Until the NVidia driver officially supports the 3.8.0 kernel, this workaround will allow you to fix the NVidia driver using the DKMS source installation. This might also still apply for kernel 3.7.x. Begin by adding the ubuntu-x-swat repository to get at least version 304.60 of the NVidia driver:<\/p>\n<pre class=\"code hl hl-bash\"><span class=\"kw2\">sudo<\/span> apt-add-repository ppa:ubuntu-x-swat<span class=\"sy0\">\/<\/span>x-updates\n<span class=\"kw2\">sudo<\/span> <span class=\"kw2\">apt-get update<\/span>\n<span class=\"kw2\">sudo<\/span> <span class=\"kw2\">apt-get install<\/span> nvidia-current<\/pre>\n<p>Patch (by hand if you have to) the following 2 files:\u00a0<code class=\"not-hl\">\/usr\/src\/nvidia-current-304.64\/conftest.sh<\/code> and <code class=\"not-hl\">\/usr\/src\/nvidia-current-304.64\/nv-mmap.c<\/code>. These patches are based on 310.xx but can be used for manual modification:<\/p>\n<pre class=\"code hl hl-c\"><span class=\"sy0\">---<\/span> conftest.<span class=\"me1\">sh<\/span>.<span class=\"me1\">dist<\/span>&nbsp; &nbsp; <span class=\"nu0\">2012<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">10<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">11<\/span> <span class=\"nu0\">19<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">18<\/span><span class=\"sy0\">:<\/span><span class=\"nu16\">22.704848496<\/span> <span class=\"sy0\">-<\/span><span class=\"nu8\">0400<\/span>\n<span class=\"sy0\">+++<\/span> conftest.<span class=\"me1\">sh<\/span> <span class=\"nu0\">2012<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">10<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">12<\/span> <span class=\"nu0\">20<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">35<\/span><span class=\"sy0\">:<\/span><span class=\"nu16\">55.707213868<\/span> <span class=\"sy0\">-<\/span><span class=\"nu8\">0400<\/span>\n@@ <span class=\"sy0\">-<\/span><span class=\"nu0\">20<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">6<\/span> <span class=\"sy0\">+<\/span><span class=\"nu0\">20<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">7<\/span> @@\n&nbsp;ISYSTEM<span class=\"sy0\">=<\/span>`$CC <span class=\"sy0\">-<\/span>print<span class=\"sy0\">-<\/span>file<span class=\"sy0\">-<\/span>name<span class=\"sy0\">=<\/span>include <span class=\"nu0\">2<\/span><span class=\"sy0\">&gt;<\/span> <span class=\"sy0\">\/<\/span>dev<span class=\"sy0\">\/<\/span><span class=\"kw2\">null<\/span>`\n&nbsp;SOURCES<span class=\"sy0\">=<\/span>$<span class=\"nu19\">4<\/span>\n&nbsp;HEADERS<span class=\"sy0\">=<\/span>$SOURCES<span class=\"sy0\">\/<\/span>include\n<span class=\"sy0\">+<\/span>HEADERSA<span class=\"sy0\">=<\/span>$SOURCES<span class=\"sy0\">\/<\/span>include<span class=\"sy0\">\/<\/span>uapi\n&nbsp;OUTPUT<span class=\"sy0\">=<\/span>$<span class=\"nu19\">5<\/span>\n&nbsp;XEN_PRESENT<span class=\"sy0\">=<\/span><span class=\"nu0\">1<\/span>\n&nbsp;\n@@ <span class=\"sy0\">-<\/span><span class=\"nu0\">118<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">7<\/span> <span class=\"sy0\">+<\/span><span class=\"nu0\">119<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">7<\/span> @@\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fi\n&nbsp; &nbsp; &nbsp;fi\n&nbsp;\n<span class=\"sy0\">-<\/span> &nbsp; &nbsp;CFLAGS<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;$CFLAGS $OUTPUT_CFLAGS -I$HEADERS $AUTOCONF_CFLAGS&quot;<\/span>\n<span class=\"sy0\">+<\/span> &nbsp; &nbsp;CFLAGS<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;$CFLAGS $OUTPUT_CFLAGS -I$HEADERS -I$HEADERSA $AUTOCONF_CFLAGS&quot;<\/span>\n&nbsp;\n&nbsp; &nbsp; &nbsp;test_xen\n&nbsp;\n@@ <span class=\"sy0\">-<\/span><span class=\"nu0\">146<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">10<\/span> <span class=\"sy0\">+<\/span><span class=\"nu0\">147<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">10<\/span> @@\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fi\n&nbsp; &nbsp; &nbsp;fi\n&nbsp;\n<span class=\"sy0\">-<\/span> &nbsp; &nbsp;CFLAGS<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;$BASE_CFLAGS $MACH_CFLAGS $OUTPUT_CFLAGS -I$HEADERS $AUTOCONF_CFLAGS&quot;<\/span>\n<span class=\"sy0\">+<\/span> &nbsp; &nbsp;CFLAGS<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;$BASE_CFLAGS $MACH_CFLAGS $OUTPUT_CFLAGS -I$HEADERS -I$HEADERSA $AUTOCONF_CFLAGS&quot;<\/span>\n&nbsp;\n&nbsp; &nbsp; &nbsp;<span class=\"kw1\">if<\/span> <span class=\"br0\">&#91;<\/span> <span class=\"st0\">&quot;$ARCH&quot;<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;i386&quot;<\/span> <span class=\"sy0\">-<\/span>o <span class=\"st0\">&quot;$ARCH&quot;<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;x86_64&quot;<\/span> <span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span> then\n<span class=\"sy0\">-<\/span> &nbsp; &nbsp; &nbsp; &nbsp;CFLAGS<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;$CFLAGS -I$SOURCES\/arch\/x86\/include -I$OUTPUT\/arch\/x86\/include\/generated&quot;<\/span>\n<span class=\"sy0\">+<\/span> &nbsp; &nbsp; &nbsp; &nbsp;CFLAGS<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;$CFLAGS -I$SOURCES\/arch\/x86\/include -I$SOURCES\/arch\/x86\/include\/uapi -I$OUTPUT\/arch\/x86\/include\/generated -I$OUTPUT\/arch\/x86\/include\/generated\/uapi&quot;<\/span>\n&nbsp; &nbsp; &nbsp;elif <span class=\"br0\">&#91;<\/span> <span class=\"st0\">&quot;$ARCH&quot;<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;arm&quot;<\/span> <span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span> then\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CFLAGS<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;$CFLAGS -I$SOURCES\/arch\/arm\/include -I$OUTPUT\/arch\/arm\/include\/generated&quot;<\/span>\n&nbsp; &nbsp; &nbsp;fi\n<span class=\"sy0\">---<\/span> nv<span class=\"sy0\">-<\/span>mmap.<span class=\"me1\">c<\/span>.<span class=\"me1\">dist<\/span> <span class=\"nu0\">2012<\/span><span class=\"sy0\">-<\/span><span class=\"nu19\">08<\/span><span class=\"sy0\">-<\/span><span class=\"nu19\">08<\/span> <span class=\"nu0\">22<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">52<\/span><span class=\"sy0\">:<\/span><span class=\"nu16\">53.000000000<\/span> <span class=\"sy0\">-<\/span><span class=\"nu8\">0400<\/span>\n<span class=\"sy0\">+++<\/span> nv<span class=\"sy0\">-<\/span>mmap.<span class=\"me1\">c<\/span> <span class=\"nu0\">2012<\/span><span class=\"sy0\">-<\/span><span class=\"nu19\">08<\/span><span class=\"sy0\">-<\/span><span class=\"nu0\">14<\/span> <span class=\"nu0\">23<\/span><span class=\"sy0\">:<\/span><span class=\"nu0\">52<\/span><span class=\"sy0\">:<\/span><span class=\"nu16\">41.257235863<\/span> <span class=\"sy0\">-<\/span><span class=\"nu8\">0400<\/span>\n@@ <span class=\"sy0\">-<\/span><span class=\"nu0\">450<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">7<\/span> <span class=\"sy0\">+<\/span><span class=\"nu0\">450<\/span><span class=\"sy0\">,<\/span><span class=\"nu0\">7<\/span> @@\nNV_PRINT_AT<span class=\"br0\">&#40;<\/span>NV_DBG_MEMINFO<span class=\"sy0\">,<\/span> at<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\nnv_vm_list_page_count<span class=\"br0\">&#40;<\/span><span class=\"sy0\">&amp;<\/span>at<span class=\"sy0\">-&gt;<\/span>page_table<span class=\"br0\">&#91;<\/span>i<span class=\"br0\">&#93;<\/span><span class=\"sy0\">,<\/span> pages<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n\n<span class=\"sy0\">-<\/span> vma<span class=\"sy0\">-&gt;<\/span>vm_flags <span class=\"sy0\">|=<\/span> <span class=\"br0\">&#40;<\/span>VM_IO <span class=\"sy0\">|<\/span> VM_LOCKED <span class=\"sy0\">|<\/span> VM_RESERVED<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n<span class=\"sy0\">+<\/span> vma<span class=\"sy0\">-&gt;<\/span>vm_flags <span class=\"sy0\">|=<\/span> <span class=\"br0\">&#40;<\/span>VM_IO <span class=\"sy0\">|<\/span> VM_LOCKED <span class=\"sy0\">|<\/span> <span class=\"br0\">&#40;<\/span>VM_DONTEXPAND <span class=\"sy0\">|<\/span> VM_DONTDUMP<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/pre>\n<p><\/span><\/p>\n<p>Patches are taken from <a class=\"external external-http\" href=\"http:\/\/ubuntuforums.org\/showpost.php?p=12331553&amp;postcount=93\" target=\"_blank\">here<\/a> After patching, the NVidia kernel module will not be built unless you install a new kernel or force an update using DKMS. To rebuild the kernel module for your currently running kernel, run this:<\/p>\n<p><code class=\"not-hl\">sudo dkms autoinstall -k $(uname -r)<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>While playing around with various mainline kernels I found out that the vanilla NVidia driver (310.xx and 313.xx) do not compile on the linux 3.8.0-rc3 kernel. Testing the xorg-edgers and ubuntu-x-swat versions of the NVidia driver package did not help either. Until the NVidia driver officially supports the 3.8.0 kernel, this workaround will allow you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-352","post","type-post","status-publish","format-standard","hentry","category-linux-gentoolinux"],"views":4438,"_links":{"self":[{"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/posts\/352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=352"}],"version-history":[{"count":3,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/posts\/352\/revisions"}],"predecessor-version":[{"id":377,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=\/wp\/v2\/posts\/352\/revisions\/377"}],"wp:attachment":[{"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cyberwizzard.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}