HX99G が Bazzite で快適になったよ

HX99G が Bazzite で快適になったよ #

快適になったので、将来の自分のために書き残すよ。
やったことメモしておいて、Claude に渡したら全部整理してくれたよ。楽ちん

環境 #

項目 内容
マシン MINISFORUM HX99G
CPU/APU AMD Ryzen 9 6900HX
GPU AMD Radeon RX 6600M
Wi-Fi MediaTek RZ616(MT7922)
有線LAN Intel Ethernet Controller I226-V
OS Bazzite (KDE Plasma)

概要 #

  • Bazzite で Steam 専用機にするよ
    • Linux デスクトップ機 (Fedora) としても使えるけど、用途は基本 Steam のホスト
    • Steam Link のかわりに、Sunshine + Moonlight 使うよ
    • Bazzite は「バザイト」らしいよ
  • ネットワークとかグラフィック周りとか、何も設定しなくても大丈夫だったよ
    • 画面周りの転送が追いついてない感じの現象がなくなった
    • Wake On LAN も問題なし

経緯 #

  • Steam Link のホストとして快適に利用している HX99G、いつの頃からかネットワーク周りが調子悪い
  • AMD のドライバーがどうもアレで、ドラクエ 7 リイマジンドするのに障りがある(タイムアウト連発)
  • いっそのこと専用機にしてしまえってことで、Bazzite 導入。想像していたより快適なので、当分このままで
  • Windows 実験環境がなくなるけど、ANBERNIC WIN600 あるからいいや

導入 #

外付 HDD や 外付 SSD に導入する時はそれぞれトラブルあったけど、内蔵 SSD に導入する分には、トラブルなし。ISO は Desktop / AMD(RX 4xx+ | AI)/ KDEを選択。Steam Gaming Mode は YESで導入したけど、オフにすることに(後述)。

BIOS #

Wake On LAN のため、BIOS で Advanced > PCIE Devices > Wake On LAN: Enableらしい。

「らしい」 ってのは、Win11 の時にすでに設定済みだったので、今回いじってないです。

基本設定 #

  1. システム設定 > ディスプレイとモニター

    • 解像度: 1920 x 1080
      • リモート端末が 1920x1080なので、デスクトップ環境も合わせてるだけ
    • グローバルスケール: 100%
      • デフォだと 130% とかなってて、リモートから Moonlight で接続時、左上に縮小表示& 周りに虹、みたいになったので
  2. システム設定 > Wi-Fi とネットワーク

    • 何もしなくても有線でつながったのでそのまま。CLI で指定しやすいよう名称だけ「有線接続」を「LAN1」に
    • Wi-Fi は設定してません
  3. Wake ON LAN

    システム設定で設定項目見つけられなかったので、CLI で設定

    # ネットワーク接続名を確認
    $ nmcli connection show
    # magic packet
    $ sudo nmcli connection modify "LAN1" 802-3-ethernet.wake-on-lan magic
    # 設定項目確認
    $ nmcli connection show "LAN1" | grep 802-3-ethernet.wake-on-lan
    

Steam の設定 #

  • タイムゾーンを「日本 +0900」に変更しても、保存されない。ゲームのセーブデータは日本時間になってるみたいなので、そんなもんかと思って深追いしてない
  • ドラクエ 7 リイマジンドは、外付け環境の時 Proton 10 では不安定だったので、Proton 9.0-4 にした。内蔵 SSD なら大丈夫かもしれないけど、ゲームできればいいので試してない

リモート設定 #

Bazzite に最初から入ってる Sunshine を自動起動し、クライアントからは Moonlight で接続する

自動起動 #

  1. システム設定 > 自動起動
  2. 「+追加」→「アプリケーション」
  3. 検索バーに Sunshine

クライアントの登録 #

  1. Bazzite で Sunshine が起動していることを確認
    • 起動したら右下タスクバーに常駐している
    • タスクバーで右クリック→Open Sunshine
      • Firefox で設定画面が開くが、Firefox のセキュリティ設定にひっかかるので、先に Firefox 起動しておかないとダメかも
        • 接続はプライベートではありません→詳細設定→localhostに進む
        • URL はたぶん https://localhost:47990
    • 初回は ID と PW を決める
    • リモートから接続するための画面を選択。デフォのままでいいと思う
      • Desktop
      • Desktop (Low Res Desktop)
      • Steam (Big Picture)
  2. クライアントで Moonlight 起動する
    • 私は Android と macOS
    • 同じネットワークにつながっていると「bazzite」という名前の PC が登場するのでクリック
    • 「Sunshine で PIN コードを入力しろ」と表示される
  3. Bazzite の Firefox の Sunshine 設定画面のタブ「PIN」で、4桁のPIN 入力
    • 登録終わったら、Firefox は終了して OK
  4. 以降、Moonlight から接続可能
    • WoL でのシャットダウンからの起動も Moonlight からできる。便利

放置するとつながらなくなる問題 #

リモートで遊んでる時は PC のディスプレイは消してるので、リモートからつないだまま放置すると Sunshine が

Error: Couldn't find monitor [0]

とエラーを吐いて、Moonlight からつながらなくなる。ホストは生きてるので歩いていって Sunshine を Restart すればいいんだけど、そのうち HDMI のダミープラグでもつなごう。

以上。これで、HX99G は快適 Steam 機になった。以降は、オマ環なこと。

起動が遅いことの解消 #

期待値は 1 分未満での起動なんだけど、どうも数分かかるし、スプラッシュスクリーンが 2 回表示されてりするので、起動時に再チャレンジしたりしてる? と思って調査。

解決策 #

20〜30秒くらいで起動するようになった。満足。

参考: https://www.reddit.com/r/Bazzite/comments/1ddwucj/comment/l9ae5c9/

$ sudo tee /etc/sddm.conf.d/yy-desktop-mode.conf << 'EOF'
[Autologin]
Session=plasma.desktop
Relogin=false
EOF

解決手順 #

  1. デスクトップ左上にある「Return to Gaming Mode」クリックしても Desktop Mode に戻ってくるので、端末起動時もそうなってるんじゃないだろうか?

  2. おった

    $ journalctl -b | egrep -i "(gamescript|gaming|steam)"
    .
    .
     2月 14 21:19:56 bazzite steam[10597]: reaping pid: 13062 -- steam
     2月 14 21:21:44 bazzite steam[10597]: [2026-02-14 21:21:44] Background update loop checking for update. . .
    .
    .
    
    $ journalctl -b --no-pager | egrep -i "(sddm|plasm|kwin|compositor)"
    .
    .
     2月 14 21:17:49 bazzite sddm-helper[1797]: Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
     .
     .
     2月 14 21:17:49 bazzite sddm-helper[1797]: Starting Wayland user session: "/etc/sddm/wayland-session" "gamescope-session-plus steam"
    .
    .
     2月 14 21:17:53 bazzite gamescope-session-plus[2270]: [gamescope] [Info]  wlserver: Running compositor on wayland display 'gamescope-0'
    .
    .
     2月 14 21:18:08 bazzite sddm-helper[1797]: pam_unix(sddm-autologin:session): session closed for user higemaru
     .
     .
     2月 14 21:18:09 bazzite sddm-helper[3493]: Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
    
  3. KDE システム設定の SDDM 設定をいじっても状況変わらず。 Bazzite は Immutable OS だから、ここの設定いじってもダメなのかな?

  4. /etc/ 以下は書き込み可能みたいなんで、設定探すよ

    $ ls /etc/sddm.conf.d/
    kde_settings.conf  steamos.conf  virtualkbd.conf  zz-steamos-autologin.conf
    
    $ cat /etc/sddm.conf.d/steamos.conf
    [General]
    DisplayServer=wayland
    
    [Autologin]
    Relogin=true
    Session=gamescope-session.desktop
    User=higemaru
    
    [X11]
    # Janky workaround for wayland sessions not stopping in sddm, kills
    # all active sddm-helper sessions on teardown
    DisplayStopCommand=/usr/bin/gamescope-wayland-teardown-workaround
    
    $ cat /etc/sddm.conf.d/zz-steamos-autologin.conf
    [Autologin]
    Session=plasma-steamos-wayland-oneshot.desktop
    

    おった。これや

    [Autologin]
    Relogin=true
    Session=gamescope-session.desktop
    User=higemaru
    
  5. gamescope-session がもれなくエラーになって再ログインすることになるので、数分かかるし、セッション変わるのでログインもやりなおしだし、いいことないので

    • plasma.desktop で固定
    • Relogin なし(ここは気にしなくてよかったかもしれない)
    • zz- は一時的な設定ファイルで、起動時に削除される仕様
      • zz-steamos-autologin.conf がずっとあるのは、ずっと失敗してるってことだな
    • yy- はユーザーが意図的に上書き設定する時の prefix

スクショを自動でクラウドに #

あまりゲームのスクショとったりしないんだけど、たまにしかとらないから、よけいに取得に手間かけたくないのですよ。

  • pCloud に自動で同期
  • Bazzite は Gaming Mode ではバックグラウンドアプリはサスペンドされるかも、ということだったので、pCloud アプリに任せず、rclone + systemd でやる
    • 結果的に常時 Desktop Mode だけど、まあいいや
  • Bazite は、Mac ユーザーにはお馴染み Homebrew が入ってるよ。楽ちん
  • rclone は同期先に pCloud を選択できるよ。楽ちん

導入 & テスト #

$ brew install rclone
$ rclone config # ひたすら return 。pCloud は45番くらい。OAuth の時 Firefox 起動する

$ ls ~/.local/share/Steam/userdata/ # 数字連番の SteamID
$ ls ~/.local/share/Steam/userdata/<SteamID>/760/remote/ # 数字連番のフォルダ(ゲーム毎のデータ)

$ rclone copy ~/.local/share/Steam/userdata/<SteamID>/760/ pcloud:me/hx99g_Bazzite/ -n # dry-run で確認

自動化 #

  • 設置する場所を調べる

    $ systemctl --user --no-pager --property UnitPath show
    
  • service unit (実行)

    $ cat ~/.config/systemd/user/rclone-screenshots.service
    [Unit]
    Description=Copy screenshots to pCloud using rclone
    
    [Service]
    Type=oneshot
    ExecStart=/home/linuxbrew/.linuxbrew/bin/rclone copy %h/.local/share/Steam/userdata/1204200924/760/ pcloud:me/hx99g_Bazzite/
    # ExecStartPre=/usr/bin/sleep 2
    
  • path unit (監視)

    $ cat ~/.config/systemd/user/rclone-screenshots.path
    [Unit]
    Description=Watch Screenshots folder for changes
    
    [Path]
    PathChanged=%h/.local/share/Steam/userdata/1204200924/760/remote/
    Unit=rclone-screenshots.service
    
    [Install]
    WantedBy=default.target
    
  • 有効化

    $ systemctl --user daemon-reload
    $ systemctl --user enable --now rclone-screenshots.path
    
    $ systemctl --user status rclone-screenshots.path # 監視状態の確認
    $ systemctl --user start rclone-screenshots.service # 手動実行
    $ journalctl --user -u rclone-screenshots.service # ログ確認
    

See Also

Copyright © 髭。/ Hugo + hugo-book