AMD顯卡,新版Kernel 5.11衝突無法安裝原廠驅動程式,降版本解法(UBUNTU Linux)

由於撿到一個便宜的風扇故障顯卡RX560 4GB,想說裝到一台老桌機使用當備援。
結果除了DEBIAN系統一直安裝不成功顯卡驅動,即使乾脆改成UBUNTU系統,發現連現行版ubuntu-20.04.3-desktop-amd64.iso LTS,也是沒辦法成功裝載原廠的驅動程式。
重灌好幾次之後(USB1.0 live CD傳輸速度搞死人,順便升級SATA硬碟才解決主機板IO速度瓶頸)…。
這時候注意到他在安裝amdgpu驅動時,看起來都會在編譯Kernel出現錯誤,說什麼drms無法成功掛載驅動模組。
GOOGLE好一陣子,似乎也發現有人發類似的求救文章。
好心的經驗者,告知建議應該可以嘗試降級KERNEL的版本,就能使驅動程式正常掛載。
UBUNTU 20.04.3 LTS LiveCD的版本,內建KERNEL 5.11.0-27,所以會無法用LIVE CD偷吃步RAM DISK方式直接裝驅動使用。
而安裝到硬碟後,自動更新APT的過程,KERNEL會升級到5.11.0-37這版,更不用說了,這一版依然會衝突無法安裝AMDGPU的驅動程式。
看網友的說明,建議降版本改到KERNEL 5.4.0-58,就能成功安裝驅動程式和執行OpenCL的計算功能。
所以趁記憶猶新,趕快給自己成功摸索後做個紀錄。

首先,
安裝aptitude套件,和抓Kernel 5.4.0-58的generic版本。
我的主機板關係,要多抓延伸模組,才能把內建的網路卡成功使用(因為這樣重灌好幾次系統才知道…)。
sudo apt install aptitude
sudo apt install linux-image-5.4.0-58-generic linux-headers-5.4.0-58-generic linux-modules-extra-5.4.0-58-generic

接著,
要先改GRUB的菜單選項,先手動轉舊版KERNEL,確定無什麼異常或當機。
sudo nano /etc/default/grub
把STYLE改成菜單顯示,多一行CONSOLE模式,倒數計時我是改成5秒鐘。

GRUB_DEFAULT=0
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT_STYLE=menu
GRUB_TERMINAL=console
#GRUB_TIMEOUT=0
GRUB_TIMEOUT=5

執行更新GRUB
sudo update grub

sudo grub-mkconfig -o /boot/grub/grub.cfg
讓系統跑新的設定後,接著重開機。
手動選舊版的KERNEL,看開機後,有無其他本來正常的功能變成不正常。再自行除錯看看。
像我一開始沒有安裝linux-modules-extra套件,造成網路卡驅動辨識不到,無法使用聯網。

第三部分,
當確認舊版的KERNEL能成功進到X桌面後,我們緊接著就可以去抓AMD原廠的驅動程式了。
注意自己UBUNTU的版本,選對連結抓取。
https://www.amd.com/zh-hant/support/kb/release-notes/rn-amdgpu-unified-linux-20-20
我抓這個:Radeon™ Software for Linux® version 20.20 for Ubuntu 20.04
然後,把驅動程式的tar.xz檔案解壓縮。
tar Jxvf ./amdgpu-pro-20.20-1098277-ubuntu-20.04.tar.xz
cd ./amdgpu-pro-20.20-1098277-ubuntu-20.04
接著下安裝驅動的指令。
sudo amdgpu-install –opencl=legacy,pal –headless –pro
然後,就等執行程式自己抓檔案和更新驅動,重編核心模組。
如果成功安裝,就會結束,如果失敗就要看訊息再來看怎解。
不過我個人降版本後,就沒有再出現那個drms的失敗訊息了。

第四部份,
重開機,確認系統有無辨識到新的顯卡和openCL能正常輸出。
可以用clinfo這個套件來確認有無辨識到顯卡和正確的安裝驅動程式。
sudo apt install clinfo
指令:
clinfo
如果沒有錯誤訊息,還能列出一堆文字說他找到AMD顯卡硬體的部分就是成功了。

第五部分(可有可無),
BENCHMARK軟體,如果說微軟WINDOWS的是用甜甜圈FurMark燒機程式
那Linux的替代軟體版本就是UNIGINE Benchmarks,也是個免費軟體。
官方網站:https://benchmark.unigine.com/
他的執行程式是.RUN檔案,記得用chmod改755執行權限。
然後就可以用X視窗滑鼠點選執行程式,測試燒機了。

第六部分,
既然顯卡成功辨識,但是要把舊版的KERNEL改成預設啟動。
目前我的作法是強制自己選要開機的內容。
可以用指令看進階選單是第幾個選項以外:
grep “menuentry ‘Ubuntu” /boot/grub/grub.cfg
也可以重開機看自己選什麼選項去使用,例如我是進階選單後第五個是舊版的KERNEL。
所以我們要去修改預設值。
sudo nano /etc/default/grub
選單第二個、進階選單第五個(0 1 2 3 4),所以是1和4,然後1>和4之間要有空格。

#GRUB_DEFAULT=0
GRUB_DEFAULT="1> 4"
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT_STYLE=menu
GRUB_TERMINAL=console
#GRUB_TIMEOUT=0
GRUB_TIMEOUT=5

修改好以後要更新GRUB設定列表。
sudo update grub

sudo grub-mkconfig -o /boot/grub/grub.cfg
完成以後,就嘗試重開機,讓系統自己選要開機的系統核心,看有無正確。
我是完成開機後,用uname -a確定版本有無顯示正確的舊版。

後記,留下問題,未來更新:
(A)怎麼把舊版本的KERNEL,鎖住不要被APT修改,這個再研究看看。
解答:
執行以下指令,先把這舊版的KERNEL先設hold旗標。
sudo apt-mark hold linux-image-5.4.0-58-generic linux-headers-5.4.0-58-generic linux-modules-extra-5.4.0-58-generic

(B)怎麼把AMD超頻核心、記憶體和電壓值的設定修改,這個要再找適合的軟體和研究看看。
https://github.com/Arman92/OhGodATool/releases/download/1.0.0/ohgodatool
https://github.com/Eliovp/amdmemorytweak/releases/download/0.1.9.1/amdmemtweak

(C)怎麼看核心溫度監控,這個也要再找軟體研究看看(風扇我現在是掛9CM強制送12V電全速吹~XD)
可以用兩種套件看狀態。
C-1. 基本版:
sudo apt lm-sensors
sensors

C-2. 超頻設定版:
安裝OhGodATool套件(https://github.com/OhGodACompany/OhGodATool)
原始開發者不知道什麼原因把他帳號關了。
有好心人士作分流:https://github.com/Arman92/OhGodATool
wget https://github.com/Arman92/OhGodATool/releases/download/1.0.0/ohgodatool
chmod 755 ohgodatool
sudo ./ohgodatool -i 0 –show-temp

C-3. 進階記憶體超頻工具 之一:
安裝上述的OhGodATool套件後,除了可以看風扇速度和核心溫度以外。
這個軟體最大的功能就是可以設定核心時脈、記憶體時脈和核心電壓、記憶體電壓。
可以看這篇俄文的分享文章參考https://www.cryptoprofi.info/?p=5219
設定的部分我也還在研究,有空再來細節整理。
原則上,Rx560 4G穩定的最大運算設定為:
CORE: 1125 (or 1150) MEM: 2100 (or 2050) (Core+Mem)mV: 850
本來預設值,燒機程式會讓核心溫度升到71。C(環境溫度30。C),而且感覺畫面頓頓的。
後來調整後,燒機程式可以讓溫度降到65。C(環境溫度28。C),感覺畫面是相對順暢了。
也許把散熱膏重抹,風扇改成更暴力流量的噪音扇。
也許這樣的新設定讓核心溫度可能可再降低,至於這個部分後面再來交叉測試看看。

C-4. 進階記憶體超頻工具 之二:
安裝amdmemtweak 套件(https://github.com/Eliovp/amdmemorytweak
wget https://github.com/Eliovp/amdmemorytweak/releases/download/0.1.9.1/amdmemtweak
chmod 755 ./amdmemtweak
sudo apt install libpci-dev
看文章說明,好像GDDR5的記憶體晶片,可以透過這個工具增加運算效率。
所以寫一個.sh的檔案,指令多一個sleep秒數來延遲輸出。
參數REF可以嘗試設定20~90,看哪種是穩定的和不會過熱。
在這張RX560 4G的顯卡,看起來設定30是安全的數值。
nano RX560amdmemtweak.sh
#!/bin/bash
#filename: RX560amdmemtweak.sh
sleep 1
sudo ./amdmemtweak --i 0 --REF 30

chmod 755 RX560amdmemtweak.sh
sudo ./RX560amdmemtweak.sh

(D)文字版的console介面,可以安裝什麼套件來看顯卡GPU和MEM的稼動率狀態。
可以抓RadeonTOP這個開發程式,https://github.com/clbr/radeontop

其他相關參考文章:
1.
https://blog.xuite.net/b993011029311/CLanguateNote/331081165-%E9%99%8D%E7%B4%9A+Linux+Kernel+Version+on+Ubuntu
2.
http://roan.logdown.com/posts/183081-ubuntu-1204-lts-kernel-downgrade
3.
https://iter01.com/592559.html
4.
https://zhengdao.github.io/2018/10/09/switch-ubuntu-linux-kernel/
5.
https://askubuntu.com/questions/678630/how-can-i-avoid-kernel-updates
6.
https://www.cryptoprofi.info/?p=5219

Print Friendly, PDF & Email
分類: 遊戲相關, 電腦相關。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

請輸入下列驗證碼計算後阿拉伯數字 (Translate it, if not Taiwanese to post reply) *