以前書いたように、僕はeGPUエンクロージャのMantiz Venus MZ-02Radeon RX Vega 56を挿し、MacBook Pro (15-inch, 2017)に繋いで使っている。
macOSをハックして無理やりNVIDIAのeGPUを使うよりは圧倒的に快適だけど(そもそもMojaveだとNVIDIAの web driverがないので使えないけど)、スリープ周りの挙動に結構不具合があり、ずっと不便に感じていた。

具体的には以下のような不具合があった。

  • ときどきMacBook Proがスリープから復帰しない
  • 画面が真っ暗のままで、強制終了するしかない
  • ときどきスリープしたのに10秒後くらいにMacBook Proが起動してしまう
  • 一回こうなると、Macを再起動しない限り直らない
  • MacBook Proはスリープしているように見えるものの、数分に一度eGPUのファンが急に全力で回り始めることがある
  • スリープ復帰時にMantiz Venusに繋いでいるSSDなどの外付けストレージが定期的にアンマウントされる
  • スリープから復帰すると、通知欄に「ディスクの不正な取り出し」という通知が100個くらい並んでいて、ひとつひとつ消す必要があってめちゃくちゃウザい

というもの。スリープをしなければこれらの問題は発生しないので、諦めてスリープせずにモニタの電源をオフにして運用していた。
Mantiz Venusが悪いのか、RX Vega 56が悪いのか、MacBook Proが悪いのか、いまいちはっきりせずに対処できていなかったけど、先日ふとeGPU.ioのフォーラムを眺めていると、こんなトピックがあった。

Weird sleep behaviour with Mantiz Venus – Thunderbolt macOS Setup – External Graphics Card Forum

まさにドンピシャなトピック。スレ主のKelvin Tan氏の環境は僕とかなり似ていて、Mantiz Venus + RX Vega 56 + MacBook Pro (15-inch, 2016 or 2018)というもの。
Tan氏の投稿を要約すると、

  • Macがスリープから復帰するとクラッシュするし、スリープから復帰してしまう
  • Razer Core Xなら問題は起きないので、Mantiz Venusの問題だと思われる
  • いろいろ検証したけど、USBの拡張ボードが原因っぽい
  • ※Mantiz VenusにはUSB 3.0が5ポート、SATAが1ポート、Ethernetが1ポートついた拡張ボードがメイン基板と接続されている
  • 拡張ボードを取り外すとすべてうまく動いた
  • でも拡張性がないeGPUエンクロージャならRazer Core Xとなにも変わらないので、Mantizに不具合の件を問い合わせてみるよ
  • Mantizからメールが返ってきたけど、「拡張ボードのIR53のところにはんだ付けされている抵抗をIR4のところに移動するとうまくいくよ」とのこと
  • メールの通りに抵抗を移動したら、うまくいった!ちゃんとMacBook Proがスリープするようになったよ

という感じ。素晴らしい検証と行動力で。詳細にレポートしてくれてどうもありがとうございます。

つまり、拡張ボードのIR53のところにはんだ付けされている抵抗をIR4のところに移動させればいい、ということで、僕もやってみた。

Mantiz Venusのサイドパネルを開け、GPUを取り外したところ。底面のメイン基板に直角に設置されているのが拡張ボード。裏などのネジを取り外し、コネクタを慎重に抜いて、ボードを取り出す。

はんだ付け後の写真しか撮っていなくて、見た目が汚いけど……。写真中央の黄色いシールの左の箇所。

まず、はんだ吸い取り線などでIR53のところのはんだを除去し、抵抗を取り外す。IR4の片方のはんだ付けエリアにあらかじめ少しはんだを盛っておく。ピンセットで抵抗を抑えながら、はんだを盛った片側だけはんだ付けする。その後、もう片方もはんだ付けする。以上!

……と簡単に書いたが、抵抗も、はんだ付けをする箇所も、めちゃくちゃ小さくて大変だった。
抵抗があまりに小さいので、一度見失ってしまい、見つけるのに死ぬほど苦労した。最終的にはダイニングテーブルの溝にはさまっていたのを無事に見つけられたけど、間違ってくしゃみなんかをしていたら、部屋のどこかに吹き飛んで永遠に見つけられなかったと思う。運良く見つけられて本当に良かった……。

紆余曲折を経て抵抗を移設し、再度拡張ボード、GPUを取り付けて、完了。

直った

2週間ほど、積極的にスリープ/スリープ復帰をしながら使ってみたけど、笑ってしまうくらい上記の不具合が完璧に直った。

スリープ復帰時に一度もクラッシュしないし、ディスクの不正な取り出しも一切起きなくなったし、Macのスリープ中にeGPUのファンが回ることもなくなった。
不具合があったときはMacのPowerNapをオフにしたり、いろいろ試していたけど、PowerNapがオンのままでもまったく問題がなくなった。
総じてめちゃくちゃ快適になった。

本来想定していた通りのMantiz Venusの挙動になり、最高。これでようやくMacBook Pro + eGPUの運用が捗るようになった。
Kelvin Tan氏には本当に感謝である。


上記のとおり、抵抗のはんだ付けは非常に難易度が高く、僕が無事に作業できたのは奇跡だと思う。
同じような不具合を抱えている人は、一度Mantizにメールしてみることをおすすめする。もしかしたら、不具合を修正した拡張ボードを送ってもらえるかもしれません。