Steam/トラブルシューティング

提供: ArchWiki
2016年3月16日 (水) 18:17時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

メインの記事は Steam を見てください。

ヒント: /usr/bin/steam スクリプトは Steam の標準出力や標準エラーを /tmp/dumps/${USER}_stdout.txt にリダイレクトします。そのため、出力を確認するのにターミナルエミュレータから Steam を起動する必要はありません。
ノート: ここにまとめられているものに加えて、Valve のバグトラッカーや GitHub にバグ・フィックス・エラーが報告されています。

nvidia 361.28 の問題

nvidia 361.28 から以下のようなエラーが出てゲームが起動できなくなるバグが存在します:

"Missing basic OpenGL v1.0 -> v2.0 required OpenGL functionality."

NVIDIA によって問題が修正されるまで、起動できないゲームで以下の起動オプションを使うようにしてください:

__GLVND_DISALLOW_PATCHING=1 %command%

もしくは、361.16 ドライバーにダウングレードする方法もあります。

Steam ランタイムの問題

上流の GitHub issue トラッカー

Steam はいくつかのライブラリについて独自のバージョンを供給しています ("Steam ランタイム")。これは最近のバージョンの Ubuntu で Ubuntu 12.04 の環境をエミュレートするためです。

しかしながら、Steam ランタイムに含まれているコアライブラリは Arch Linux に含まれている他のライブラリの新しいバージョンと衝突することがしばしばあります (ドライバーなど、特に、オープンソースの ATI ドライバー)。

これらのライブラリの Steam ランタイムバージョンを削除することで、Steam は最新のシステムライブラリ (pacman でインストールされたライブラリ) を使うようになり、問題を解決できます。

Steam はアップデートがあると頻繁にランタイムライブラリを再インストールしているため、ValveSoftware/steam-runtime#13 が解決されるまで、Steam がアップデートするたびに、Steam を終了して、ライブラリを削除して、再起動する必要があります。

次のコマンドを実行することで Arch Linux で問題を発生させるランタイムライブラリを削除できます:

find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete

上記のコマンドが上手く行かない場合、もう一度コマンドを実行してから、次のコマンドを実行して下さい:

find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete

もしくは、Steam を実行してライブラリを上書きさせることもできます:

LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' steam

.desktop ショートカットで上書きしたい場合、Exec= フィールドに以下のコマンドを使って下さい:

env LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1' /usr/bin/steam %U

これらのライブラリが存在することで起こる問題やエラーメッセージには以下のようなものがあります:

  • 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.
  • XCOM などの64ビットのゲームで問題が発生する
  • "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."
  • Steam クライアントがクラッシュする

フォーラムスレッド:

Steam#ネイティブランタイムを使う も参照してください。

ウィンドウを閉じても Steam が終了しない

Valve GitHub issue 1025

トレイアイコンの閉じるボタンを機能させるには環境変数 STEAM_FRAME_FORCE_CLOSE1 に設定してください。Steam を起動するときに次のコマンドを使っても可能です:

$ STEAM_FRAME_FORCE_CLOSE=1 steam

.desktop ファイルを使って steam を起動する場合は、Exec を以下の行で置き換えてください:

Exec=sh -c 'STEAM_FRAME_FORCE_CLOSE=1 steam' %U

64ビット環境で Flash が動作しない

Steam Support 記事

まず lib32-flashplugin がインストールされていることを確認してください。これだけで動かないときは、ローカル Steam フラッシュプラグインフォルダを作成します:

$ mkdir ~/.steam/bin32/plugins/

そしてシンボリックリンクをグローバル lib32 フラッシュプラグインファイルに張って下さい:

$ ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/

64ビット環境で Flash の音声が鳴らない

Steam クライアントで再生した動画の音声が鳴らない場合、lib32-flashplugin を正しくインストールしているのならば、Steam が問題のある ALSA ライブラリを使用している可能性があります。

ターミナルから Steam を起動してクライアントの中から動画をしようとすると以下のようなエラーが発生する場合:

ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave

Steam ランタイムのフォルダやライブラリファイルの名前を変更したり削除することで問題は解決します。バグは既に次のページで報告されています: #3376#3504

~/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/ 内の alsa-lib フォルダと libasound.so.* ファイルの名前を変更するか削除してください。

文字が化けたり表示されない

Windows 用の Steam Support の手順が Linux でも上手くいくようです: SteamFonts.zip をダウンロードしてインストール (/usr/share/fonts/~/.fonts/ にコピー) してください。

もしくは AURsteam-fontsAUR パッケージでインストールすることもできます。

ノート: Steam が Arial フォントを見つけられないとき、fontconfig は Helvetica ビットマップフォントにフォールバックしようとします。Steam は Helvetica などのビットマップフォントを正しく表示できないため、Arial や Arial Bold フォントをインストールしなくても、問題のフォントを削除したりビットマップフォントを無効化することで問題が解決することがあります。Arial の代わりに使われているフォントは次のコマンドで確認できます: $ fc-match -v Arial

ゲームの起動時に SetLocale('en_US.UTF-8') が失敗する

お好きなエディタで /etc/locale.gen を編集して en_US.UTF-8 UTF-8 をアンコメントしてください。そして root で locale-gen を実行して下さい。

起動後にすぐゲームがクラッシュする

起動直後にゲームがクラッシュする場合、ゲームのプロパティを開き、「一般」タブの "ゲーム中に Steam オーバーレイを有効にする" のチェックを外してみて下さい。

OpenGL がダイレクトレンダリングを使わない / Steam で Xorg がクラッシュする

Steam Support 記事

おそらく32ビットのグラフィックドライバがちゃんとインストールされていません。Xorg#ドライバーのインストール でどのパッケージをインストールするのか見て下さい。

正しくインストールされたかどうかは lib32-mesa-demos をインストールして次のコマンドを実行することで確認・テストできます:

$ glxinfo32 | grep OpenGL

特定のゲームで音が鳴らない

特定のゲームで音が鳴らない場合、そして Steam/ゲーム別のトラブルシューティング で書かれている方法で問題が修正されないときは、ネイティブランタイムを使うと音が鳴るようになることがあります。

FMOD サウンドエンジン

'FMOD' オーディオミドルウェアパッケージを使用する以下のゲームで問題が発生します:

  • Hotline Miami
  • Hotline Miami 2
  • Transistor

パッケージにバグが存在するために、ゲームによっては音声に問題が起こります。

ALSA で実際は使用していないデバイスをデフォルトのサウンドデバイスとして設定している場合に発生することが多いようです。

You are missing the following 32-bit libraries, and Steam may not run: libGL.so.1

初めて Steam を起動した時にこのエラーが表示されることがあります。あなたの使っているビデオドライバーの lib32 バージョンを全てインストールしたかどうか確認してください。例えば AMD と Intel が混載された環境で catalyst-utils-pxp, xf86-video-dri, mesa-libgl をインストールしている場合は lib32-catalyst-utils-pxp, lib32-mesa-libgl をインストールする必要があります。

たまに、Nvidia のプロプライエタリドライバーを再インストールしたりバージョンを変えた後にこのエラーが表示されることもあります。lib32-nvidia-utilslib32-nvidia-libgl を再インストールしてください。

古い intel ハードウェアでゲームが起動しない

古い Intel ハードウェアで、起動した途端にゲームがクラッシュする場合、おそらくあなたの使っているハードウェアが最新の OpenGL を直接サポートしていないのが原因です。/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 の最新バージョンを使用するようになります。

Steam を起動させると X がクラッシュする (Radeon オープンソースドライバー)

(オープンソースの Radeon ドライバーで使われている) glamor-egl 0.6.0 にはバグが存在し Steam を起動しようとしたときに X がクラッシュしてしまいます。新しい glamour バージョンがリリースされるまで対処法として AUR から glamor-egl-gitAUR をインストールして下さい。

使っていないネットワークインターフェイスを Steam が有効にしてしまう

ノート: Valve が 2015年4月9日のアップデート で問題を解決したため、このフィックスは必要なくなりました。

NetworkManager を使っている場合、Steam を起動すると無効になっているネットワークインターフェイスがオンになっていまうことがあります。polkit にネットワーク設定ルールを追加して Steam アプリケーションが NetworkManager にアクセスできないようにすることで問題を解決できます。以下のルールを作成して下さい:

/etc/polkit-1/rules.d/99-networkmanager-steam.rules
polkit.addRule(function(action, subject) {
  if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0) {
        var filepath = polkit.spawn(["cat", "/proc/"+subject.pid+"/cmdline"]);

        if(polkit.spawn(["basename", filepath]) == "steam\n") {
                return polkit.Result.NO;
        }
 }
});

2k のゲームが xfs パーティションで起動できない

Civilization 5 などの 2k のゲームを xfs パーティションで起動した場合、ゲームのファイルが起動時に正しくロードされず起動できないことがあります [1]

実行権限がないためにライブラリフォルダが追加できない

他のドライブに Steam ライブラリフォルダを別に追加している場合、次のようなエラーメッセージが表示されることがあります: "New Steam library folder must be on a filesystem mounted with execute permissions"

/etc/fstab でファイルシステムを正しいフラグでマウントするようにしてください。マウントパラメータのリストに exec を追加します。userusers パラメータを使っている場合 noexec もその中に含まれているので必ず exec パラメータを記述するようにしてください。

Steam が steamapps フォルダを見つけられないときもこのエラーは発生します。前のバージョンでは SteamApps を使っていました。名前が小文字であることを確認してください。

Steam コントローラーが正しく認識されない

ゲームパッド#Steam コントローラーを見て下さい。

lib32-glibc はインストールされているのに32ビットの libc.so.6 が見つからないと表示される

Steam のランチャースクリプトは ldd の出力をチェックして必要なライブラリがインストールされているかどうかを確認します。しかしながら、Steam の実行ファイルが破損しているなど、ライブラリが不存在以外の理由でも、チェックが失敗することがあります。

以下の出力を確認してください:

$ ldd ~/.local/share/Steam/ubuntu12_32/steam

もし ldd がダイナミック実行ファイルではないと判断した場合、アップデートの際に Steam によってバイナリが破損した可能性が考えられます。以下のコマンドで問題が解決するはずです:

$ cd ~/.local/share/Steam/
$ ./steam.sh --reset

問題が解決しない場合、~/.local/share/Steam/ ディレクトリを削除してから Steam をもう一度起動してみてください。

VERSION_ID: unbound variable

Steam が以下のように出力する場合:

/home/user/.local/share/Steam/steam.sh: line 161: VERSION_ID: unbound variable

steam.sh/etc/os-release を解析したときに VERSION_ID が存在しないのが原因です (Arch には存在しません)。このエラーはあまり重要なものではありませんが、/etc/os-release に以下の行を追加することで修正できます:

VERSION_ID="2015.11.01"

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 も参照。