wineでKontakt 6 Playerを動作させた

以前、Kontakt 5 Playerをwine環境で動作させました。

ohac.hatenablog.com

あれからだいぶ時間も経過しまして、Kontaktは6が最新バージョンとなりました。 割と簡単に動くだろうと思っていたのですが、かなり苦労しました。

ある時期にライセンスやダウンロードの管理がService CenterからNative Accessに変更となり、 これを正常に動作させるために非常に苦労したのです。

Kontakt 5 PlayerとService Centerについては今のところLegacy Softwareからダウンロード可能です。 ただしライセンスの管理はできないかもしれませんし、古いソフトのアップグレードのキーの入手は困難と なってきますので、Native Accessに移行せざるを得ないでしょう。

結果的には無理矢理動かすことができましたので、覚えている範囲でつまづき点をメモしておきます。 また、苦労した点は最後の方に書いておきます。

  • 使用したwineは64bitの3.20。PlayOnLinuxでビルドした。
  • 環境変数は以下のような感じで設定
export PATH=$HOME/.PlayOnLinux/wine/linux-amd64/3.20/bin:$PATH
export WINEPREFIX=$HOME/.wine64a
export WINE=wine64
  • 前回同様winetricksで色々と必要そうなものを追加インストール。winecfgであれこれネイティブ版に切り替えたり戻したりしてみる。
  • インストールは$WINE Native\ Access\ 1.7.3\ Setup\ PC.exeで実行。特に問題なく終了した。
  • cd $WINEPREFIX/drive_c/Program\ Files/Native\ Instruments/Native\ Accessディレクトリを移動。
  • httpsでのアクセスで問題が起きるようなので、以下のCaddyfileでhttp化したプロキシサーバーを立てる。ポートは443だけどhttpで動作する。

Caddyfile · GitHub

  • このままだとNative Access.exeは正規のサーバーにhttpsで接続してしまうので、バイナリにパッチを当てる。
  • 今回はbviでapi.native-instruments.comをapi.native-instruments.cozに1文字変更し、その直後にあるhttpsをhttp+ヌル文字に書き換えた。
$ diff -u <(xxd Native\ Access.exe.orig) <(xxd Native\ Access.exe)
--- /dev/fd/63  2018-11-11 11:09:20.783091625 +0900
+++ /dev/fd/62  2018-11-11 11:09:20.781091569 +0900
@@ -576386,7 +576386,7 @@
 008cb810: 7400 6d00 7000 0000 4e61 7469 7665 4163  t.m.p...NativeAc
 008cb820: 6365 7373 0000 0000 6170 692e 6e61 7469  cess....api.nati
 008cb830: 7665 2d69 6e73 7472 756d 656e 7473 2e63  ve-instruments.c
-008cb840: 6f6d 0000 6874 7470 7300 0000 0000 0000  om..https.......
+008cb840: 6f7a 0000 6874 7470 0000 0000 0000 0000  oz..http........
 008cb850: 7773 733a 2f2f 736f 636b 6574 732e 636c  wss://sockets.cl
 008cb860: 6f75 642e 6e61 7469 7665 2d69 6e73 7472  oud.native-instr
 008cb870: 756d 656e 7473 2e64 6500 0000 0000 0000  uments.de.......
  • また、api.native-instruments.cozは存在しないので、sudo vi /etc/hostsでローカルホストに向くように変更する。
  • caddyを実行する。ポートは443なのでsetcapとかsudoなどでなんとかする。(caddyのインストールや使い方はQiitaとかにあるので検索してください。)
  • $WINE Native\ Access.exeで実行する。うまくいけばログイン画面が出るでしょう。
  • その後は普通の手順で進むことができると思いますが、スタンドアローン版のKontakt Playerはなぜか音が出ないので、デフォルトパッチの編集だけを行い、あとはairwave+CarlaとかでVSTとして動かすとよいかと思います。
  • 各種ソフトウェアのダウンロード後は自動でインストール後に削除されてしまうので、どこかにコピーしておいた方がよいかもしれません。
  • スタンドアローン版はwineasioをうまくインストールできたら音が出るようになるかもしれませんが、今のところまだ手順を確立していません。

f:id:ohac:20181111113558p:plain f:id:ohac:20181111114212p:plain f:id:ohac:20181111114238p:plain f:id:ohac:20181111114256p:plain f:id:ohac:20181111114339p:plain

2018/11/11 14:45追記

wineasioは以下のissueにおおよその手順が書いてあり、自分の環境に合わせて実行するとうまく音が出るようになりました。

github.com

苦労した点と調査内容

  • WINEDEBUGでのログのキャプチャ。LANG=C WINEDEBUG=-all,+winhttp,+wininet,+winsockなどを付けてログを見てみる。
  • Native Access.exe自体のログがいくつかある。
    • users/$USER/Local\ Settings/Application\ Data/cache/Native\ Instruments/Native\ Access/NativeAccess_1.log
    • jq < users/$USER/Application\ Data/Native\ Instruments/Native\ Access/uret_cache
  • 関連してそうなホストで絞り込み、tcpdumpでキャプチャしてみる。分かりにくいので.pcapで保存してWireSharkで見てみる。TLSで通信しているだろうから、中身がよく分からないが、あまりにも中身が短すぎておかしい。
  • このあたりでTLS周りを疑うようになる。aria2c.exeもインストールされているので、これで適当なhttpsサイトから何かをダウンロードしようとしてみるがうまくいかない。
  • mingのcurlを入手し、httpsでダウンロードしてみるとうまくいく。よくみると証明書もbinにインストールされていた。
  • wine controlcurlに添付されていた証明書をインストールしてみたが、Native Access.exeの問題は解決せず。
  • caddyでプロキシを立ててexeとhostsを変更し今に至る。ポート443が使われてしまうのでhttpsのままなのかと思ったが問題なく動作したのでとりあえずOKとした。
  • Add a serialではキー入力を受け付けなかったので、5文字ずつコピーしてペーストした。