2023年12月7日 星期四

radeon-profile 編譯筆記

終於又有時間可以玩我的 Radeon RX580 GPU 了! 找到 這篇 介紹一些檢視 AMD GPU 的軟體。 今天先從 radeon-profile 開始吧。

這兩天我的 OS 是 LMDE5, 可是 radeon-profile 沒有現成的 debian 套件, 需要自己編譯。 不想把我的環境弄得太亂, 決定在 docker 裡面編譯。 一開始找到 docker-debuild (github) 以下就是採用這個 docker 的編譯過程。 但後來發現用別的映像檔比較好。 下詳。

cd ~/git/
git clone git@github.com:lucisgit/docker-debuild.git
sudo docker run -it --name debuild -v ~/git:/package --entrypoint /bin/bash lucisgit/docker-debuild

# 進入 guest 之後:
apt install vim less curl wget
apt install x11-utils x11-xserver-utils libdrm-radeon1 mesa-utils
apt install g++ qt5-qmake libqt5charts5-dev libxrandr-dev libdrm-dev
strings /usr/bin/qmake | grep -i default
cd /usr/lib/x86_64-linux-gnu/qtchooser/ ; ln -s qt5.conf default.conf
cd /package/radeon-profile/radeon-profile
qmake
make

docker-debuild 建議把 host 的資料目錄對應到 guest 的 /package 目錄。 原本的設計是不提供命令列, 一口氣把 *.deb 套件打包好。 可是我們有好多準備動作要做。 所以用 --entrypoint 強制叫出 bash, 並且用 -it 採互動模式。 詳見 Docker 新手第二課: 前景/背景/收工休息 圖解狀態轉換

官方文件提到的 dependencies 並不是套件名稱, 所以花了一些力氣才拼湊出如上的 apt install 指令。 後來又遇到 "qmake: could not find a Qt installation of ''" 的錯誤訊息, 可以建立 symlink 解決。 執行 qmake 只是用來建立 Makefile。 最後 make 執行一段時間, 順利的話, 就會產生 target/radeon-profile 執行檔。

回到 host, 用 ldd radeon-profile | grep -i 'not found' 查看一下有沒有欠缺動態函式庫, 結果... version `GLIBC_2.34' not found。 用 apt show libc6 發現我的系統用的是舊版 2.31。 爬了一些文都沒有簡單的解決方法; 我可不想為此動到系統底層、 升級 libc6 啊!

改採最簡單的方法: 在 docker hub 找另一個 container, 就用 LMDE5 吧: docker run -it --name lmde5 -v ~/git:/mnt/git linuxmintd/lmde5-amd64 重複相同的步驟。 這次有很多套件其實系統裡早就已安裝。 這篇筆記記錄 docker-debuild 的編譯過程, 主要是因為它的環境很貧乏。 如果連它都可編出執行檔 (只是 GLIBC 版本不對) 那麼你的 debian 系列作業系統照著做應該也會成功。 總之, 選一個跟 host 具有相同環境的 guest, 編譯出來的執行檔就不會有問題了!

回到 host, 必須用 root 的身份執行 radeon-profile 才有權限去讀 GPU 的狀態。 雖然一大堆資訊看不太懂, 至少看到我的 GPU 正常運作就很開心!

沒有留言:

張貼留言

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。