2024/12/27現在、ubuntuの22.04ではARC B580はうまく認識されません。
こんな感じでllvmpipe(LLVM 15.0.7,256bits)と表示され、ソフトウェアレンダラーで動作していることが確認できます。
ですが、実は24.10であれば普通にインストールするだけで認識します。
私の拙い技術では、結論24.10を使ったほうが良いということになりました。
ですが、ここはあえて22.04を使っていきましょう。
Linuxカーネルをソースコードからビルドする作業は必須ではないかもしれませんが
今後、あたらしいハードウェアを導入した際、役に立つかもしれないからです。
それでは、やっていきましょう。
まず、ARC B580を動作させるのに必要になるのは
・mesaドライバの24.3以上のバージョン
・Linuxカーネルの6.12以上のバージョン
・最新のLinuxファームウェア
です。
最初にカーネルのビルドに必要なライブラリ等からインストール。
sudo apt install -y make gcc flex bison git
sudo apt install -y libncurses-dev libssl-dev libelf-dev
次に、mesaドライバのリポジトリの登録と最新版のダウンロード、インストール。
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt -y update
sudo apt -y upgrade
sudo apt install mesa-vulkan-drivers mesa-utils
そしてLinuxカーネルのソースコードですが、https://www.kernel.org/からダウンロードできます。
「mainline」とあるのが最新のカーネルになるようです。
機能が増えているとのことですが、自分の技術と知識ではさっぱり違いがわかりません。
ですので、今回は「stable」となっている「6.12.6」を使っていきます。
画像のようにクリックしてダウンロードするのも良いんですが、
cd ~
mkdir -p install
cd install
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.6.tar.xz
tar -xvf linux-6.12.6.tar.xz
cd linux-6.12.6
このように、コマンドでやっていきましょう。
上記のコマンドどおりなら、
「linux-6.12.6」がカレントディレクトリになっているはずですので
make menuconfig
でビルドのコンフィグを設定していきます。
とはいっても、素人の私では必要不必要がわかりませんので
ビルドに必要な手順だけやっていきます。
ファイル容量の節約とか気にして、ドライバをいろいろ削っていくと
USBメモリすら認識しなくなることもありますので。
まずはこの画面になると思います。
ここで「Cryptographic API」を選択します。
次に「certificates for signature checking」を選択。
「debian/canonical-certs.pem ~」を選びます。
下のような画面になると思いますので、
下の画面のように消していきます。消したら、「OK」を選択。
次は「debian/canonical-revoked-certs.pem ~」を選択。
下のような画面になると思いますので、
同様に消していきます。消したら「OK」を選択。
ここから、3回くらい「EXIT」を選択。
下の画面になったら、「Yes」を選択。
これで、コンフィグの設定は終わりです
では、いよいよビルド開始!!
time make -j$(nproc)
気合が入っているように見えますが、PCにとっては結構大仕事です。
カレントディレクトリは変わっていないと思いますので、「time make -j$(nproc)」を実行。
「time」をつけているのは、ビルドにかかった時間を測るためです。
CPUのベンチマークにも使えそう。
12分半といったところ。
次は
sudo make modules_install
sudo make install
でインストールしていきます。
思ったより時間がかかると思いますので、「time」はお好みで。
次はGRUBの編集です。
sudo nano /etc/default/grub
「GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”」の部分を
「GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash i915.force_probe=!e20b xe.force_probe=e20b”」に書き換えます。
「Ctrl + O」→「Enter」でGRUBを書き換えたら、「Ctrl + X」→「Enter」で編集終了。
Linuxファームウェアのダウンロードと更新
cd ~
cd install
git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
sudo cp -r linux-firmware/* /lib/firmware/
上記スクリプトでダウンロードから更新まで自動でやってくれます。
それが終わったら、
sudo update-grub
GRUBの更新をします。
ここまで済んだら、再起動しましょう。
確認!
OK!
これで、ソフトウェアレンダラーからハードウェアレンダラーに切り替わりました。
ここまでやっておいてこんなこと書きたくないのですが
ubuntu22.04ではハードウェアエンコーダが使えないみたいです。
#!/bin/bash
# IntelグラフィックスGPG公開キーをインストールする
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
sudo gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg
# パッケージリポジトリを構成する
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | \
sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list
sudo apt update -y
sudo apt install -y libze1 intel-level-zero-gpu intel-opencl-icd clinfo libze-dev intel-ocloc intel-level-zero-gpu-raytracing
sudo usermod -aG render $USER
sudo usermod -aG video $USER
上記スクリプトで「ubuntu22.04用」の最新のドライバを導入することもできますが、それでもQSVなどは使えません。
もちろんこれからのドライバ次第だと思うのですが、現状ではubuntu24.10を使う方が良いです。
ここからは余談
ハードウェアエンコーダは使えませんが、vulkanは動作します。
ということはSteamでゲームも動くと思いますが、自分はあまりゲームはやらないので試してません。
どなたかやってみてください。
ここからは余談なのですが、以下は自分が作った自動化スクリプトですが
「rife-ncnn-vulkan」
というソフトを使って、とある動画の「余分なフレームの間引き」と「間引いた分のAI補間」を実行しているところです。
秒間34フレームとなっています。
Windowsで動作させたら秒間55フレームだったので、まだまだ最適化が不足しているみたいです。
このスクリプトは近々アップする予定です。
Windowsなら「Flowframes」というソフトがありますが、あれをubuntuでもできないかなぁと思って「bash」と「ffmpeg」と「rife-ncnn-vulkan」を組み合わせて作りました。
「Flowframes」は「cuda」に最適化されていて、「Radeon」や「ARC」ではあんまり速度は期待できませんが、これは「Vulkan」なのでGPUは選びません。
内臓GPUでもそこそこ動作します。
8700Gで平均14フレーム(フルHD画質なら)くらいでしたので、まあまあ我慢できるレベルかと思います。
このブログ読んでる人なんてほとんどいないと思いますが、興味のある方は公開後に使ってみてください。
今回は以上です。
コメント