目前nv出了很多機器,尤其是arm版本的cpu,在安裝dirver的時候會碰到蠻多問題的。最簡便的方式就還是透過apt直接進行安裝。只是還是會碰到由第三方編譯後放到ppa上面,這時候就會過不了UEFI的Security認證,需要跑一堆冗長的MOK認證。
不過MOK是可以透過安裝Canonical認證過的package就不需要MOK認證了。
又因為太多編譯版本,縮小搜尋方式的方式,就還是先用核心版本進行鎖定:
1. 使用 apt search搜尋:
linux-modules-nvidia-版本-類型-$(uname -r)
上面的例子,就需要先用uname -r把核心版本找出來
2. 決定要安裝之後,要先把原本的driver移除。但是除了module之外,也要一併處理driver:
# 清除已註冊的 NVIDIA DKMS module,不限定版本
if command -v dkms >/dev/null 2>&1; then
sudo dkms status |
awk -F, '/^nvidia\// {print $1}' |
sort -u |
while IFS= read -r module; do
[ -n "$module" ] && sudo dkms remove "$module" --all
done
fi
# 找出所有已安裝的 NVIDIA driver/kernel 套件,不限定版本
mapfile -t NVIDIA_DRIVER_PKGS < <(
dpkg-query -W -f='${binary:Package}\n' 2>/dev/null |
grep -E \
'^(nvidia-(driver|dkms|kernel-(common|source)|utils|compute-utils|headless|open|firmware|xconfig|conf-xconfig|persistenced|modprobe)(-|:|$)|libnvidia-(cfg1|common|compute|decode|encode|extra|fbc1|gl)(-|:|$)|xserver-xorg-video-nvidia(-|:|$)|linux-(modules|objects|signatures)-nvidia-)'
)
printf '即將移除以下 NVIDIA driver 套件:\n'
printf ' %s\n' "${NVIDIA_DRIVER_PKGS[@]}"
if ((${#NVIDIA_DRIVER_PKGS[@]})); then
sudo apt-get purge "${NVIDIA_DRIVER_PKGS[@]}"
fi
sudo apt-get autoremove --purge
然後進行安裝:
sudo apt install linux-modules-nvidia-版本-類型-$(uname -r)
sudo apt install nvidia-driver-版本號
3. 安裝後 modinfo -F signer nvidia 是否為 Canonical
沒有留言:
張貼留言