Linuxを日常的に使う実験ブログ

[Solved]Radeonビデオカード搭載Arch Linuxでmesaをアップグレード後にXorg / Waylandが起動しないトラブルについて

 2024-02-27

 2024-03-03

 Arch Linux

※2024-03-03追記

本件は2024-03-01のmesaパッケージのアップデートにて筆者の環境では問題が解消されたことが確認されました。

— 追記ここまで

今回のテーマはmesaパッケージをver. 24.0にアップグレード後にRadeonのビデオカードを使用したArch LinuxのXorg / Waylandが起動しない問題についてです。ネットの情報を見る限り古いRadeonドライバーで起きているようです。

トラブルが起きたマシン環境

以下に今回トラブルが起きたマシンのスペックを記します。

CPUAMD FX-8370E Eight-Core Processor
ビデオカードRadeon HD 8670
メモリ16GB

表1. マシンスペック

カーネルドライバはradeonが読み込まれていました。以下コマンドで確認しました。

lspci -k | grep -A 3 -E "(VGA|3D)"

以下が出力結果です。

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Oland>
Subsystem: ASUSTeK Computer Inc. Oland XT [Radeon HD 8670 / R5 340X OEM>
Kernel driver in use: radeon
Kernel modules: radeon, amdgpu

何が起きたのか

起きた現象としてはXorgを使用しXfceをstartxコマンドで起動した場合、黒い画面が表示され一切のキーを受け付けずクラッシュし、そのまま電源を落とす以外に手段がありませんでした。

WalandコンポジタであるSwayを起動した場合には起動後しばらくして強制終了してしまします。dmesgコマンドでのメッセージでは以下のエラーが認められました。

[  186.475023] sway[1474]: segfault at 40 ip 00007524e20cd545 sp 00007ffc7f91efc0 error 4 in radeonsi_dri.so[7524e1a14000+14dd000] likely on CPU 6 (core 6, socket 0)

グラフィックドライバ周りで問題が起きていることがわかります。

ArchLinuxのForumsでも話題に

この問題は公式のForumsでも話題に上がっており、いくつかForumが立ち上がっていますのでリンクを貼っておきます。もし同じ問題で困っている人の参考になれば幸いです。

暫定的な回避策

Forumでの議論やMesaのGitlab(*2)から、mesa由来のトラブルということになり修正版のmesaをインストールが根本的な解決になるとは思います。暫定的にユーザーサイドで出来ることとしてはmesaパッケージのバージョンを下げることと or 起動時にカーネルパラメータを渡しradeonドライバの読み込みを防ぐことになりそうです。以下に筆者の場合は以下で回避できたという対策を記しておきます。

1. mesaをダウングレードする

まず一つ目の手段としてはmesaにパッチが当てられるまでmesaのバージョンを下げておくという手があります。すでに開発者側でもmesa 24.0についての問題は把握してるようですので(*2)修正版のパッケージがリリースされるまで23.5を利用しながら待ちます。Arch LinuxにおけるパッケージのダウングレードはArch wikiを参考にして下さい。今回は以下のコマンドでダウングレードしました。

pacman -U /var/cache/pacman/pkg/mesa-1:23.5.5-1-x86_64.pkg.tar.zst

問題が解決するまでアップグレードしないように/etc/pacman.confの[options]の項目に以下のように追記しておきましょう。

IgnorePkg = mesa

2. amdgpuドライバを読み込む

カーネル起動時にradeonドライバの変わりにamdgpuドライバを読み込ませることで状況が改善する可能性があります。筆者の環境ではSway(Wayland)ではこのこの方法で起動が可能となりました。残念ながらXfce(Xorg)に関しては記事の執筆時点では起動に至っていません。

以下のカーネルパラメータを渡してカーネルのradeonサポートを無効化し、代わりにamdgpuを使用するように変更しました。

radeon.si_support=0 amdgpu.si_support=1 radeon.cik_support=0 amdgpu.cik_support=1

筆者はブートローダにGrubを使用しているため、上記フレーズをGrbu起動時に’e’キーを押して編集画面にして、Linux行の最後に追記してOSを起動しました。

ただ、この措置は暫定的で次回起動時には無効になるのでカーネルパラメータを永続化するには/etc/default/grubを開き、GRUB_CMDLINE_LINUX_DEFAULT行に追記した後に以下コマンドを実行します。

grub-mkconfig -o /boot/grub/grub.

最後に

システムアップデート後にXfce(Xofg)およびSway(Wayland)が起動しなくなり、非常に困惑しました。ビデオカードの不具合も疑いましたが、mesaパッケージをダウングレードしたり、カーネルパラメータを変更し起動することで今の所問題なく使用できています。

本記事が同様の事象で困っている方のお役に立てば幸いです。状況に変化があれば続報を出したいと思います。

参考資料: