wine on solaris 11 express
TRANSCRIPT
Wine on Solaris 11 Expressで紡ぐ絆
Kazuyuki Sato
Agenda
Wineについてそして、転落する日々がはじまる
絆ブレイク
旅立ちの時
libumemっておいしいの ? ^q^wineを注いでください参考情報
Presentation Title pg 3
Wine on Solaris 11 Express
"Wine Is Not just an Emulator" “Compatibility layer"
Windows APIを native system callにトランスレート
VirtualBoxの Direct3D周りでもWineの実装が使われている
サン・マイクロシステムズの PWI (Public Windows Initiative)やWabiに影響されるこれに懐かしさを感じる人は・・・
http://www.winehq.org/
Presentation Title pg 4
Wine on Solaris 11 Express
なぜ、Wineなのか?Solaris上でOVDC (Oracle VirtualDesktop Client)を動かしたかった
結果は?少し問題があったものの・・・
* OVDC ・・・ ソフトウェア版 Sun Ray Client 。 Windows, Linux, Mac OS X 版が提供
大成功!!
Presentation Title pg 5
Agenda
Wineについてそして、転落する日々がはじまる
絆ブレイク
旅立ちの時
libumemっておいしいの ? ^q^wineを注いでください参考情報
Presentation Title pg 7
Wine on Solaris 11 Express
そして、転落の日々が始まる・・・
んっ?んっ?
Presentation Title pg 8
Wine on Solaris 11 Express
広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・
2009 年・・・
Presentation Title pg 9
Wine on Solaris 11 Express
Agenda
Wineについてそして、転落する日々がはじまる
絆ブレイク
旅立ちの時
libumemっておいしいの ? ^q^wineを注いでください参考情報
Presentation Title pg 11
Wine on Solaris 11 Express
OVDCの問題は新しいWineで解決
だがしかし・・・
Presentation Title pg 12
Wine on Solaris 11 Express
Final Fantasy XIを起動すると・・・
Unhandled page fault
「動け、動け、動いてよ !!! 今動かなきゃ、
今ログインできなきゃ、みんないなくなっちゃうんだ!」
Agenda
Wineについてそして、転落する日々がはじまる
絆ブレイク
旅立ちの時
libumemっておいしいの ? ^q^wineを注いでください参考情報
Presentation Title pg 14
Wine on Solaris 11 Express
というわけで、 FFXIが動作しなくなったので遊べなくなった
ログインしなくなったので、絆崩壊 wwww うぇっ
そして、社内ニートへ・・・よーし、暇だから手パッチで動かなくなった原因を追求するよ!
見つけた1.1.32と 1.1.33の diff を取り、一つづつ手パッチこの時点での wine最新版は、 1.3.15
Presentation Title pg 15
Wine on Solaris 11 Express
この修正が原因
diff --git a/libs/wine/mmap.c b/libs/wine/mmap.cindex fc5b1d9..b400189 100644--- a/libs/wine/mmap.c+++ b/libs/wine/mmap.c@@ -350,6 +350,12 @@ void mmap_init(void) reserve_malloc_space( 8 * 1024 * 1024 ); + if (!list_head( &reserved_areas ))+ {+ /* if we don't have a preloader, try to reserve some space below 2Gb */+ reserve_area( (void *)0x00110000, (void *)0x40000000 );+ }+ /* check for a reserved area starting at the user space limit */ /* to avoid wasting time trying to allocate it again */ LIST_FOR_EACH( ptr, &reserved_areas )
こいつを backoutすることで動作した
Agenda
Wineについてそして、転落する日々がはじまる
絆ブレイク
旅立ちの時
libumemっておいしいの ? ^q^wineを注いでください参考情報
Presentation Title pg 17
Wine on Solaris 11 Express
そして、すでに BugDBに登録されていたBug 22033 - World of Warcraft Crashes on startup (due to broken Solaris malloc())http://bugs.winehq.org/show_bug.cgi?id=22033
おまえらどんだけWorld of Warcraft好きなんだよ・・・しかも、
Solaris で・・・
Presentation Title pg 18
Wine on Solaris 11 Express
libumemの奇跡Bug 22033に書かれていた
libumem使うと、動くよ?
libumem = user-mode (nonkernel mode) memory allocator library
kernel memory allocator として実装されているSlab Allocatorを userlandでも利用できるようにしたもの強力なmemory debug 機能も持つ
「こいつ・・・動くぞ!」
Presentation Title pg 19
Wine on Solaris 11 Express
libumemは何をやっているか?libcで提供されるmallocを置き換えるメモリ確保処理のバックエンドが選択可能
brk (default)mmap
libumem自体は、高機能なメモリアロケータと して利用できる
ちなみに、 google-perftoolsにて提供されるlibtcmalloc.soでも可
Agenda
Wineについてそして、転落する日々がはじまる
絆ブレイク
旅立ちの時
libumemっておいしいの ? ^q^wineを注いでください参考情報
Presentation Title pg 21
Wine on Solaris 11 Express
Wineの導入方法についてパッケージさえ揃っていれば、簡単に buildできる
下記に詳細あります!
http://goo.gl/649Q4
ついでに、 SSL接続できなかったのを修正Kindle for PC 動いた
注意点Wineを実行するときは、必ず、下記の環境変数を渡して実行すること
$ env LD_PRELOAD=libumem.so \ UMEM_OPTIONS=backend=mmap wine hoge.exe
Presentation Title pg 22
Wine on Solaris 11 Express
WINEPREFIX 環境変数Windowsで言うところの C:\ ドライブとなる複数作って、この環境変数で切り替え
ZFS dataset上に作成しておくと便利Snapshotで簡単バックアップCloneで環境を複製別アカウント用
さらに、 compression したり意外と気にならず。領域も節約可能
Presentation Title pg 23
Wine on Solaris 11 Express
こんな感じで ZFS datasetに配置# zfs create -o compress=on rpool/wine/FFXI# chown -R ore:ore /rpool/wine/FFXI$ env WINEPREFIX=/rpool/wine/FFXI wine hoge.exe
さぁ、みんなもおいでよ!
rpool/wine 87.5G 94.8G 69.1M /rpool/winerpool/wine/Diablo2LoD 2.02G 94.8G 2.01G /rpool/wine/Diablo2LoDrpool/wine/DragonAge2Demo 2.04G 94.8G 2.03G /rpool/wine/DragonAge2Demorpool/wine/DragonAgeOrigins 16.8G 94.8G 16.8G /rpool/wine/DragonAgeOriginsrpool/wine/FinalFantasyXI 10.6G 94.8G 10.5G /rpool/wine/FinalFantasyXIrpool/wine/FinalFantasyXI_en 12.1G 94.8G 12.1G /rpool/wine/FinalFantasyXI_enrpool/wine/FinalFantasyXI_jp 10.2G 94.8G 9.82G /rpool/wine/FinalFantasyXI_jprpool/wine/OVDC 172M 94.8G 44.5M /rpool/wine/OVDCrpool/wine/Rift 16.3G 94.8G 9.38G /rpool/wine/Riftrpool/wine/Rift_solarisx 8.21G 94.8G 10.2G /rpool/wine/Rift_solarisxrpool/wine/Steam 7.55G 94.8G 6.97G /rpool/wine/Steamrpool/wine/emu 1.35G 94.8G 1.32G none
# zfs create -o compress=on rpool/wine/FFXI# chown -R ore:ore /rpool/wine/FFXI$ env WINEPREFIX=/rpool/wine/FFXI wine hoge.exe
Presentation Title pg 24
Wine on Solaris 11 Express
XLC common/xlcUTF8Load _XlcUtf8Loader # XLC_openXIM common/xiiimp _SwitchOpenIM # XIM_openXIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegisterIMInstantiateCallback # XIM_open XIM_regiser XIM_unregister
XLC common/xlcUTF8Load _XlcUtf8Loader # XLC_openXIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegisterIMInstantiateCallback # XIM_open XIM_regiser XIM_unregisterXIM common/xiiimp _SwitchOpenIM # XIM_open
順番を入れ替える
日本語入力についてATOKとの相性最悪
Solaris 11 Expressはギリギリセーフ/usr/share/X11/locale/ja_JP.UTF-8/XI18N_OBJSを修正
Presentation Title pg 25
Wine on Solaris 11 Express
動作させたいアプリは人それぞれ動かしたいものがあるなら、調べてみるWine Application Database - http://appdb.winehq.org/
Mailing Listに問い合わせてみる
何が言いたいかというと・・・
動けば、ラッキー!
Agenda
Wineについてそして、転落する日々がはじまる
絆ブレイク
旅立ちの時
libumemっておいしいの ? ^q^wineを注いでください参考情報
Presentation Title pg 27
参考情報WineHQhttp://www.winehq.org/
Wine Key Mailing Lists/Forumshttp://www.winehq.org/forums
Wine WIkihttp://wiki.winehq.org/FrontPage
Wine Application Databasehttp://appdb.winehq.org/
A Comparison of Memory Allocators in Multiprocessorshttp://developers.sun.com/solaris/articles/multiproc/multiproc.html
いつも心に太陽を - Winehttp://goo.gl/ywAI3
いつも心に太陽を - libumemhttp://goo.gl/tChtD
Presentation Title pg 28
Presentation Title pg 29
Presentation Title pg 30
Wine on Solaris 11 Express
「動け、動け、動いてよ !!! 今動かなきゃ、
今ログインできなきゃ、みんないなくなっちゃうんだ!」
すでに、中の人が動いてるので確認できしだい修正されるっぽい
http://forums.riftgame.com/showthread.php?215541-pm-patch-6-24
そして、修正準備中 (2011/6/28)http://forums.riftgame.com/showthread.php?215541-pm-patch-6-24&p=2700410&viewfull=1#post2700410
最近はまっているのは、 Rift今朝・・・ Hotfix #2 適用後、動作しなくなった
New!