1. 程式人生 > >解決Ubuntu 13.10安裝Nvidia驅動出錯問題

解決Ubuntu 13.10安裝Nvidia驅動出錯問題

2014.1.10更新:

11月6日更新的NVIDIA顯示驅動331.20終於支援3.12核心了,下載最新版本驅動即可。

宣告,只針對NVIDIA-Linux-x86_64-319.60.run版本,其他版本請修改對應檔名(未測試)。

安裝的前期工作照常。直到要關閉service lightdm這一項。

NVIDIA-Linux-x86_64-319.60.run的目錄位置為<dir>,在<dir>下執行

sh ./NVIDIA-Linux-x86_64-319.60.run -x
出現一個同名資料夾。

複製文字:

--- NVIDIA-Linux-x86_64-319.60/kernel/nv-drm.c  2013-09-26 01:02:38.000000000 +0400
+++ NVIDIA-Linux-x86_64-319.60/kernel/nv-drm.c  2013-10-02 14:00:03.617000000 +0400
@@ -201,12 +201,7 @@
     memset(&nv_obj->base, 0, sizeof(nv_obj->base));
     nv_obj->pages = pages;
 
-    ret = drm_gem_private_object_init(nvl->drm, &nv_obj->base, size);
-    if (ret)
-    {
-        status = RM_ERR_OPERATING_SYSTEM;
-        goto done;
-    }
+    drm_gem_private_object_init(nvl->drm, &nv_obj->base, size);
 
     ret = drm_gem_handle_create(file_priv, &nv_obj->base, handle);
     if (ret)
diff -ur NVIDIA-Linux-x86_64-319.60/kernel/nv-linux.h NVIDIA-Linux-x86_64-319.60/kernel/nv-linux.h
--- NVIDIA-Linux-x86_64-319.60/kernel/nv-linux.h        2013-09-26 01:02:38.000000000 +0400
+++ NVIDIA-Linux-x86_64-319.60/kernel/nv-linux.h        2013-10-02 14:01:31.461000000 +0400
@@ -1037,7 +1037,11 @@
 #endif
 
 #if !defined(NV_VMWARE)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 11, 0)
 #define NV_NUM_PHYSPAGES                num_physpages
+#else
+#define NV_NUM_PHYSPAGES                get_num_physpages()
+#endif
 #define NV_GET_CURRENT_PROCESS()        current->tgid
 #define NV_IN_ATOMIC()                  in_atomic()
 #define NV_LOCAL_BH_DISABLE()           local_bh_disable()

儲存在<dir>下,名字為patchfile.diff檔案,執行命令
patch -p0 < patchfile.diff
然後關閉lightdm:
sudo service lightdm stop

然後進入<dir>/NVIDIA-Linux-x86_64-319.60資料夾,執行:
sudo ./nvidia-install

就可以安裝了