0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DAZ StudioをM1 Macで動かす

Posted at

DAZ StudioをM1 Macにインストールしましたが、PostgreSQL周りでエラーが出てしまい、動くようにした時の忘備録です。
公式Forumでも現状明確な解決法はないようで、諦める人もいれば、エラーも出ず普通に動く人もいるといった感じでした。
isapplesiliconreadyを見てもまだ未対応の様子。
無駄な工程もあるかと思いますが、あくまで自分の環境はこれで動いたということで参考までに。。
スクリーンショット 2022-01-06 18.02.25.png

動作環境

・MacBookPro macOS12.1(Monterey), M1 Max
・DAZ Studio 4.16

解決したいエラー

DAZ Studioを起動すると、「A valid PostgreSQL CMS connection could not be established...」なるエラーが表示されます。
ただローカルファイルを動かすだけなら使えますが、ログインできないのでオンラインで購入したコンテンツが使用できません。

スクリーンショット 2022-01-04 11.16.43.png

DIMでDAZ Studioをインストールする

最初DAZ StudioはDAZ Central経由でインストールしましたが、最新版のmacには完全に対応していないようで、実際起動中に何度かフリーズして落ちました。
DIM(Daz 3D Install Manager)でのインストールが推奨されているようです。

DIMでは、DAZ StudioPostgreSQL CMSの2つをインストールしました。
スクリーンショット 2022-01-06 16.26.05.png

PostgreSQLの作業用フォルダ変更

PostgreSQLの作業用フォルダは通常、以下のディレクトリに作成されます。

~/Library/Application Support/DAZ 3D/cms/ContentCluster

PostgreSQL CMSをインストールするとこの中に設定ファイルやログファイルが保存されるはずですが、Big Sur以降?権限周りの処理が変わったのか、うまくいかないケースがあるようです。自分の場合は、ログファイルも何も保存されず空の状態でした。
権限の設定を変更してもうまくいかなかったので、デスクトップにcmsフォルダを作り、DAZ Studio上で「Preferences...」>「CMS Settings」>「Cluster Directory」からパスを新しく作ったcmsフォルダに変更しました。
その後、DIMでもう一度DAZ Studio、PostgreSQLを再インストールで無事ログが生成されるようになりました。

共有メモリの設定変更

ContentClusterフォルダ内のログファイル(dblog.txt)を確認すると、以下のエラーが出ています。

dblog.txt
FATAL:  could not create shared memory segment: Cannot allocate memory
DETAIL:  Failed system call was shmget(key=17237001, size=40, 03600).
HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter.  You might need to reconfigure the kernel with larger SHMALL.
	The PostgreSQL documentation contains more information about shared memory configuration.

共有メモリが足りていないと思って設定を変更しましたが、後にフォーラムで「macOSの共有メモリには"バグ", "実装上の問題"があり、このエラーはPC再起動で解決する」とのコメントがあったので、まずPC再起動を試して、それで解決しなければ以下の手順を試してみてください。

まずターミナルで現在の共有メモリ設定を確認すると、メモリ最大値やセグメントの最大値がかなり少ないです。

$ sysctl kern.sysv
kern.sysv.shmall: 1024
kern.sysv.shmmax: 4194304
kern.sysv.shmmin: 1
kern.sysv.shmmni: 32
kern.sysv.shmseg: 8
kern.sysv.semmni: 87381
kern.sysv.semmns: 87381
kern.sysv.semmnu: 87381
kern.sysv.semmsl: 87381
kern.sysv.semume: 10

以下のコマンドで最大値を増やし、PC再起動してください。

$ sudo sysctl kern.sysv.shmmax=536870912
$ sudo sysctl kern.sysv.shmseg=1024
$ sudo sysctl kern.sysv.shmall=131072

共有メモリの変更についてはこちらの記事を参考にしました。

PostgreSQLをhomebrewでインストールしたものに切り替え

次に、以下のエラーがログファイルに表示されました。

dblog.txt
FATAL: Database files are incompatible with server
DETAIL: The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL.
HINT: It looks like you need to recompile or initdb.

なんとなく、intelからarmにプロセッサが変わったことによる影響がありそうな気がしており、再コンパイルも大変そうなのでDIMでインストールしたポスグレを諦めて、homebrewでインストールしたものを使ってみることにしました。

まずhomebrewでpostgresqlをインストール

$ brew install postgresql

/Applications/DAZ 3D/PostgreSQL CMSにあるbin, include, lib, shareフォルダを削除し、シンボリックリンクを作って先ほどインストールしたものと中身を置き換えます。(普通に中身丸ごとコピーでいいかもしれないけど)

$ ln -s /opt/homebrew/Cellar/postgresql/14.1_1/bin /Applications/DAZ\ 3D/PostgreSQL\ CMS/bin
$ ln -s /opt/homebrew/Cellar/postgresql/14.1_1/include /Applications/DAZ\ 3D/PostgreSQL\ CMS/include
$ ln -s /opt/homebrew/Cellar/postgresql/14.1_1/lib /Applications/DAZ\ 3D/PostgreSQL\ CMS/lib
$ ln -s /opt/homebrew/Cellar/postgresql/14.1_1/share /Applications/DAZ\ 3D/PostgreSQL\ CMS/share

Finderで見た時、以下のようになってたらOK
スクリーンショット 2022-01-06 1.45.40.png

データベースの初期化

この工程はいらないかもしれませんが、一応initdbでContentClusterフォルダの中身を初期化しました。

$ initdb --locale=C -E UTF-8 ~/Desktop/cms/ContentCluster/

DAZ Studioからもデータベースをリセットしました。
Smart Contentタブを右クリック > 「Content DB Maintenance」> 「Reset Database」にチェック > 「Accept」
スクリーンショット 2022-01-06 2.45.39.png

データベースがリセットされましたが、ここでもdblog.txtにエラーが出ました。

dblog.txt
FATAL:  pg_hba.conf rejects connection for host "[local]", user "USERNAME", database "postgres", SSL off

pg_hba.confを開いてみると、localが全てrejectとなっているので、この行のrejecttrustに書き換えます。

pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     reject

再度DAZ Studioを再起動すると、エラーが消え、無事ログインできました。
スクリーンショット 2022-01-06 2.44.03.png

作業の途中で何度もDIMを使って再インストールを試したり、DAZ Studioの再起動を繰り返したので、うまくいかない場合は再インストールや再起動も何度か試してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?