Wine on Solaris 11 Express

2,454 views

Published on

Published in: Technology, News & Politics
  • Be the first to comment

Wine on Solaris 11 Express

  1. 1. Wine on Solaris 11 Express で紡ぐ絆 Kazuyuki Sato
  2. 2. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  3. 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 3
  4. 4. Wine on Solaris 11 Express なぜ、 Wine なのか? Solaris 上で OVDC (Oracle Virtual Desktop Client) を動かしたかった 結果は? 少し問題があったものの・・・ 大成功!! * OVDC ・・・ ソフトウェア版 Sun Ray Client 。 Windows, Linux, Mac OS X 版が提供 Presentation Title pg 4
  5. 5. Presentation Title pg 5
  6. 6. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  7. 7. Wine on Solaris 11 Express そして、転落の日々が始まる・・・ んっ? Presentation Title pg 7
  8. 8. Wine on Solaris 11 Express2009 年・・・広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・広い画面と GPU 搭載の MacBook Pro 15" 行きたいなぁ・・・ Presentation Title pg 8
  9. 9. Wine on Solaris 11 Express Presentation Title pg 9
  10. 10. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  11. 11. Wine on Solaris 11 Express OVDC の問題は新しい Wine で解決 だがしかし・・・ Presentation Title pg 11
  12. 12. Wine on Solaris 11 Express Final Fantasy XI を起動すると・・・Unhandled page fault 「動け、動け、動いてよ !!! 今動かなきゃ、 今ログインできなきゃ、みんないなくなっちゃうんだ!」 Presentation Title pg 12
  13. 13. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  14. 14. Wine on Solaris 11 Express というわけで、 FFXI が動作しなくなったので 遊べなくなった ログインしなくなったので、絆崩壊 wwww うぇっ そして、社内ニートへ・・・ よーし、暇だから手パッチで動かなくなった原因を 追求するよ! 見つけた 1.1.32 と 1.1.33 の diff を取り、一つづつ手パッチ この時点での wine 最新版は、 1.3.15 Presentation Title pg 14
  15. 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 dont 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 することで動作した Presentation Title pg 15
  16. 16. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  17. 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 17
  18. 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 18
  19. 19. Wine on Solaris 11 Express libumem は何をやっているか? libc で提供される malloc を置き換える メモリ確保処理のバックエンドが選択可能 brk (default) mmap libumem 自体は、高機能なメモリアロケータと して利用できる ちなみに、 google-perftools にて提供される libtcmalloc.so でも可 Presentation Title pg 19
  20. 20. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  21. 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 21
  22. 22. Wine on Solaris 11 Express WINEPREFIX 環境変数 Windows で言うところの C: ドライブとなる 複数作って、この環境変数で切り替え ZFS dataset 上に作成しておくと便利 Snapshot で簡単バックアップ Clone で環境を複製 別アカウント用 さらに、 compression したり 意外と気にならず。領域も節約可能 Presentation Title pg 22
  23. 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.exerpool/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 さぁ、みんなもおいでよ! Presentation Title pg 23
  24. 24. Wine on Solaris 11 Express 日本語入力について ATOK との相性最悪 Solaris 11 Express はギリギリセーフ /usr/share/X11/locale/ja_JP.UTF-8/XI18N_OBJS を修正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 Presentation Title pg 24
  25. 25. Wine on Solaris 11 Express 動作させたいアプリは人それぞれ 動かしたいものがあるなら、調べてみる Wine Application Database - http://appdb.winehq.org/ Mailing List に問い合わせてみる 何が言いたいかというと・・・動けば、ラッキー! Presentation Title pg 25
  26. 26. Agenda Wine について そして、転落する日々がはじまる 絆ブレイク 旅立ちの時 libumem っておいしいの ? ^q^ wine を注いでください 参考情報
  27. 27. 参考情報WineHQhttp://www.winehq.org/Wine Key Mailing Lists/Forumshttp://www.winehq.org/forumsWine WIkihttp://wiki.winehq.org/FrontPageWine 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 27
  28. 28. Presentation Title pg 28
  29. 29. Presentation Title pg 29
  30. 30. Wine on Solaris 11 Express 最近はまっているのは、 Rift 今朝・・・ Hotfix #2 適用後、動作しなくなった 「動け、動け、動いてよ !!! 今動かなきゃ、 今ログインできなきゃ、 New! みんないなくなっちゃうんだ!」 すでに、中の人が動いてるので確認できしだい修正されるっぽい 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=270 Presentation Title pg 30

×