未熟者

みじゅくもの と読んでください

SonomaなM1 Mac miniで、4KモニターにHDMI端子から3008*1692(HiDPI)表示したかった。けどうまくいかない

結局うまくいってないのでご注意ください

M1 Mac買ってたけど、こいつもイマイチ

先日記事を書いたようにMac mini late2014で4k 60hz表示ができず、結局M1 Mac miniを買ってしまいました。

これで無事4k 60hz表示はできました。が、なんとM1 Mac miniでも3008*1692表示ができなかった。

一応Thunderbolt端子からの出力では同解像度が選択できたりするが、Thunderbolt端子は別のことに使いたいのでできればHDMI端子を使いたい(M1 Mac miniHDMI端子で1画面、Thunderbolt端子で1画面の計2画面が最大。Thunderbolt端子2つから2画面は出せない)。

またBetterDisplayなんかで表示する方法もよく紹介されているが、これはどうしても画質がぼやけて使えたもんじゃない。

過去に紹介したMacの設定を書き換える方法でイケる気がしたので試してみた。

hanjuku-am2.hatenablog.com

参考記事

過去記事の冒頭にも書いているが、当時の方法はそのままでは使えない。

だが調べたところBig Sur以降では

「/Library/に/System/Library/と同じ構成で格納すればそっちを参照するよ」ということらしい

らしい。(この情報は以下のページより)

fantastic-works.com

今回はMacBookの内蔵ディスプレイではなく外部ディスプレイなので、それの設定方法を調べたらところドンピシャな記事を見つけた。大筋は以下の記事をなぞる。

dev.classmethod.jp

ただ、Motrey以降では過去記事や上記ページの手法ではVendorID/ProductIDの情報が取得できなくなっている。 そこで、以下のページに記載されている方法を参考にした。

blog.livedoor.jp

試す

VendorID/ProductIDを取得する。

以下のコマンドをターミナルで実行

ioreg -lw0 | grep DisplayAttributes | tr "," "\n" | grep "ProductName\|LegacyManufacturerID\|ProductID"

すると、以下の結果を得た。

"ProductName"="PHL 278E1"
"LegacyManufacturerID"=16652
"ProductID"=49687

「ProductID」が以前の「DisplayProductID」に相当し、 「LegacyManufacturerID」が以前の「DisplayVendorID」になる。

16進数に変換

以下のコマンドで16進数に変換

 printf '%x %x\n' <DisplayProductID> <DisplayVendorID>

今回の場合はこう

 printf '%x %x\n' 49687 16652

今回は c217 410c となった。 c217 がProductID、 410c がVendorID。

/Libraryにディレクトリを準備する

Fiderで/System/Libaryから該当のファイルを/Libaryにコピー。 そして、以下のディレクトリが存在することを確認。 /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c/

なお、最初は手動で/Library以下にディレクトリを作って、後述するplistファイルのみをはいちしたが、認識されなかった。 何がキーなのかわかっていないが、ディレクトリ構成丸コピでうまく行った(たぶんその他のファイル存在しないとダメなのかな?)。

最後の -410c は前述のVendor-IDより。

plistファイルの作成

参考記事を信じて以下のページでファイルを作成する。

codeclou.github.io

アクセスするとページ左側に入力フォームがあり、右側にはファイルの中身がリアルタイムで表示されていった。

左側の解像度一覧はデフォルトで複数準備があった。希望の3008*1692がなかったので、既存のものはそのまま1つ解像度を追加した。DisplayProductNameはわかりやすいものにした。

最後に右側のダウンロードアイコンからファイルをダウンロードし、ファイルを先の手順で準備したフォルダに格納した。

再起動する

再起動をして改めてディスプレイ設定を見ると、ディスプレイの名称が自分がPlistファイルで指定した名称に変更されている。

が、解像度のリストに変更はない、、、

休戦

ということでうまくいかなかった。 自分には原因がよく分からなかったので、誰かが解決策を見つけてくれることを祈って記事を公開しておく。