「Steam/トラブルシューティング」の版間の差分
(ページの作成:「Category:ゲーム en:Steam/Troubleshooting メインの記事は Steam を見てください。 {{Tip|{{ic|/usr/bin/steam}} スクリプトは Steam の標...」) |
|||
(4人の利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
[[Category:ゲーム]] |
[[Category:ゲーム]] |
||
[[en:Steam/Troubleshooting]] |
[[en:Steam/Troubleshooting]] |
||
+ | [[ru:Steam/Troubleshooting]] |
||
+ | {{Related articles start}} |
||
+ | {{Related|Steam/ゲーム別のトラブルシューティング}} |
||
+ | {{Related articles end}} |
||
メインの記事は [[Steam]] を見てください。 |
メインの記事は [[Steam]] を見てください。 |
||
− | {{Tip| |
+ | {{Tip|Steam のランチャースクリプトは Steam の標準出力や標準エラーを {{ic|/tmp/dumps/''USER''_stdout.txt}} にリダイレクトします。そのため、出力を確認するのにターミナルエミュレータから Steam を起動する必要はありません。}} |
{{Note|ここにまとめられているものに加えて、Valve のバグトラッカーや [https://github.com/ValveSoftware/steam-for-linux GitHub] にバグ・フィックス・エラーが報告されています。}} |
{{Note|ここにまとめられているものに加えて、Valve のバグトラッカーや [https://github.com/ValveSoftware/steam-for-linux GitHub] にバグ・フィックス・エラーが報告されています。}} |
||
− | == Steam |
+ | == Steam のデバッグ == |
+ | Steam をデバッグすることで何が原因で問題が行っているのか情報を集めることができます。 |
||
− | [https://github.com/ValveSoftware/steam-runtime/issues/13 上流の GitHub issue トラッカー] |
||
+ | {{ic|DEBUGGER}} 環境変数を {{ic|gdb}}, {{ic|cgdb}}, {{ic|valgrind}}, {{ic|callgrind}}, {{ic|strace}} のどれかに設定して {{ic|steam}} を起動してください。 |
||
− | Steam はいくつかのライブラリについて独自のバージョンを供給しています ("Steam ランタイム")。これは最近のバージョンの Ubuntu で Ubuntu 12.04 の環境をエミュレートするためです。 |
||
+ | {{Pkg|gdb}} を使用する場合: |
||
− | しかしながら、Steam ランタイムに含まれているコアライブラリは Arch Linux に含まれている他のライブラリの新しいバージョンと衝突することがしばしばあります (ドライバーなど、特に、オープンソースの [[ATI|ATI]] ドライバー)。 |
||
+ | {{bc|1=$ DEBUGGER=gdb steam}} |
||
+ | {{ic|gdb}} が開くので {{ic|run}} と入力してください。{{ic|steam}} が起動します。クラッシュが発生したら {{ic|backtrace}} と入力することでコールスタックが確認できます。 |
||
− | これらのライブラリの Steam ランタイムバージョンを削除することで、Steam は最新のシステムライブラリ ([[pacman]] でインストールされたライブラリ) を使うようになり、問題を解決できます。 |
||
+ | == Steam ランタイムの問題 == |
||
− | Steam はアップデートがあると頻繁にランタイムライブラリを再インストールしているため、[https://github.com/ValveSoftware/steam-runtime/issues/13 ValveSoftware/steam-runtime#13] が解決されるまで、Steam がアップデートするたびに、Steam を終了して、ライブラリを削除して、再起動する必要があります。 |
||
+ | Steam は「Steam ランタイム」と呼ばれるライブラリをインストールしますが、中には古いバージョンも混ざっています。これらのライブラリは Arch Linux のライブラリと衝突することがあり、また、古いライブラリには重要な機能が含まれていないことがあります (例えば、Steam に含まれている OpenAL には [[ゲーム#OpenAL とバイノーラル音声|HRTF]] や surround71 のサポートが欠けています)。 |
||
− | 次のコマンドを実行することで Arch Linux で問題を発生させるランタイムライブラリを削除できます: |
||
+ | ランタイムが原因で Steam クライアントがクラッシュ・フリーズしたり、以下のような様々なエラーが発生します: |
||
− | {{bc| |
||
− | find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete |
||
− | }} |
||
− | 上記のコマンドが上手く行かない場合、もう一度コマンドを実行してから、次のコマンドを実行して下さい: |
||
{{bc| |
{{bc| |
||
+ | libGL error: unable to load driver: ''some_driver_dri''.so |
||
− | find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete |
||
+ | libGL error: driver pointer missing |
||
− | }} |
||
+ | libGL error: failed to load driver: ''some_driver'' |
||
+ | libGL error: unable to load driver: swrast_dri.so |
||
+ | libGL error: failed to load driver: swrast}} |
||
+ | Failed to load libGL: undefined symbol: xcb_send_fd |
||
− | もしくは、Steam を実行してライブラリを上書きさせることもできます: |
||
− | {{bc|LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam}} |
||
+ | ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. |
||
− | {{ic|.desktop}} ショートカットで上書きしたい場合、''Exec='' フィールドに以下のコマンドを使って下さい: |
||
− | {{bc|env LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' /usr/bin/steam %U}} |
||
+ | OpenGL GLX context is not using direct rendering, which may cause performance problems. |
||
− | これらのライブラリが存在することで起こる問題やエラーメッセージには以下のようなものがあります: |
||
+ | Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported or your OpenGL driver needs to be updated. |
||
− | * {{ic|Failed to load libGL: undefined symbol: xcb_send_fd}} |
||
− | * {{ic|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}} |
||
− | * XCOM などの64ビットのゲームで問題が発生する |
||
− | * "OpenGL GLX context is not using direct rendering, which may cause performance problems." ([[#OpenGL がダイレクトレンダリングを使わない / Steam で Xorg がクラッシュする|下を参照]]) |
||
− | * "Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported or your OpenGL driver needs to be updated." |
||
− | * Steam クライアントがクラッシュする |
||
+ | {{Note|1=[[ファイアウォール]]が正しく設定されていないせいで Steam がサーバーに接続できない可能性もあります [https://support.steampowered.com/kb_article.php?ref=2198-AGHC-7226]。Steam API がロードされないとほとんどのゲームはクラッシュします。}} |
||
− | フォーラムスレッド: |
||
+ | |||
+ | [https://github.com/ValveSoftware/steam-runtime/issues/13 上流の issue #13] や以下のフォーラムスレッドも参照してください: |
||
* https://bbs.archlinux.org/viewtopic.php?id=181171 |
* https://bbs.archlinux.org/viewtopic.php?id=181171 |
||
* https://bbs.archlinux.org/viewtopic.php?id=183141 |
* https://bbs.archlinux.org/viewtopic.php?id=183141 |
||
+ | === 解決方法 === |
||
− | 下の [[#ネイティブランタイムを使う]] も参照してください。 |
||
+ | {{pkg|steam}} パッケージでインストールした Steam を実行する方法は3つ存在します: |
||
− | ==ウィンドウを閉じても Steam が終了しない== |
||
+ | $ steam-runtime |
||
− | : Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025] |
||
+ | 上記のコマンドは {{ic|/usr/bin/steam}} で Steam を起動した時や "Steam" [[デスクトップエントリ]]を使ったときに使用されるコマンドです。問題を起こすランタイムライブラリは {{ic|LD_PRELOAD}} [[環境変数]]で上書きすることができます ({{man|8|ld.so}} を参照)。上記のコマンドでライブラリの衝突が発生する場合、{{ic|/usr/bin/steam-runtime}} のコピーを作成して回避策を追加することができます。 |
||
+ | $ steam-native |
||
− | トレイアイコンの閉じるボタンを機能させるには環境変数 {{ic|STEAM_FRAME_FORCE_CLOSE}} を {{ic|1}} に設定してください。Steam を起動するときに次のコマンドを使っても可能です: |
||
+ | 上記のコマンドは "Steam (Native)" [[デスクトップエントリ]]で実行されるコマンドです。強制的に Steam ランタイムを無視させシステムライブラリだけを使うようにします。Steam を完全に実行するには {{pkg|steam-native-runtime}} のインストールが必要になります。ただし、一部のゲームはさらに別のパッケージのインストールを必要とします。[[#欠けているランタイムライブラリの確認]]や [[Steam/ゲーム別のトラブルシューティング]]を参照してください。 |
||
− | $ |
+ | $ /usr/lib/steam/steam |
+ | 上記のコマンドは Arch 特有の設定が含まれていないノーマルな Steam ランチャーを起動します。 |
||
+ | === 欠けているランタイムライブラリの確認 === |
||
− | .desktop ファイルを使って steam を起動する場合は、{{ic|Exec}} を以下の行で置き換えてください: |
||
− | Exec=sh -c 'STEAM_FRAME_FORCE_CLOSE=1 steam' %U |
||
+ | {{ic|steam-native}} を使用する場合、ライブラリが足りないせいでゲームや Steam が起動しないことがあります。必要なライブラリを確認するには、以下のコマンドを実行してください: |
||
− | ==64ビット環境で Flash が動作しない== |
||
+ | $ cd ~/.local/share/Steam/ubuntu12_32 |
||
− | : Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 記事] |
||
+ | $ file * | grep ELF | cut -d: -f1 | LD_LIBRARY_PATH=. xargs ldd | grep 'not found' | sort | uniq |
||
+ | もしくは、Steam ランタイムを使って Steam を起動 ({{ic|/usr/bin/steam}}) して、以下のコマンドで Steam が使用しているライブラリを確認してください (全てが Steam ランタイムに含まれているとは限りません): |
||
− | まず {{pkg|lib32-flashplugin}} がインストールされていることを確認してください。これだけで動かないときは、ローカル Steam フラッシュプラグインフォルダを作成します: |
||
+ | |||
− | $ mkdir ~/.steam/bin32/plugins/ |
||
+ | $ for i in $(pgrep steam); do sed '/\.local/!d;s/.* //g' /proc/$i/maps; done | sort | uniq |
||
+ | NVIDIA のビデオカードを使っていて上記のコマンドで何も出力されない場合、{{pkg|lib32-nvidia-utils}} をインストールしてみてください。 |
||
− | そしてシンボリックリンクをグローバル lib32 フラッシュプラグインファイルに張って下さい: |
||
− | $ ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/ |
||
+ | == マルチディスプレイの設定 == |
||
− | == 64ビット環境で Flash の音声が鳴らない == |
||
+ | マルチディスプレイを使っている場合、{{ic|ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.}} というエラーが発生してゲームが起動できなくなることがあります。ディスプレイを減らしてみて、ゲームを実行できないか試してみてください。ゲームが問題なく起動したらディスプレイを元に戻しても問題ありません。 |
||
+ | また、以下のコマンドで Steam を実行してみてください: |
||
− | Steam クライアントで再生した動画の音声が鳴らない場合、{{Pkg|lib32-flashplugin}} を正しくインストールしているのならば、Steam が問題のある ALSA ライブラリを使用している可能性があります。 |
||
+ | export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH |
||
+ | == ネイティブランタイム: steam.sh line 756 Segmentation fault == |
||
− | ターミナルから Steam を起動してクライアントの中から動画をしようとすると以下のようなエラーが発生する場合: |
||
+ | |||
+ | : Valve の GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/3863 issue 3863] |
||
+ | |||
+ | 上記のバグレポートにあるように、{{ic|1=STEAM_RUNTIME=0}} を使って Steam を起動すると {{ic|/home/<username>/.local/share/Steam/steam.sh: line 756: <variable numeric code> Segmentation fault (core dumped)}} というエラーでクラッシュすることがあります。 |
||
+ | |||
+ | {{ic|steamclient.so}} が {{ic|libudev.so.0}} にリンクされており ({{AUR|lib32-libudev0}}{{Broken package link|パッケージが存在しません}})、{{ic|libudev.so.1}} と衝突するのが原因です ({{Pkg|lib32-systemd}})。 |
||
+ | |||
+ | Steam に含まれている32ビット版の libusb と libgudev を {{ic|/usr/lib32}} にコピーすることで解決します: |
||
+ | |||
+ | {{bc|# cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgudev* /usr/lib32 |
||
+ | # cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libusb* /usr/lib32}} |
||
+ | |||
+ | 上記の設定は {{ic|lib32-libgudev}} と {{ic|lib32-libusb}} がインストールされている環境で必要です。 |
||
+ | |||
+ | また、{{ic|libudev.so.1}} のロードの優先順位を変更することでも解決します ([https://github.com/ValveSoftware/steam-for-linux/issues/3863#issuecomment-203929113 同じ issue のコメント] を参照): |
||
+ | {{bc|1=$ LD_PRELOAD=/usr/lib32/libudev.so.1 STEAM_RUNTIME=0 steam}} |
||
+ | |||
+ | == 音声が鳴らなかったり 756 Segmentation fault が発生する == |
||
+ | |||
+ | {{Pkg|pulseaudio}} と {{Pkg|pulseaudio-alsa}} をインストールしてみてください。x86_64 環境なら {{Pkg|lib32-libpulse}} と {{Pkg|lib32-alsa-plugins}} もインストールしてください。 |
||
+ | |||
+ | Steam クライアントで再生した動画の音声が流れない場合、Steam に含まれている ALSA ライブラリがおそらく原因です。 |
||
+ | |||
+ | Steam クライアントで動画を再生しようとすると以下のようなエラーが出力されます: |
||
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave |
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave |
||
− | + | 解決方法は {{ic|alsa-lib}} フォルダ と {{ic|libasound.so.*}} ファイルの名前を変更、あるいは削除することです。ファイルは以下のフォルダに存在します: |
|
− | + | ~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/ |
|
+ | |||
+ | {{ic|libasound.so.*}} ライブラリを '''LD_PRELOAD''' 環境変数に追加することでも一時的に解決できます: |
||
+ | |||
+ | LD_PRELOAD='/usr/$LIB/libasound.so.2 '${LD_PRELOAD} steam |
||
+ | |||
+ | それでも音声が鳴らない場合、'''LD_PRELOAD''' 変数に PulseAudio のライブラリを追加すると問題が解決する場合があります: |
||
+ | |||
+ | LD_PRELOAD='/usr/$LIB/libpulse.so.0 /usr/$LIB/libpulse-simple.so.0 '${LD_PRELOAD} |
||
+ | |||
+ | ライブラリの名前は変わっている可能性があります。以下のフォルダを探して新しいライブラリとバージョンを確認してください: |
||
+ | |||
+ | ~/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu |
||
+ | |||
+ | バグレポートは [https://github.com/ValveSoftware/steam-for-linux/issues/3376 #3376] と [https://github.com/ValveSoftware/steam-for-linux/issues/3504 #3504] で報告されています。 |
||
== 文字が化けたり表示されない == |
== 文字が化けたり表示されない == |
||
− | Windows 用の Steam Support の[https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 手順]が Linux でも上手くいくようです |
+ | Windows 用の Steam Support の[https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 手順]が Linux でも上手くいくようです。 |
+ | {{AUR|steam-fonts}} パッケージをインストールするか、[https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] をダウンロードして[[フォント#手動インストール|インストール]] ({{ic|/usr/share/fonts/}} や {{ic|~/.fonts/}} にコピー) してください。 |
||
− | もしくは [[AUR]] の {{AUR|steam-fonts}} パッケージでインストールすることもできます。 |
||
{{Note|Steam が Arial フォントを見つけられないとき、fontconfig は Helvetica ビットマップフォントにフォールバックしようとします。Steam は Helvetica などのビットマップフォントを正しく表示できないため、Arial や Arial Bold フォントをインストールしなくても、問題のフォントを削除したり[[フォント設定#ビットマップフォントの無効化|ビットマップフォントを無効化]]することで問題が解決することがあります。Arial の代わりに使われているフォントは次のコマンドで確認できます: {{ic|$ fc-match -v Arial}}。}} |
{{Note|Steam が Arial フォントを見つけられないとき、fontconfig は Helvetica ビットマップフォントにフォールバックしようとします。Steam は Helvetica などのビットマップフォントを正しく表示できないため、Arial や Arial Bold フォントをインストールしなくても、問題のフォントを削除したり[[フォント設定#ビットマップフォントの無効化|ビットマップフォントを無効化]]することで問題が解決することがあります。Arial の代わりに使われているフォントは次のコマンドで確認できます: {{ic|$ fc-match -v Arial}}。}} |
||
+ | |||
+ | 一部のゲームは他のフォントを必要とします。[[Steam/ゲーム別のトラブルシューティング]]を参照してください。 |
||
== ゲームの起動時に SetLocale('en_US.UTF-8') が失敗する == |
== ゲームの起動時に SetLocale('en_US.UTF-8') が失敗する == |
||
99行目: | 144行目: | ||
== 起動後にすぐゲームがクラッシュする == |
== 起動後にすぐゲームがクラッシュする == |
||
− | + | ゲームを右クリックしてプロパティを選択して、「起動オプションを設定」ボタンをクリックしてください。そしてテキストボックスに以下のように入力してください: |
|
+ | {{bc|<nowiki>LD_PRELOAD='./libcxxrt.so:/usr/$LIB/libstdc++.so.6' %command%</nowiki>}} |
||
+ | And try the game again. Some games work with this and some games don't. |
||
+ | |||
+ | それでもゲームがクラッシュする場合、ゲームのプロパティを開き、「一般」タブの「ゲーム中に Steam オーバーレイを有効にする」のチェックを外してみてください。 |
||
+ | |||
+ | なおクラッシュが解決しないのであれば最終手段として Steam の出力を確認してゲームからエラーが吐かれていないか確認してください。以下のようなエラーが出力されていることがあります: |
||
+ | * munmap_chunk(): invalid pointer |
||
+ | * free(): invalid pointer |
||
+ | |||
+ | 上記のエラーが確認できた場合、問題の起こるゲームの {{ic|libsteam_api.so}} ファイルを問題なく起動するゲームのファイルに置き換えてください。大抵は最近アップデートされていないゲームで Steam ランタイムを無効にしたときにエラーが発生します。エラーが発生するゲームとして AYIM, Bastion, Monaco などがあります。 |
||
== OpenGL がダイレクトレンダリングを使わない / Steam で Xorg がクラッシュする == |
== OpenGL がダイレクトレンダリングを使わない / Steam で Xorg がクラッシュする == |
||
− | + | "OpenGL GLX context is not using direct rendering, which may cause performance problems" というエラーメッセージが表示されることがあります [https://support.steampowered.com/kb_article.php?ref=9938-EYZB-7457]。 |
|
− | おそらく32ビットのグラフィックドライバがちゃんとインストールされていません。[[Xorg#ドライバーのインストール]] |
+ | おそらく32ビットのグラフィックドライバがちゃんとインストールされていません。[[Xorg#ドライバーのインストール]]でどのパッケージをインストールするべきか確認してください。 |
− | 正しくインストールされたかどうかは {{Pkg|lib32-mesa-demos}} をインストールして |
+ | 正しくインストールされたかどうかは {{Pkg|lib32-mesa-demos}} をインストールして以下のコマンドを実行することで確認・テストできます: |
$ glxinfo32 | grep OpenGL |
$ glxinfo32 | grep OpenGL |
||
== 特定のゲームで音が鳴らない == |
== 特定のゲームで音が鳴らない == |
||
− | 特定のゲームで音が鳴らない場合、そして [[Steam/ゲーム別のトラブルシューティング]] |
+ | 特定のゲームで音が鳴らない場合、そして [[Steam/ゲーム別のトラブルシューティング]]で書かれている方法で問題が修正されないときは、[[#Steam ランタイムの問題|ネイティブランタイムを使う]]と音が鳴るようになることがあります。 |
+ | === FMOD サウンドエンジン === |
||
− | == You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1 == |
||
+ | 'FMOD' オーディオミドルウェアパッケージを使用する以下のゲームで問題が発生します: |
||
− | 初めて Steam を起動した時にこのエラーが表示されることがあります。あなたの使っているビデオドライバーの lib32 バージョンを全てインストールしたかどうか確認してください。例えば AMD と Intel が混載された環境で {{Pkg|catalyst-utils-pxp}}, {{Pkg|xf86-video-dri}}, {{Pkg|mesa-libgl}} をインストールしている場合は {{Pkg|lib32-catalyst-utils-pxp}}, {{Pkg|lib32-mesa-libgl}} をインストールする必要があります。 |
||
+ | |||
+ | * Hotline Miami |
||
+ | * Hotline Miami 2 |
||
+ | * Transistor |
||
+ | パッケージにバグが存在するために、ゲームによっては音声に問題が起こります。 |
||
− | たまに、Nvidia のプロプライエタリドライバーを再インストールしたりバージョンを変えた後にこのエラーが表示されることもあります。{{Pkg|lib32-nvidia-utils}} と {{Pkg|lib32-nvidia-libgl}} を再インストールしてください。 |
||
+ | ALSA で実際は使用していないデバイスをデフォルトのサウンドデバイスとして設定している場合に発生することが多いようです。[[Advanced Linux Sound Architecture#デフォルトサウンドカードの設定]]を参照してください。 |
||
− | == 古い intel ハードウェアでゲームが起動しない == |
||
+ | == Missing libc == |
||
− | 古い Intel ハードウェアで、起動した途端にゲームがクラッシュする場合、おそらくあなたの使っているハードウェアが最新の OpenGL を直接サポートしていないのが原因です。{{ic|/tmp/dumps/mobile_stdout.txt}} には gameoverlayrenderer.so エラーとして表示されますが、{{ic|/tmp/gameoverlayrenderer.log}} では GLXBadFBConfig エラーとして表示されます。 |
||
+ | おそらく Steam の実行ファイルが破損しています。以下のコマンドの出力を確認してください: |
||
− | ただし、ゲームに OpenGL の新しいバージョンを使うように強制させれば修正することができるかもしれません。ゲームを右クリックして、プロパティを選択し、"一般" タブの "起動設定" オプションをクリックして以下を貼り付けて下さい: |
||
+ | $ ldd ~/.local/share/Steam/ubuntu12_32/steam |
||
− | MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command% |
||
+ | {{ic|ldd}} によって動的実行ファイルでないと表示される場合、アップデートによって Steam のバイナリが壊れた可能性が高いです。以下のコマンドで修復できます: |
||
− | これによってゲームが OpenGL の最新バージョンを使用するようになります。 |
||
+ | $ cd ~/.local/share/Steam/ |
||
− | == Steam を起動させると X がクラッシュする (Radeon オープンソースドライバー) == |
||
+ | $ ./steam.sh --reset |
||
+ | 修復されない場合、{{ic|~/.local/share/Steam/}} ディレクトリを削除してもういちど Steam を起動してみてください。 |
||
− | (オープンソースの Radeon ドライバーで使われている) {{Pkg|glamor-egl}} 0.6.0 には[https://bugs.freedesktop.org/show_bug.cgi?id=79325 バグ]が存在し Steam を起動しようとしたときに X がクラッシュしてしまいます。新しい glamour バージョンがリリースされるまで対処法として [[AUR]] から {{AUR|glamor-egl-git}} をインストールして下さい。 |
||
+ | {{ic|$HOME}} ディレクトリがスラッシュで終わっている場合にも、Steam のバグが原因でエラーメッセージが表示されることがあります (Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/3730 issue 3730])。{{ic|/etc/passwd}} を編集して {{ic|/home/<username>/}} を {{ic|home/<username>}} に変更し、一度ログアウトしてからログインしなおすことで解決します。その後、Steam は自動的に修復を開始します。 |
||
− | == 使っていないネットワークインターフェイスを Steam が有効にしてしまう == |
||
+ | == Missing libGL == |
||
− | {{Note|Valve が [http://store.steampowered.com/news/16382/ 2015年4月9日のアップデート] で問題を解決したため、このフィックスは必要なくなりました。}} |
||
+ | Steam を初めて起動したときに以下のようなエラーが表示される場合: |
||
− | NetworkManager を使っている場合、Steam を起動すると無効になっているネットワークインターフェイスがオンになっていまうことがあります。polkit にネットワーク設定ルールを追加して Steam アプリケーションが NetworkManager にアクセスできないようにすることで問題を解決できます。以下のルールを作成して下さい: |
||
+ | You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1 |
||
− | {{hc|/etc/polkit-1/rules.d/99-networkmanager-steam.rules|<nowiki> |
||
− | polkit.addRule(function(action, subject) { |
||
− | if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0) { |
||
− | var filepath = polkit.spawn(["cat", "/proc/"+subject.pid+"/cmdline"]); |
||
+ | [[Xorg#ドライバーのインストール]]に書かれているビデオドライバーの {{ic|lib32}} バージョンがインストールされているか確認してください。 |
||
− | if(polkit.spawn(["basename", filepath]) == "steam\n") { |
||
+ | |||
− | return polkit.Result.NO; |
||
+ | == Missing vgui2_s.so == |
||
− | } |
||
+ | 起動時に以下のエラーが発生する場合: |
||
− | } |
||
+ | Could not load module 'vgui2_s.so'. |
||
− | });</nowiki>}} |
||
+ | {{ic|lib32-openal}} パッケージをインストールすることで解決します。詳しくは https://support.steampowered.com/kb_article.php?ref=9205-OZVN-0660 を参照してください。 |
||
+ | |||
+ | == 古い intel ハードウェアでゲームが起動しない == |
||
+ | |||
+ | 古い Intel ハードウェアで、起動した途端にゲームがクラッシュする場合、おそらくあなたの使っているハードウェアが OpenGL 3 を直接サポートしていないのが原因です。{{ic|/tmp/dumps/mobile_stdout.txt}} には gameoverlayrenderer.so エラーとして記録されますが、{{ic|/tmp/gameoverlayrenderer.log}} では GLXBadFBConfig エラーとして記録されます。 |
||
+ | |||
+ | ただし、ゲームに OpenGL の新しいバージョンを使うように強制させれば修正することができるかもしれません。ゲームを右クリックして、プロパティを選択し、"一般" タブの「起動オプションを設定」をクリックして以下を貼り付けて下さい: |
||
+ | |||
+ | MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command% |
||
+ | |||
+ | これによってゲームが OpenGL の最新バージョンを使用するようになります。 |
||
+ | |||
+ | == 2K のゲームが XFS パーティションで起動できない == |
||
+ | |||
+ | Civilization 5 などの 2K のゲームを [[XFS]] パーティションで起動した場合、ゲームのファイルが起動時に正しくロードされず起動できないことがあります [https://bbs.archlinux.org/viewtopic.php?id=185222]。 |
||
== 実行権限がないためにライブラリフォルダが追加できない == |
== 実行権限がないためにライブラリフォルダが追加できない == |
||
163行目: | 235行目: | ||
[[ゲームパッド#Steam コントローラー]]を見て下さい。 |
[[ゲームパッド#Steam コントローラー]]を見て下さい。 |
||
+ | == Steam が "Installing breakpad exception handler..." でフリーズする == |
||
− | == lib32-glibc はインストールされているのに32ビットの libc.so.6 が見つからないと表示される == |
||
+ | 参照: [https://bbs.archlinux.org/viewtopic.php?id=177245 BBS#177245] |
||
− | Steam のランチャースクリプトは {{ic|ldd}} の出力をチェックして必要なライブラリがインストールされているかどうかを確認します。しかしながら、Steam の実行ファイルが破損しているなど、ライブラリが不存在以外の理由でも、チェックが失敗することがあります。 |
||
− | 以下の出力を |
+ | Steam が以下のような出力をする場合: |
+ | Running Steam on arch rolling 64-bit |
||
− | $ ldd ~/.local/share/Steam/ubuntu12_32/steam |
||
+ | STEAM_RUNTIME is enabled automatically |
||
+ | Installing breakpad exception handler for appid(steam)/version(0_client) |
||
+ | {{ic|lib32-nvidia-*}} パッケージが一致していないことが原因です。 |
||
− | もし {{ic|ldd}} がダイナミック実行ファイルではないと判断した場合、アップデートの際に Steam によってバイナリが破損した可能性が考えられます。以下のコマンドで問題が解決するはずです: |
||
+ | == Bumblebee を使用している場合に 'GLBCXX_3.X.XX' not found == |
||
− | $ cd ~/.local/share/Steam/ |
||
+ | |||
− | $ ./steam.sh --reset |
||
+ | Steam パッケージの {{ic|libstdc++.so.6}} が古いことが原因です。ライブラリの問題を解決する方法は [[#Steam ランタイムの問題]] を参照してください。GitHub の [https://github.com/ValveSoftware/steam-for-linux/issues/3773 issue 3773] も参照。 |
||
+ | |||
+ | == メモリダンプによってメモリが食い潰されるのを防ぐ == |
||
+ | |||
+ | Steam はクラッシュすると、毎回 {{ic|/tmp/dumps/}} にメモリダンプを書き出します。Steam がクラッシュループにはまったり、頻繁にクラッシュしてしまうと、ダンプファイルの容量は莫大に増えていきます。Arch では {{ic|/tmp}} は tmpfs でマウントされるため、メモリやスワップファイルが不必要に消費されることになります。{{ic|/tmp/dumps}} から {{ic|/dev/null}} にシンボリックリンクを作成したり、パーミッションを変更することでメモリの浪費を防ぐことが可能です。それによって Steam はダンプファイルを書き込めなくなります。また、Steam によって Valve のサーバーにダンプがアップロードされることもなくなります。 |
||
+ | |||
+ | # ln -s /dev/null /tmp/dumps |
||
+ | |||
+ | または: |
||
+ | |||
+ | # mkdir /tmp/dumps |
||
+ | # chmod 600 /tmp/dumps |
||
+ | |||
+ | == ゲームを起動する際にスタンドアロンのコンポジタを終了する == |
||
+ | |||
+ | {{ic|%command%}} スイッチを利用することで、ゲームや環境によってはラグやティアリングの原因となるスタンドアロンのコンポジタ ([[Xcompmgr]] や [[Picom]]) を終了することができ、ゲームを終えた後に再起動できます。ゲームの起動オプションに以下を加えて下さい: |
||
+ | |||
+ | killall picom && %command%; picom -b & |
||
+ | |||
+ | 上のコマンドの {{ic|picom}} はあなたが使っているコンポジタに置き換えてください。もちろん、オプションを {{ic|%command%}} や {{ic|picom}} に加えることもできます。 |
||
+ | |||
+ | Steam は {{ic|%command%}} の後にプロセスは実行し Steam の状態はゲーム中になります。この例では、{{ic|nohup}} でコンポジタを実行するので Steam には付着されず (Steam を閉じても実行し続けます)、アンパサンドのあるコンポジタが実行されてからコマンドの行が終了して Steam の状態が戻ります。 |
||
+ | |||
+ | == Arch Linux のホストから Arch Linux のゲストにホームストリーミングが機能しない == |
||
+ | |||
+ | {{Pkg|lib32-libcanberra}} パッケージを[[インストール]]することで解決します。 |
||
+ | |||
+ | パッケージをインストールすると、ホームストリーミングでゲームを起動したときに Steam がクラッシュしなくなります。 |
||
+ | |||
+ | == ダウンロード速度が非常に遅い == |
||
+ | |||
+ | クライアント経由での Steam のアプリ (ゲームやソフトウェア) のダウンロード速度が遅い場合、[[dnsmasq]] などの DNS キャッシュプログラムをインストールすることで解決することがあります [https://steamcommunity.com/app/221410/discussions/2/616189106498372437/]。 |
||
+ | |||
+ | == DRI3 を使用している場合に Symbol lookup error == |
||
+ | |||
+ | Steam が以下のようなエラーを出力して終了してしまう場合: |
||
+ | |||
+ | symbol lookup error: /usr/lib/libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds |
||
+ | |||
+ | Xorg の設定ファイルで DRI3 を無効化するか {{ic|1=LIBGL_DRI3_DISABLE=1}} を付けて Steam を起動することで解決します: |
||
+ | |||
+ | $ LIBGL_DRI3_DISABLE=1 steam |
||
+ | |||
+ | == ハードウェアデコードが使えない == |
||
+ | ホームストリーミングのハードウェアデコードは {{ic|vaapi}} を使用します。詳しくは[[ハードウェアビデオアクセラレーション]]を参照してください。必ず {{ic|lib32}} バージョンのライブラリもインストールしてください。 |
||
+ | |||
+ | == 音声ストリームを別のデバイスに移動できない == |
||
+ | {{Pkg|pulseaudio}} を使っていて別の sink に音声ストリームを移動しようとした場合、ストリームを移動できないことがあります。 |
||
+ | |||
+ | 新しいバージョンの OpenAL ではデフォルトで pulse ストリームの移動ができないようになっているためです。以下の内容で {{ic|~/.alsoftrc}} を作成してください: |
||
+ | |||
+ | [pulse] |
||
+ | allow-moves=true |
||
+ | |||
+ | == 他の問題 == |
||
+ | |||
+ | === Valve の Source エンジンベースのゲームが低 FPS でパフォーマンスが非常に悪い === |
||
+ | |||
+ | 通常、この問題は Counter-Strike Source のようなゲームをカーネル 5.19 及びそれ以降で GNU/Linux 上で実行すると発生します。FPS は 30 ほどになり、パフォーマンスはプレイ不可能なほど悪くなります。[https://www.phoronix.com/news/Linux-5.19-Split-Lock][https://www.phoronix.com/news/Linux-Splitlock-Hurts-Gaming] |
||
+ | 回避策は[[カーネルパラメータ]] {{ic|1=split_lock_detect=off}} を追加することです。 |
||
− | 問題が解決しない場合、{{ic|~/.local/share/Steam/}} ディレクトリを削除してから Steam をもう一度起動してみてください。 |
2023年12月27日 (水) 14:35時点における最新版
メインの記事は Steam を見てください。
目次
- 1 Steam のデバッグ
- 2 Steam ランタイムの問題
- 3 マルチディスプレイの設定
- 4 ネイティブランタイム: steam.sh line 756 Segmentation fault
- 5 音声が鳴らなかったり 756 Segmentation fault が発生する
- 6 文字が化けたり表示されない
- 7 ゲームの起動時に SetLocale('en_US.UTF-8') が失敗する
- 8 起動後にすぐゲームがクラッシュする
- 9 OpenGL がダイレクトレンダリングを使わない / Steam で Xorg がクラッシュする
- 10 特定のゲームで音が鳴らない
- 11 Missing libc
- 12 Missing libGL
- 13 Missing vgui2_s.so
- 14 古い intel ハードウェアでゲームが起動しない
- 15 2K のゲームが XFS パーティションで起動できない
- 16 実行権限がないためにライブラリフォルダが追加できない
- 17 Steam コントローラーが正しく認識されない
- 18 Steam が "Installing breakpad exception handler..." でフリーズする
- 19 Bumblebee を使用している場合に 'GLBCXX_3.X.XX' not found
- 20 メモリダンプによってメモリが食い潰されるのを防ぐ
- 21 ゲームを起動する際にスタンドアロンのコンポジタを終了する
- 22 Arch Linux のホストから Arch Linux のゲストにホームストリーミングが機能しない
- 23 ダウンロード速度が非常に遅い
- 24 DRI3 を使用している場合に Symbol lookup error
- 25 ハードウェアデコードが使えない
- 26 音声ストリームを別のデバイスに移動できない
- 27 他の問題
Steam のデバッグ
Steam をデバッグすることで何が原因で問題が行っているのか情報を集めることができます。
DEBUGGER
環境変数を gdb
, cgdb
, valgrind
, callgrind
, strace
のどれかに設定して steam
を起動してください。
gdb を使用する場合:
$ DEBUGGER=gdb steam
gdb
が開くので run
と入力してください。steam
が起動します。クラッシュが発生したら backtrace
と入力することでコールスタックが確認できます。
Steam ランタイムの問題
Steam は「Steam ランタイム」と呼ばれるライブラリをインストールしますが、中には古いバージョンも混ざっています。これらのライブラリは Arch Linux のライブラリと衝突することがあり、また、古いライブラリには重要な機能が含まれていないことがあります (例えば、Steam に含まれている OpenAL には HRTF や surround71 のサポートが欠けています)。
ランタイムが原因で Steam クライアントがクラッシュ・フリーズしたり、以下のような様々なエラーが発生します:
libGL error: unable to load driver: some_driver_dri.so libGL error: driver pointer missing libGL error: failed to load driver: some_driver libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast
Failed to load libGL: undefined symbol: xcb_send_fd
ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
OpenGL GLX context is not using direct rendering, which may cause performance problems.
Could not find required OpenGL entry point 'glGetError'! Either your video card is unsupported or your OpenGL driver needs to be updated.
上流の issue #13 や以下のフォーラムスレッドも参照してください:
解決方法
steam パッケージでインストールした Steam を実行する方法は3つ存在します:
$ steam-runtime
上記のコマンドは /usr/bin/steam
で Steam を起動した時や "Steam" デスクトップエントリを使ったときに使用されるコマンドです。問題を起こすランタイムライブラリは LD_PRELOAD
環境変数で上書きすることができます (ld.so(8) を参照)。上記のコマンドでライブラリの衝突が発生する場合、/usr/bin/steam-runtime
のコピーを作成して回避策を追加することができます。
$ steam-native
上記のコマンドは "Steam (Native)" デスクトップエントリで実行されるコマンドです。強制的に Steam ランタイムを無視させシステムライブラリだけを使うようにします。Steam を完全に実行するには steam-native-runtime のインストールが必要になります。ただし、一部のゲームはさらに別のパッケージのインストールを必要とします。#欠けているランタイムライブラリの確認や Steam/ゲーム別のトラブルシューティングを参照してください。
$ /usr/lib/steam/steam
上記のコマンドは Arch 特有の設定が含まれていないノーマルな Steam ランチャーを起動します。
欠けているランタイムライブラリの確認
steam-native
を使用する場合、ライブラリが足りないせいでゲームや Steam が起動しないことがあります。必要なライブラリを確認するには、以下のコマンドを実行してください:
$ cd ~/.local/share/Steam/ubuntu12_32 $ file * | grep ELF | cut -d: -f1 | LD_LIBRARY_PATH=. xargs ldd | grep 'not found' | sort | uniq
もしくは、Steam ランタイムを使って Steam を起動 (/usr/bin/steam
) して、以下のコマンドで Steam が使用しているライブラリを確認してください (全てが Steam ランタイムに含まれているとは限りません):
$ for i in $(pgrep steam); do sed '/\.local/!d;s/.* //g' /proc/$i/maps; done | sort | uniq
NVIDIA のビデオカードを使っていて上記のコマンドで何も出力されない場合、lib32-nvidia-utils をインストールしてみてください。
マルチディスプレイの設定
マルチディスプレイを使っている場合、ERROR: ld.so: object '~/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
というエラーが発生してゲームが起動できなくなることがあります。ディスプレイを減らしてみて、ゲームを実行できないか試してみてください。ゲームが問題なく起動したらディスプレイを元に戻しても問題ありません。
また、以下のコマンドで Steam を実行してみてください:
export LD_LIBRARY_PATH=/usr/lib32/nvidia:/usr/lib/nvidia:$LD_LIBRARY_PATH
ネイティブランタイム: steam.sh line 756 Segmentation fault
- Valve の GitHub issue 3863
上記のバグレポートにあるように、STEAM_RUNTIME=0
を使って Steam を起動すると /home/<username>/.local/share/Steam/steam.sh: line 756: <variable numeric code> Segmentation fault (core dumped)
というエラーでクラッシュすることがあります。
steamclient.so
が libudev.so.0
にリンクされており (lib32-libudev0AUR[リンク切れ: パッケージが存在しません])、libudev.so.1
と衝突するのが原因です (lib32-systemd)。
Steam に含まれている32ビット版の libusb と libgudev を /usr/lib32
にコピーすることで解決します:
# cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgudev* /usr/lib32 # cp $HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libusb* /usr/lib32
上記の設定は lib32-libgudev
と lib32-libusb
がインストールされている環境で必要です。
また、libudev.so.1
のロードの優先順位を変更することでも解決します (同じ issue のコメント を参照):
$ LD_PRELOAD=/usr/lib32/libudev.so.1 STEAM_RUNTIME=0 steam
音声が鳴らなかったり 756 Segmentation fault が発生する
pulseaudio と pulseaudio-alsa をインストールしてみてください。x86_64 環境なら lib32-libpulse と lib32-alsa-plugins もインストールしてください。
Steam クライアントで再生した動画の音声が流れない場合、Steam に含まれている ALSA ライブラリがおそらく原因です。
Steam クライアントで動画を再生しようとすると以下のようなエラーが出力されます:
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
解決方法は alsa-lib
フォルダ と libasound.so.*
ファイルの名前を変更、あるいは削除することです。ファイルは以下のフォルダに存在します:
~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/
libasound.so.*
ライブラリを LD_PRELOAD 環境変数に追加することでも一時的に解決できます:
LD_PRELOAD='/usr/$LIB/libasound.so.2 '${LD_PRELOAD} steam
それでも音声が鳴らない場合、LD_PRELOAD 変数に PulseAudio のライブラリを追加すると問題が解決する場合があります:
LD_PRELOAD='/usr/$LIB/libpulse.so.0 /usr/$LIB/libpulse-simple.so.0 '${LD_PRELOAD}
ライブラリの名前は変わっている可能性があります。以下のフォルダを探して新しいライブラリとバージョンを確認してください:
~/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
バグレポートは #3376 と #3504 で報告されています。
文字が化けたり表示されない
Windows 用の Steam Support の手順が Linux でも上手くいくようです。
steam-fontsAUR パッケージをインストールするか、SteamFonts.zip をダウンロードしてインストール (/usr/share/fonts/
や ~/.fonts/
にコピー) してください。
一部のゲームは他のフォントを必要とします。Steam/ゲーム別のトラブルシューティングを参照してください。
ゲームの起動時に SetLocale('en_US.UTF-8') が失敗する
お好きなエディタで /etc/locale.gen
を編集して en_US.UTF-8 UTF-8
をアンコメントしてください。そして root で locale-gen
を実行して下さい。
起動後にすぐゲームがクラッシュする
ゲームを右クリックしてプロパティを選択して、「起動オプションを設定」ボタンをクリックしてください。そしてテキストボックスに以下のように入力してください:
LD_PRELOAD='./libcxxrt.so:/usr/$LIB/libstdc++.so.6' %command%
And try the game again. Some games work with this and some games don't.
それでもゲームがクラッシュする場合、ゲームのプロパティを開き、「一般」タブの「ゲーム中に Steam オーバーレイを有効にする」のチェックを外してみてください。
なおクラッシュが解決しないのであれば最終手段として Steam の出力を確認してゲームからエラーが吐かれていないか確認してください。以下のようなエラーが出力されていることがあります:
- munmap_chunk(): invalid pointer
- free(): invalid pointer
上記のエラーが確認できた場合、問題の起こるゲームの libsteam_api.so
ファイルを問題なく起動するゲームのファイルに置き換えてください。大抵は最近アップデートされていないゲームで Steam ランタイムを無効にしたときにエラーが発生します。エラーが発生するゲームとして AYIM, Bastion, Monaco などがあります。
OpenGL がダイレクトレンダリングを使わない / Steam で Xorg がクラッシュする
"OpenGL GLX context is not using direct rendering, which may cause performance problems" というエラーメッセージが表示されることがあります [2]。
おそらく32ビットのグラフィックドライバがちゃんとインストールされていません。Xorg#ドライバーのインストールでどのパッケージをインストールするべきか確認してください。
正しくインストールされたかどうかは lib32-mesa-demos をインストールして以下のコマンドを実行することで確認・テストできます:
$ glxinfo32 | grep OpenGL
特定のゲームで音が鳴らない
特定のゲームで音が鳴らない場合、そして Steam/ゲーム別のトラブルシューティングで書かれている方法で問題が修正されないときは、ネイティブランタイムを使うと音が鳴るようになることがあります。
FMOD サウンドエンジン
'FMOD' オーディオミドルウェアパッケージを使用する以下のゲームで問題が発生します:
- Hotline Miami
- Hotline Miami 2
- Transistor
パッケージにバグが存在するために、ゲームによっては音声に問題が起こります。
ALSA で実際は使用していないデバイスをデフォルトのサウンドデバイスとして設定している場合に発生することが多いようです。Advanced Linux Sound Architecture#デフォルトサウンドカードの設定を参照してください。
Missing libc
おそらく Steam の実行ファイルが破損しています。以下のコマンドの出力を確認してください:
$ ldd ~/.local/share/Steam/ubuntu12_32/steam
ldd
によって動的実行ファイルでないと表示される場合、アップデートによって Steam のバイナリが壊れた可能性が高いです。以下のコマンドで修復できます:
$ cd ~/.local/share/Steam/ $ ./steam.sh --reset
修復されない場合、~/.local/share/Steam/
ディレクトリを削除してもういちど Steam を起動してみてください。
$HOME
ディレクトリがスラッシュで終わっている場合にも、Steam のバグが原因でエラーメッセージが表示されることがあります (Valve GitHub issue 3730)。/etc/passwd
を編集して /home/<username>/
を home/<username>
に変更し、一度ログアウトしてからログインしなおすことで解決します。その後、Steam は自動的に修復を開始します。
Missing libGL
Steam を初めて起動したときに以下のようなエラーが表示される場合:
You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1
Xorg#ドライバーのインストールに書かれているビデオドライバーの lib32
バージョンがインストールされているか確認してください。
Missing vgui2_s.so
起動時に以下のエラーが発生する場合:
Could not load module 'vgui2_s.so'.
lib32-openal
パッケージをインストールすることで解決します。詳しくは https://support.steampowered.com/kb_article.php?ref=9205-OZVN-0660 を参照してください。
古い intel ハードウェアでゲームが起動しない
古い Intel ハードウェアで、起動した途端にゲームがクラッシュする場合、おそらくあなたの使っているハードウェアが OpenGL 3 を直接サポートしていないのが原因です。/tmp/dumps/mobile_stdout.txt
には gameoverlayrenderer.so エラーとして記録されますが、/tmp/gameoverlayrenderer.log
では GLXBadFBConfig エラーとして記録されます。
ただし、ゲームに OpenGL の新しいバージョンを使うように強制させれば修正することができるかもしれません。ゲームを右クリックして、プロパティを選択し、"一般" タブの「起動オプションを設定」をクリックして以下を貼り付けて下さい:
MESA_GL_VERSION_OVERRIDE=3.1 MESA_GLSL_VERSION_OVERRIDE=140 %command%
これによってゲームが OpenGL の最新バージョンを使用するようになります。
2K のゲームが XFS パーティションで起動できない
Civilization 5 などの 2K のゲームを XFS パーティションで起動した場合、ゲームのファイルが起動時に正しくロードされず起動できないことがあります [3]。
実行権限がないためにライブラリフォルダが追加できない
他のドライブに Steam ライブラリフォルダを別に追加している場合、次のようなエラーメッセージが表示されることがあります: "New Steam library folder must be on a filesystem mounted with execute permissions"。
/etc/fstab
でファイルシステムを正しいフラグでマウントするようにしてください。マウントパラメータのリストに exec
を追加します。user
や users
パラメータを使っている場合 noexec
もその中に含まれているので必ず exec
パラメータを記述するようにしてください。
Steam が steamapps
フォルダを見つけられないときもこのエラーは発生します。前のバージョンでは SteamApps
を使っていました。名前が小文字であることを確認してください。
Steam コントローラーが正しく認識されない
ゲームパッド#Steam コントローラーを見て下さい。
Steam が "Installing breakpad exception handler..." でフリーズする
参照: BBS#177245
Steam が以下のような出力をする場合:
Running Steam on arch rolling 64-bit STEAM_RUNTIME is enabled automatically Installing breakpad exception handler for appid(steam)/version(0_client)
lib32-nvidia-*
パッケージが一致していないことが原因です。
Bumblebee を使用している場合に 'GLBCXX_3.X.XX' not found
Steam パッケージの libstdc++.so.6
が古いことが原因です。ライブラリの問題を解決する方法は #Steam ランタイムの問題 を参照してください。GitHub の issue 3773 も参照。
メモリダンプによってメモリが食い潰されるのを防ぐ
Steam はクラッシュすると、毎回 /tmp/dumps/
にメモリダンプを書き出します。Steam がクラッシュループにはまったり、頻繁にクラッシュしてしまうと、ダンプファイルの容量は莫大に増えていきます。Arch では /tmp
は tmpfs でマウントされるため、メモリやスワップファイルが不必要に消費されることになります。/tmp/dumps
から /dev/null
にシンボリックリンクを作成したり、パーミッションを変更することでメモリの浪費を防ぐことが可能です。それによって Steam はダンプファイルを書き込めなくなります。また、Steam によって Valve のサーバーにダンプがアップロードされることもなくなります。
# ln -s /dev/null /tmp/dumps
または:
# mkdir /tmp/dumps # chmod 600 /tmp/dumps
ゲームを起動する際にスタンドアロンのコンポジタを終了する
%command%
スイッチを利用することで、ゲームや環境によってはラグやティアリングの原因となるスタンドアロンのコンポジタ (Xcompmgr や Picom) を終了することができ、ゲームを終えた後に再起動できます。ゲームの起動オプションに以下を加えて下さい:
killall picom && %command%; picom -b &
上のコマンドの picom
はあなたが使っているコンポジタに置き換えてください。もちろん、オプションを %command%
や picom
に加えることもできます。
Steam は %command%
の後にプロセスは実行し Steam の状態はゲーム中になります。この例では、nohup
でコンポジタを実行するので Steam には付着されず (Steam を閉じても実行し続けます)、アンパサンドのあるコンポジタが実行されてからコマンドの行が終了して Steam の状態が戻ります。
Arch Linux のホストから Arch Linux のゲストにホームストリーミングが機能しない
lib32-libcanberra パッケージをインストールすることで解決します。
パッケージをインストールすると、ホームストリーミングでゲームを起動したときに Steam がクラッシュしなくなります。
ダウンロード速度が非常に遅い
クライアント経由での Steam のアプリ (ゲームやソフトウェア) のダウンロード速度が遅い場合、dnsmasq などの DNS キャッシュプログラムをインストールすることで解決することがあります [4]。
DRI3 を使用している場合に Symbol lookup error
Steam が以下のようなエラーを出力して終了してしまう場合:
symbol lookup error: /usr/lib/libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds
Xorg の設定ファイルで DRI3 を無効化するか LIBGL_DRI3_DISABLE=1
を付けて Steam を起動することで解決します:
$ LIBGL_DRI3_DISABLE=1 steam
ハードウェアデコードが使えない
ホームストリーミングのハードウェアデコードは vaapi
を使用します。詳しくはハードウェアビデオアクセラレーションを参照してください。必ず lib32
バージョンのライブラリもインストールしてください。
音声ストリームを別のデバイスに移動できない
pulseaudio を使っていて別の sink に音声ストリームを移動しようとした場合、ストリームを移動できないことがあります。
新しいバージョンの OpenAL ではデフォルトで pulse ストリームの移動ができないようになっているためです。以下の内容で ~/.alsoftrc
を作成してください:
[pulse] allow-moves=true
他の問題
Valve の Source エンジンベースのゲームが低 FPS でパフォーマンスが非常に悪い
通常、この問題は Counter-Strike Source のようなゲームをカーネル 5.19 及びそれ以降で GNU/Linux 上で実行すると発生します。FPS は 30 ほどになり、パフォーマンスはプレイ不可能なほど悪くなります。[5][6]
回避策はカーネルパラメータ split_lock_detect=off
を追加することです。