Steam/Wine

提供: ArchWiki
移動先: 案内検索

この記事では Linux ネイティブの Steam で動かないゲームを遊ぶために、Wine で Steam を動かす方法を説明しています。

インストール

まず Wine のページに記述されているようにして Wine をインストールしてください。

必要なマイクロソフトフォント ttf-tahomaAURttf-ms-fontsAURAUR からインストールしてください。Winetricks を使ってこれらのフォントをインストールすることも可能です: winetricks corefonts

ノート: Windows ディスクにアクセスできる場合、代わりに ttf-ms-win8AURttf-win7-fontsAUR をインストールするといいかもしれません。

Steam インストーラを steampowered.com からダウンロードして起動します:

$ wine SteamSetup.exe

Steam を起動

x86 環境:

$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe

x86_64 環境:

$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe
ノート:
  • 文章が(正しく)表示されない場合は、このコマンドに -no-dwrite を追加してください。詳細は #文字が表示されない問題 を見て下さい。
  • Bumblebee を通して Nvidia カードを使っている場合は、コマンドの前に optirun を付けて下さい。

エイリアスを作って Steam を簡単に起動できるようにする(そしてそれをシェルの rc ファイルに記述する)のもよいかもしれません、例:

alias steam-wine='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'

ヒントとテクニック‎

パフォーマンス

シェルの rc ファイルに次のように記述することで wine のデバッグ出力を無効にできます:

export WINEDEBUG=-all

もしくは steam-wine エイリアスに付け加えることで Steam だけ無効化:

alias steam-wine='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'

また、Source のゲームはページプールメモリ量によってオーディオが異なり、WINE はデフォルトでは値を設定しません。設定するには:

$ wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f

Source エンジン起動設定

"プロパティ" の "起動設定" から設定します。例えば:

-console -dxlevel 90 -width 1280 -height 1024
  • console
アプリケーションの設定を変更できるアプリケーション内コンソールを有効にします。
  • dxlevel
アプリケーションの DirextX のレベルを設定します、例えば 90 は DirectX バージョン 9.0 です。クラッシュを防ぐためビデオカードにあった DirectX のバージョンを使って下さい。公式 Valve Software Wiki https://developer.valvesoftware.com/wiki/DirectX_Versions に詳しく書かれています。
  • widthheight
スクリーン解像度を設定します。アプリケーションからグラフィック設定が保存されず、起動毎にデフォルトの解像度に戻ることがあります。

全ての起動オプションのリストは https://developer.valvesoftware.com/wiki/Command_Line_Options を参照してください。

すでにインストール済みの Steam を利用する

Windows とドライブを共有していて、どこかに Steam をインストールしている場合、Steam ディレクトリから ~/.wine/drive_c/Program Files/Steam/ へシンボリックリンクを作成できます。ただし、この wiki にある上の手順を全て実行しておく必要があります。Steam が起動してアカウントにログインできることを確認してから、以下を行なって下さい:

$ cd ~/.wine/drive_c/Program\ Files/ 
$ mv Steam/ Steam.backup/   (or you can just delete the directory)
$ ln -s /mnt/windows_partition/Program\ Files/Steam/
ノート:
  • Steam フォルダ全体にシンボリックリンクを張った後 Steam の起動に問題が起こる場合は、代わりに wine の steam フォルダにある steamapps サブディレクトリだけにリンクしてみて下さい。
  • まだゲームの起動に問題がある場合は、# mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser=your-user-name を使って下さい。TF2 でこれが機能することを確認しています。

Firefox, Chrome などの Steam リンク

ブラウザ内の steam:// URL を Wine の Steam に接続するために、複数の方法を使うことができます。gconf で steam の url-handler キーを作ったり、KDE のプロトコルファイルを作ったり、デスクトップファイルや chromium の Local State ファイルを編集するなど。これらは firefox や特定のデスクトップ設定のもとでのみ使えます。パソコン全体で動くようにする方法に、Xyne (Arch TU の一人) によって作成されたツール mimeo を使う方法があります。他に使える侵略的でない (ただし firefox 限定の) 方法は、ここ の最初の投稿を見て下さい。

  • あなたのお好きなエディタで /usr/bin/steam を作って以下を貼り付けて下さい:
#!/bin/sh
#
# Steam wrapper script
#
exec wine "c:\\program files\\steam\\steam.exe" "$@"
  • 実行可能にしてください:
# chmod +x /usr/bin/steam
  • あなたのお好きなエディタで ~/.config/mimeo/associations.txt を作って以下を貼り付けて下さい:
/usr/bin/steam %u
  ^steam://
  • 最後に、エディタで /usr/bin/xdg-open を開いて下さい。detectDE() セクションまで行き以下のように変更してください:
detectDE()
{
    #if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
    #elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
    #elif $(dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1) ; then DE=gnome;
    #elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
    #elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
    #else DE=""
    #fi
    DE=""
}
  • ブラウザを再起動したら動くようになっているはずです。chromium では、firefox のように url ボックスに steam:// リンクを入力することはできません。必要ならば上のフォーラムにある steam://open/friends リンクを試して下さい。
ノート:
  • これを実行した後にファイルの関連付けに問題が発生した場合は、通常の xdg-utils に戻して /usr/bin/xdg-open に行った変更を戻して下さい。
  • 他のディストリビューションを使っているユーザーでこのページを見ている人は、上の firefox で使うリンクを見て下さい。他のディストロの Chromium で簡単に動作させる方法は存在しません。

Steam クライアントのストアやウェブブラウザが機能しない

32ビットの Steam を起動して "CEF-based runtime sandboxing" のサポートを無効にしてください:

$ wine ~/.wine/drive_c/Program Files/Steam/Steam.exe -no-cef-sandbox

上記の方法で上手くいかない場合、winecfg を開いて、「アプリケーションを追加」から ~/.wine/Program Files/Steam/bin/steamwebhelper.exe を選択し、Windows バージョンを Windows XP に設定してください。

文字が表示されない問題

ノート: Wine 1.7.50 以上では dwrite の実装が改善されたため、この問題が発生することはありません。

もし steam を起動した時、文字が表示されない場合、-no-dwrite パラメータをつけて steam を起動してください。詳しくはこの問題についてのスレッドを見て下さい。

wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite
ノート: Although this method does currently work, It is not persistent if Steam relaunches automatically (i.e. update), or if you follow a URL link.
  • This can be achieved by going through winecfg > Libraries and setting the "dwrite" override to "disable"

Or

  • $ wine reg add 'HKCU\Software\Valve\Steam' /v DWriteEnable /t REG_DWORD /d 00000000

プロキシ設定

[protocol]_proxy という形の環境変数を使うことにより Steam は HTTP/HTTPS でプロキシを利用することができます。

$ export http_proxy=http://your.proxy.here:port
$ export https_proxy=$http_proxy

ただし、sockv5 はサポートされていないようです。

参照