Wine設定メモ
Fedora 12、Ubuntu 9.10向けのメモ1. Wineとは
Linux上でWindowsアプリケーションを動作させることができるソフト・公式サイト
・Wikipedia
2. Wineの基本
試験運用中なLinux備忘録の「Wineの基本的な部分をまとめて」に詳しく書いてあるとりあえず、、、、
-
フォルダ構成
- $HOME/.wine/
- 設定ファイルなどは全てここに置かれる。設定を初期化したい場合は削除すればいい
- $HOME/.wine/drive_c/
- ここをCドライブして使う 付属コマンド(括弧内はFedoraのメニュー)
- winecfg
- Wineの設定を行う [アプリケーション]→[Wine]→[Wine Configuration]
- regedit
- レジストリエディタ [アプリケーション]→[Wine]→[Wine registry editor]
- wine uninstaller
- プログラムの追加と削除 [アプリケーション]→[Wine]→[Wine Software Uninstaller]
3. 本体のインストール
•Fedora $ su -c "yum -y install wine.i686" •Ubuntu $ sudo apt-get -y install wineインストールが終わったら初期設定ファイルを作るために
$ winecfg (wineprefixcreateでもいい。というか、何でもいい)を一度実行する。おそらく文字化けしてるはず。その辺は下を参照
4. 最初にする設定
・winetricks の導入
ランタイムパッケージなどが簡単にインストールできるスクリプト。あると便利
→ http://wiki.winehq.org/winetricks
•Fedora $ su # yum -y install cabextract # curl http://www.kegel.com/wine/winetricks -o /usr/local/bin/winetricks # chmod +x /usr/local/bin/winetricks $ exit •Ubuntu $ sudo apt-get -y install cabextract $ sudo wget http://www.kegel.com/wine/winetricks -O /usr/local/bin/winetricks $ sudo chmod +x /usr/local/bin/winetricks
・日本語が表示されない・文字化けするのを直す
$HOME/.wine/drive_c/windows/Fonts/ にフォントファイルを一つコピーすれば直る。本物のWindowsから msgothic.ttc を拝借するのが一番良いかと思う(ライセンス的にどうなのか不明だけど)
winetricks でフォントを入れてもいい
$ winetricks wenquanyiついでに文字が汚いのを綺麗にする(Ubuntuでは不要?)
$ winetricks fontsmooth-rgbまれにフォントを入れてもメニュー等が表示されないソフトがある。特にsetup.exe等のインストーラーでよくなる気がする。フォントリンクの機能を使えば直るかもしれない。regedit(レジストリエディタ)を起動して
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink (無ければ作る)
の中に「Tahoma」という複数行文字列値(Multi String Value)を新規に作成。値に下の文字列を入れる
VL-Gothic-Regular.ttf,VL ゴシックこれで駄目なら、そのプログラムが使用しているフォントを調べて同じ設定をしたり、もしくは「フォント置換」を使えばいいらしい。でも私はそこまで頑張る気にはなれない
→ 試験運用中なLinux備忘録・別館 ユーザインターフェース(UI)のフォント
・日本語入力が変(Ubuntuのみ)
最近のWineは問題なく入力できるが、古いバージョンでは長い文章を一度に入力できない。そして、UbuntuのWineは古い(wine1.2もあるけど)
もしかしたら以下のコマンドで直る…直らないな。古いwineはregが変?
$ wine reg add "HKCU\Software\Wine\X11 Driver" $ wine reg add "HKCU\Software\Wine\X11 Driver" /v InputStyle /d root /f仕方ないので無理やり
$ echo '[Software\\Wine\\X11 Driver]' >> $HOME/.wine/user.reg $ echo '"InputStyle"="root"' >> $HOME/.wine/user.reg (Wineが停止した状態でやること)これでいける… いけない? あれ?
・Gechoエンジンをインストール(Fedoraのみ)
HTMLを処理するのに必要で、先に入れておいた方がいいと思う(Ubuntuは最初から入っているので不要)
$ winetricks gecko
・余計な関連付けを外す(Fedoraのみ?)
勝手に notepad 等が関連付けされて邪魔
$ rm -f ~/.local/share/applications/wine-extension-{htm,html,ini,rtf,txt,wri,xml}.desktop
5. 使い方・実行方法
普通に $ wine hoge.exe 実行属性を付けてもOK $ chmod +x hoge.exe $ ./hoge.exe *.msi ファイルは $ msiexec /i setup.msi端末から行わなくても、ファイルマネージャーに「Wine Windows Program Loader」が関連付けされるので、マウスクリックでもいける。
6. Winアプリのアンインストール
本家Windowsと同じで、フォルダごと削除していいならそのまま削除。アンインストーラーを使うソフトは、下記のコマンドで「プログラムの追加と削除」を出す$ wine uninstallerここからアンインストールしても、デスクトップのアイコン・メニュー登録・関連付けは残る。完全に消すには
~/.config/menus/applications-merged/wine-Programs-*.menu ~/.local/share/applications/wine/Programs/*.desktop ~/.local/share/icons/* ~/.local/share/mime/* ~/.local/share/desktop-directories/wine-Programs-*.directoryこの辺から該当ソフトのファイルを削除する。自動でやってほしいな…
7. Wineでゲームするなら
・DirectXをインストール
winetricksを使えば楽
$ winetricks directx9動作確認は
$ wine dxdiag.exe普通はDirectX診断ツールが表示される。でも私の環境ではうまくいかない。謎。
・Windows Media Player 9をインストール
無いと動かないゲームがある。先に入れておく。wmp10 の方が良いかも?
$ winetricks wmp9
・MIDIのBGMが聴こえない
下の「8. MIDIを鳴らす」を参照
8. MIDIを鳴らす
あとで書く9. ソフトが動かない・挙動が変
・動作に必要なランタイムライブラリがないか調べる
作者のサイトや説明書をよく読んで、必要ファイルがあるならインストールする。必要DLLが足りないと下のようなエラーが表示される
$ wine foo.exe err:module:import_dll Library hoge.dll (which is needed by L"C:\\foo.exe") not foundDLLやOCXは有名な物なら winetricks でインストールできる。手動で $HOME/.wine/drive_c/windows/system32/ にコピーした場合は regsvr32 コマンドでレジストリに登録しないと使えないかも?
$ regsvr32 hoge.dll
・検索サイトでやり方を調べる
見つかったらいいね
・Wine Application Database(AppDB)で調べる
ユーザからの動作報告がデータベース化されている
→ http://appdb.winehq.org/
・使用DLLをNativeにしてみる
・諦める
無理な物は無理
10. Wine内蔵のDLLをオリジナルに置き換える
Wineが実装する「Windows互換DLL」の互換性は完全ではなく、全てのソフトに対応しているわけではない。しかし、そのままでは動作しない場合でも、本物のWindowsからオリジナル(Native)のDLLを持ってくると、動きだす場合がある。置き換えるにはオリジナルのDLLを $HOME/.wine/drive_c/windows/system32/ に上書きコピーした後、winecfg の「ライブラリ」タブでそのDLLを追加し、「Native」に設定する。
何のDLLをオリジナルに変更するかだけど、まずは普通に実行してdllのエラーが出てないかを見てみる。例えば
$ wine hoge.exe err:module:import_dll No implementation for msvcrt.dll fixme:seh:*** call to unimplemented function msvcrt.dll.* wine: Call from * to unimplemented function msvcrt.dll, abortingこんな風に表示されるなら、nativeの msvcrt.dll を使えば動く…かもしれない
他にも
err:ole:create_server class {***} not registered err:ole:CoGetClassObject no class object {***} could be created for context 0x5 fixme:ole:OLEPictureImpl_FindConnectionPoint no connection point for {***}この場合は勘で ole32.dll や oleaut32.dll を適当にnativeにしていけばいいのかな? よく分からん。
WINEDEBUG=+loaddll を付けて実行すると、DLLの読み込み情報が表示される
$ WINEDEBUG=+loaddll wine hoge.exe 2>&1| grep builtin trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x69010000: builtin trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x68f10000: builtin ...これらのDLLを一つずつnativeにしていくと、いつか動くかも?
kernel32.dll, gdi32.dll, user32.dll, ntdll.dll の4つは置き換えてはいけないらしい。
11. その他
基本的にドラッグ&ドロップはできない→ http://wiki.winehq.org/DragAndDrop
コントロールパネルは「wine control」で開ける
音がちゃんと出ない時はwinecfgで「DirectSound」の「ハードウェアアクセラレーション」を「エミュレーション」にすれば直るかも?
フルスクリーンのゲームで解像度変更が上手くいかない場合は仮想デスクトップのエミュレートすればいけるかも?
フルスクリーンのゲームを終了しても解像度が直らない場合は
環境変数 WINEPREFIX で $HOME/.wine の場所を移動できる
12. 参考サイト
・試験運用中なLinux備忘録のWineカテゴリ・試験運用中なLinux備忘録・別館
・Wine User Guide