AMD Ryzen 9700X を積んだ新しいマシンに、FreeBSD 14.2p1 を入れて、AMD 用のドライバ (drm-61-kmod) を入れて、GPU 用のファームウェア (graphics/gpu-firmware-amd-kmod) を入れて、XCFE を入れて設定して…とやったら、GUI に切り替わるところで画面が真っ暗、または緑がチラチラ点滅する状態になってしまったんだ。
画面表示がおかしいだけで、クラッシュした訳ではなさそうなので、GPU まわりで調べてみた。
どうやら、Ryzen 7000 系 〜 9000系 の iGPU (Raphael) に対応する DCN 3.1.5 の (2025年2月時点での) 最新ファームウェアが腐っているらしい。こちらで知った → Black screen when using iGPU “Raphael” for new AMD Ryzen processors.
結果うまく使えるようになったので、以下に日本語で対処法をメモしておこうと思う。Git とか cURL は適当に入れてある。
まず、https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/dcn_3_1_5_dmcub.bin からファームウェアをダウンロードしておく。
# curl -o dcn_3_1_5_dmcub.bin https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amdgpu/dcn_3_1_5_dmcub.bin
Ports がいる… 入れてなかったので入れる。
# git clone https://git.FreeBSD.org/ports.git /usr/ports
ソースもいる… 入れてなかったので入れる。
# git clone --branch releng/14.2 https://git.FreeBSD.org/src.git /usr/src
気を取り直して。
# cd /usr/ports/graphics/gpu-firmware-amd-kmod
# make FLAVOR=dcn_3_1_5 patch
# cp /tmp/amdgpu_dcn_3_1_5_dmcub.bin /usr/ports/graphics/gpu-firmware-amd-kmod/work-dcn_3_1_5/drm-kmod-firmware-20230625_8/amdgpukmsfw-files/dcn_3_1_5_dmcub.bin
# make FLAVOR=dcn_3_1_5
# cp /usr/ports/graphics/gpu-firmware-amd-kmod/work-dcn_3_1_5/stage/boot/modules/amdgpu_dcn_3_1_5_dmcub_bin.ko /boot/modules/amdgpu_dcn_3_1_5_dmcub_bin.ko
# reboot
おっけい!
ログインマネージャから後がダメだったり、ログインマネージャを無効にすると、ドライバが読まれたらしいところで画面が真っ暗になる現象が起こる。ドライバも更新してみたらよくなった。
- pkg で入る drm-61-kmod:6.1.92.1401000_3
- ports にあった drm-61-kmod:6.1.92.1402000_3
ふむ。
# pkg remove drm-61-kmod
# cd /usr/ports/graphics/drm-61-kmod
# make
# make install
# make clean
# reboot
今度こそおっけいぽい!