LinuxでPCIeデバイスをリセットするには
Linuxの入っているPCにSound BlasterX AE-5というサウンドカードを接続しているのですが、一度s2idleでスリープするとスリープ解除しても音が出なくなります。その状態でもサウンドカードをリセットしてやると音が出る状態に復帰したので、その方法のメモです。
PCIeデバイスのリセット
下記を実行して、あらかじめPCIのアドレスを調べます。
% lspci -tv -[0000:00]-+-00.0 Intel Corporation Device a700 (略 +-1c.0-[04]----00.0 Creative Labs CA0132 Sound Core3D [Sound Blaster Recon3D / Z-Series / Sound BlasterX AE-5 Plus] (略
上記の場合、サウンドカードのアドレスは0000:00:1c.0なので、下記を実行します。
% (echo "1" | sudo tee /sys/bus/pci/devices/0000:00:1c.0/remove) && (echo "1" | sudo tee /sys/bus/pci/rescan)
FF14をLinuxで動かす話
普段はGPUパススルーを使ってLinux上の仮想環境でWindowsを動かし、その上でFF14をプレイしています。さらに以前Mediated Passthroughで仮想GPUを作成して、それを使用する仮想環境でFF14を動かしてみたこともありました。一方Wine等を使用して仮想環境を使わなくてもFF14が動くという話は以前からあり知っていたのですが、やったことはありませんでした。今回興味本位で試してみたのでそのメモを残しておきます。 当然このページの内容はサポート外になります。何があっても責任は取れません。
テスト環境
OSはDebian GNU/Linux (sid)です。2023-08-18時点で最新の環境です。
手順
まずはFlatpakのパッケージをインストールします。
# sudo apt install flatpak
Flatpakのリポジトリを追加します。
% flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
XIVLauncherをFlatpakでインストールします。グローバル版と中国版があるようなので、中国版ではないほうを選択します。
% flatpak --user install xivlauncher
起動します。
% flatpak --user run dev.goats.xivlauncher
左下の歯車アイコンをクリックして、Game LanguageをJapaneseにして右下のチェックマークアイコンをクリックします。そのあとUsername、Passwordを入力して、Use one-time passwordにチェックを入れてLoginを押します。そしてワンタイムパスコードを入力してOKを押します。そうするとゲームのダウンロードが始まります。そのままダウンロードが終了すると起動しました。なんて簡単なんだ…!
とりあえず試してみたところ、ゲームパッドはそのまま使えました。ただしfcitx5では日本語を直接入力することはできないようです。日本語を含むテキストのコピペはできました。
今回実施したその他の設定
うちの環境では下記も実施しています。
Swayを使っていてマウスの入力がおかしい!
Swayを使っていると、そのままでは解像度が間違って認識されて、クリックした座標が見た目と一致しないようです。下記を ~/.config/sway/config
に追加してフローティングを有効にすると、クリックした座標が見た目と一致するようになりました。
for_window [class="XIVLauncher.Core"] floating enable for_window [class="ffxiv_dx11.exe"] floating enable
SSDが足りない!
下記を実施して、ゲームのファイルをSSDからHDDに逃がしました。
% mv -iv ~/.xlcore/ffxiv /hdd/ % mkdir ~/.xlcore/ffxiv % sudo mount --bind /hdd/ffxiv/ ~/.xlcore/ffxiv/