NVIDIA 驅動安裝 - 通用 [論壇 - Ubuntu 非官方發行版討論]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



NVIDIA 驅動安裝 - 通用
會員三級
註冊日期:
2017/3/23 10:15
所屬群組:
已註冊使用者
等級: 9
HP : 0 / 221
MP : 39 / 2186
EXP: 84
離線
#####################################################
### NVIDIA 驅動安裝 - 各發行版通用
#####################################################
## 驅動安裝
NVIDIA 核心模塊編譯工具:具體就是 gcc dkms make linux-headers mesa
各發行版套件名稱可能不一樣,自己核對。

# Build Requires:
# debian
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install gcc make patch linux-headers-amd64 dkms
sudo apt-get install libglx-mesa0:i386

# fedora
sudo dnf install gcc make patch kernel-devel dkms
sudo dnf install mesa-libGL.i686

# openSUSE
sudo zypper install gcc make patch kernel-default-devel dkms
sudo zypper install Mesa-libGL1-32bit

# archlinux
sudo pacman -S gcc make patch linux-headers dkms
sudo pacman -S lib32-mesa

# NVIDIA 驅動下載
選擇適合的驅動版本下載
173.xx 之前的版本太舊了,補釘只到 Linux 4.12 版, 新系統可能不太適合。
https://www.nvidia.com/en-us/drivers/unix/

# 修復權限
chmod 755 NVIDIA-Linux-x86_64-*.run

# NVIDIA 顯示卡驅動安裝
NVIDIA 自帶的 OpenGL 會跟 Linux 底下版本有衝突,所以不安裝 NV 的 OpenGL。
sudo -s
./NVIDIA-Linux-x86_64-*.run \
--no-x-check \
--no-nouveau-check \
--no-cc-version-check \
--no-opengl-files


# 安裝選項:
Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later.
Yes No

選擇 Yes

Install NVIDIA's 32-bit compatibility libraries?

Yes No

選擇 Yes


# 建立 NVIDIA 顯示卡 xorg 配置
這是 NVIDIA 單一顯示卡需要設定的,NVIDIA Optimus 不可用。
sudo nvidia-xconfig

# 禁用 nouveau 驅動
sudo sh -c 'echo "blacklist nouveau" > /etc/modprobe.d/50-blacklist.conf'

# 重建 Ramdisk
# debian
sudo update-initramfs -u
# archlinux
sudo mkinitcpio -p linux
# fedora / openSUSE
sudo dracut -f -v



NVIDIA module 有些版本可能沒辦法自動完成編譯,所以跑玩安裝程式後,可能需要對模塊的原始碼打補釘並手動安裝。或者對 RUN 檔案打補釘重新安裝。

#####################################################
## 核心模塊補釘
#####################################################
kernel module patch:
https://aur.archlinux.org/cgit/aur.git/tree/?h=nvidia-96xx-dkms
https://aur.archlinux.org/cgit/aur.git/tree/?h=nvidia-173xx-dkms
https://aur.archlinux.org/cgit/aur.git/tree/?h=nvidia-340xx

cp -r /usr/src/$(ls /usr/src/ | grep nvidia) .
patch -Np1 -i xxxx.patch

* 1.手動編譯 module
cd nvidia.xxxx
IGNORE_CC_MISMATCH=1 make -j$(nproc) SYSSRC=/usr/src/linux-headers-$(uname -r) module
MODULE_PATH=/lib/modules/$(uname -r)
NVKMS=$(find . | grep .ko$)
for i in $NVKMS; do
    KMS=$(basename "$i")
    sudo install -D -m644 "$i" $MODULE_PATH/kernel/drivers/video/$KMS
done


sudo /sbin/ldconfig
sudo depmod


或者把補釘好的 kernel module 原始碼放回 /usr/src/
然後使用 dkms 編譯
NV_VER=390.129
sudo /usr/sbin/dkms build -m nvidia -v $NV_VER -k $(uname -r)
sudo /usr/sbin/dkms install -m nvidia -v $NV_VER -k $(uname -r)

* 2.RUN 檔案打補釘
NVIDIA-Linux-x86_64-*.run --apply-patch xxxx.patch

然後會重新打包新的 NVIDIA-Linux-x86_64-*-custom.run。
執行 NVIDIA-Linux-x86_64-*.run --uninstall 移除,重新安裝這個 NVIDIA-Linux-x86_64-*-custom.run 就會自動完成安裝。


#####################################################
## NVIDIA OpenGL/CL 替代品
#####################################################
# 套件名稱:libglvnd、ocl-icd

# Debian libglvnd
sudo apt-get install libegl1 libegl1:i386 libglvnd0 libglvnd0:i386 libgles1 libgles1:i386 libgles2 libgles2:i386 libgl1 libgl1:i386 libglx0 libglx0:i386 libopengl0 libopengl0:i386
# Debian ocl-icd
sudo apt-get install ocl-icd-libopencl1 ocl-icd-libopencl1:i386

# Fedora libglvnd
sudo apt-get install libglvnd-glx libglvnd-glx.i686 libglvnd-opengl libglvnd-opengl.i686 libglvnd libglvnd.i686 libglvnd-gles libglvnd-gles.i686 libglvnd-egl libglvnd-egl.i686
# Fedora ocl-icd
sudo apt-get install ocl-icd ocl-icd.i686

# openSuSE libglvnd
sudo apt-get install libglvnd libglvnd-32bit
# openSuSE ocl-icd
sudo apt-get install libOpenCL1 libOpenCL1-32bit

# archlinux libglvnd
sudo pacman -S libglvnd lib32-libglvnd
# archlinux ocl-icd
sudo pacman -S ocl-icd lib32-ocl-icd

2018/3/20 14:44
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.