RT:ドヤリング

Twitterのドヤリングアカウント(@doyaling)の出張所です。文章が長くなるときにコチラ使用します。

MacBook Pro 2016がTimeMachineバックアップ中にクラッシュする問題について

 MacBook Pro 2016(タッチID、13インチ)を使い始めたのですが、外付けHDDへ大容量のデータを送ろうとするとクラッシュする現象が発生していて、TimeMachineバックアップが取れず、苦労しました。
 いろいろ試した結果、バックアップに1回成功するに至ったので、記録しておきます。
 ずっと安定して動いてくれるかはまだ分かりませんが、現在のところ分かったのは、TimeMachineにかぎらず大容量のデータを外付けディスクに転送しようとするとクラッシュする現象で、OS Xの上書きインストールをしたら安定化したっぽいです。

TimeMachineバックアップ作成中にクラッシュする問題

 振り返るとまず、以前使っていたMacBook Airで作成していたTimeMachineバックアップから、移行アシスタントで環境を移行してこのMBPを使い始めました。OS XのバージョンはSierraの10.12.6です。
 もともとMBAのTimeMachineバックアップが入っていた外付けディスクを、Eraseで空っぽにして、MBPで使うことにしました。バックップを消してしまうのはリスクありますがw、もともと別にiMacも使っていてだいたい同じ環境になっており、そっちはそっちでTimeMachineバックアップがあるので、何かあればそれを使って環境を復旧すればいいと思ってました。


 で、空っぽの外付けHDDを繋いで新たにMBPのTimeMachineバックアップの作成をイチから開始したんですが、全体で450GBぐらいあるうちの、100GBとか150GBとかまで転送が進んだころに、突然クラッシュして電源も切れてしまうという状態に陥りました。何度も試したんですが、データの転送途中に画面が固まって、数十秒後にシャットダウンし再起動するという感じです。
 再起動後に、外付けHDDに関して"Disk Not Ejected Properly"という通知が通知センターにでる時もありましたが、出ない時もあったと思います。また、再起動後に不具合のレポートを送信するかどうか聞かれるのも、聞かれるときもあったし聞かれないときもあったと思います。
 百GBとか転送した後にクラッシュが起きるわけですが、その後でもう一度転送を試みると、もっと早い段階ですぐまたクラッシュするという感じでした。"/Library/Logs/DiagnosticReports"に入っているレポートを確認すると、WindowServerのCrashとか、kernel panicの記録がありましたが、私はそれを読んでもよく分かりません。


 ネットで検索すると、日本語の記事では
MacBook Pro Late 2016がクラッシュし続ける不具合はUSBの消費電力などが原因? | AAPL Ch.
MacBook Pro Late 2016がTime Machineバックアップ作成時にクラッシュし続ける不具合が確認される。 | AAPL Ch.


 というようなのが出ていて、私と同じようにMBP2016のクラッシュを経験した人がそれなりに居るような感じです。
 記事では、Timemachineにかぎらず大容量のデータを転送しようとするとクラッシュするといったことが書かれており、私の場合もそのとおりでした。数十GB程度のファイルを外付けに保存しようとすると、同じくクラッシュしてしまいました。
 ただ、きっちり検証してないし記憶も曖昧なのですが、ファイルストレージとして使っていた外付けHDDから大きめのファイルを「取り込む」ことはできたと思います。何GBだったかは忘れましたが。また、最初に外付けHDD上のTimeMachineバックアップから移行アシスタントで環境を読み込むことには成功しています。


 上記の記事では、つなぐ外付けディスクを1つだけにすれば安定するとか書かれていますが、私の場合はダメでしたね。
 以下、試したことを列挙すると、

  • USB-AからUSB-Cへの変換アダプタに問題があるかのような情報も出ていたので、アダプタを変えてみたり、アダプタで中継するのではなく外付けHDDから一本でつなげるUSB-Cケーブルを使ってみたりした。
  • 外付けHDD自体の問題かと思い、新しいのを買って試してみた。製品は、Appleオンラインストアで買えるLacieのもの。
  • USB-Cポートは、他のポートも試してみた。
  • 外付けHDDを、Erase(日本語だと「フォーマット」かな)してからバックアップを試してみた。


 これらは全部、効果なしでした。

サポートに電話

 この段階で、Apple Careのサポートに電話しました。「スペシャリスト」という肩書のお姉さんが対応してくれて、「この現象はネット記事にも出ているようですが」とは伝えましたが、「内部の記録を調べた限り、該当のMBPモデルでTimeMachineバックアップの作成中にクラッシュするという問題はこれまでのところ報告されていない」とのことでした。
 で、問題の切り分けのためにいろいろ試すよう言われて指示に従いました。順番は忘れましたが、

  • セーフブート
  • NVRAMリセット(起動直後にoption + command + P + Rを20秒押す)
  • SMCリセット(電源を切って、shift + control + option + 電源ボタンを10秒間押す)
  • 新しくMacのユーザ(Admin権限)を作成し、そのユーザでログインしてバックアップ作成(ユーザデータが悪さしている可能性があるかららしい。なおTimeMachineは全ユーザのデータをバックアップしてくれるので、どのユーザでログインしていても良い)


 これら1つ1つを行ったあとにTimeMachineバックアップを作成するというのを繰り返したんですが、全部ダメでした。
 ここまできて、サポートのお姉さんからは、「こうなると、あまり気軽に進めたくはない手段なのだが、OSの上書きインストールを試してみてほしい。それでもダメだったら、クリーンインストール。さらにそれでもダメならハードの不具合なので修理又は交換」と言われました。
 お姉さんは、私がこのMBPで一度もバックアップ作成を行っていないということを知っているので、OSの再インストールはあまり進めたくなかったようです。「上書きインストール」ならユーザデータ・設定はそのままでOSだけ入れ替わるらしいのですが、やってる最中に何らかの事故が起きる可能性もあるのでバックアップをとってからやるべきだし、クリーンインストールしてしまうとそもそも全部消えますと。


 しかし私の場合、無くなったら困る手持ちのデータは、DropboxEvernoteにほぼすべてを集約してるのでクラウドで保管されているし、その他大容量の動画データ等は保管用の外付けHDDに入れてあるのでこのMBPとは関係ありません。MacBookの中にしかないデータで無くなったら困るもの(TimeMashineのバックアップに頼っていたもの)といえば、iTunesのライブラリとPhotos(写真)のライブラリがありましたが、Photosのほうは最近iCloudに全部アップしたところだったので大丈夫。あとはiTunesだけです。
 アプリケーションをまたダウンロードしてインストールしたり、様々な設定をするのは面倒ですが、データが失われることに比べればべつに大した害ではない。


 というわけで、iTunesのライブラリさえ外付けHDDとかに移しておけば、安心してOSの再インストールができます。ところが、まさにその「外付けHDDにデカいファイルを転送すること」自体ができないわけなので、iCloudのストレージを2TBのプランにして、そこにiTunesのライブラリを移動(MBP上にライブラリは存在し、iCloudにもそのコピーが保管され同期される)して、元あったディレクトリからシンボリックリンクを張ることにしました。

OS Xの上書きインストール

 で、このページに書いてある「インターネットから最新バージョンの macOS をインストールする」をやってみて、その後にまたTimeMachineバックアップを試みました。
 バックアップを開始して寝床につき、起きて確認したらまた"Disk Not Ejected Properly"の通知が出ていたので、たぶんまたクラッシュして再起動したんだろうと思いました。データは3分の1ぐらい(100GBちょい)転送済みでした。


 あぁもう、クリーンインストールしかないかな……と思ったのですが、念のためもう1回トライしてみることにしました。
 これまでに起きている現象は「データ転送開始してしばらくするとクラッシュする」なわけですが、TimeMachineバックアップの作成は、中断した場合は再開すればまた途中から開始してくれるみたいなので、続きからバックアップ作成させてみました。
 そしたら、なんか意外とスムーズに転送が進んでいきました。これまでの経験では、一度クラッシュすると、その後にまた転送を試みてもすぐまたクラッシュするという感じだったのですが、今回は順調にまた100GBぐらい転送できてました。
 このまま、クラッシュなしでバックアップ作成完了までいけるかどうか試してみればよかったかもしれませんが、「連続で長時間やると不安定」なのかもしれないので、念のため、いったんバックアップを中断してMacを再起動してから一度再開させました。とりあえず1回はバックアップ作成を完了させたかったので…。
 結果的には、2回ぐらい中断→再起動→再開を繰り返しましたが、一度もクラッシュすることなく完了できました。また、90GBぐらいあるPhotosのライブラリを外付けHDDに転送してみたんですが、これはノンストップで完了できました。


 まぁ、OSの上書きインストールをしたあとも、少なくとも一度はクラッシュしたっぽいです。また、その後は中断・再起動をはさみながらバックアップ作成したので、連続的に400GB超のデータを転送するという場面でも正常に動いてくれるのかは分かりません。
 が、とりあえず、相対的に「安定化した」ことは間違いない感じです。このまましばらく、様子をみてみようと思います。

スプラトゥーン2のゲーム音声とチャット音声を合成し、ヘッドセットでプレイする

音声合成の手段

 スプラトゥーン2ボイスチャットしながらプレイするために、ヘッドセットとアナログミキサーを買いました(具体的に何を買ったかは下のほうでAmazonのリンクを貼ってあります)。
 チャットにはiPhoneを用いていますが、任天堂公式アプリのNintendo Switch ONLINEでやってみたところ音質が悪かったので、結局LINEを使っています。Skypeでもいいと思いますが。


 ゲームの効果音をよく聞くためにヘッドホンかイヤホンは必須ですが、チャットの音声とゲームの音声を両方とも聞こえるようにするためには音声を合成する必要がありますよね。また、私はヘッドセットを使いたいので、マイクの音声がチャットのほうに反映される必要もあります。
 今のところネットでググるとHORIというメーカーが出した「エンペラフックHDP」というやつの記事ばかりヒットしますが(記事1記事2
 あまり評判がよくないみたいですね。音が悪いとか小さいとか言われているようです。音が小さくなるというのは、後述もするように、単なる分配ケーブルで合成しているから仕方ないのですが。


 ゲーム音声とチャット音声をどうやって合成するかについては、ググるといろいろ記事があるのですが、参考になると思ったのはこの記事です。
shotaste.com
 色々な手段のメリット・デメリットが比較されています。私はこのうち、「スマホアプリ+ミキサー+ヘッドセット」というパターンにしましたが、この記事で商品リンクが貼られているのは厳密にはミキサーというより単なる分配ケーブルですね。


 分配ケーブル(スプリッター)は、ステレオのケーブル1本を2本(又はさらに多く)に分岐されるもので、これを使ってゲームの音とチャットの音をまとめるというわけですね。私もスプラトゥーン1の時に800円ぐらいのケーブル(Amazonリンク)を使ってました。
 メスの方にイヤフォンを挿し、2股になっているオスのプラグを、スマホのジャックとWii Uのジャックに挿して両方の音が耳に入るようにしていました。
 しかし分配ケーブルだと、両方の音源の音が小さくなってしまっていて、Wii U本体の音をマックスにしてギリギリ聞こえるぐらいでした(一緒にプレイしていた人はまともに聞こえないと言っていたこともある)。
 また、マイクはスマホのマイクをそのまま使っていたので、スマホをスピーカーモードにして近くにおいておく必要があったりしてめんどくさかったです。なので今回は「スマホアプリ+ミキサー+ヘッドセット」方式にしました。
 ミキサーについては、探していたら以下のような記事があって、こちらで紹介されているアナログステレオミキサーを使うことにしました。
【便利グッズ】ミキサー編:プレステ4(PS4)とスカイプ(Skype)の音を同時にゲーミングヘッドセットで聞く - FPS初級の極み ~初心者上達のコツまとめ~


買ったもの

①4極ステレオミニ・メス ⇔ 3極ステレオミニ・オス & マイク出力・オス
https://www.amazon.co.jp/dp/B018G0II2W


②3極ステレオミニ・メス & マイク出力・メス ⇔ 4極ステレオミニ
https://www.amazon.co.jp/gp/product/B07252LBM7


③ステレオミニ・オス ⇔ ステレオミニ・オス・・・2本必要
https://www.amazon.co.jp/gp/product/B0001CQ6KU


④ステレオミニ・メス ⇔ モノラル標準・オス×2・・・2本必要
https://www.amazon.co.jp/gp/product/B071771NVQ


⑤ステレオ標準・オス ⇔ ステレオミニ・メス
https://www.amazon.co.jp/gp/product/B000LPSXV2


 アナログミキサーはこの安いやつにしました。
https://www.amazon.co.jp/dp/B0129SXDLI


 ヘッドセットはAmazonでランキング1位のこれにしました。私は頭が小さい方ですが、けっこうギリギリぐらいのサイズでした。
https://www.amazon.co.jp/gp/product/B01D1DNDYC


配線

 ヘッドセットの外部インターフェイスは、ざっと売られてるのを見たところ、


A) 4極ステレオミニプラグで、音声入力とマイク出力が一本になってるもの(なので厳密には「ステレオミニプラグ」ではないわけですが)
B) ステレオミニプラグ2本になってて、音声入力用とマイク出力用が分かれているもの(マイク出力のほうは「ステレオミニプラグ」とは呼ばないかと思いますが)
C) USBで音声入力とマイク出力の両方に対応したもの
D) USBがついてて音声入力とマイク出力を両方扱えるが、音声用とマイク用のステレオミニプラグも付いているもの


 などがあります。
 以下は、Aの「4極ステレオミニプラグ1本」のパターンで説明します。下図の、右上の囲みに入ってるようなヘッドセットのパターンです。*1


f:id:doyaling:20170814021756p:plain


 まず①で、ヘッドセットの4極ステレオミニ(ステレオ音声入力とマイク出力が一緒になったもの)を、音声入力とマイク出力に分岐させます。
 ②をiPhoneに挿し、マイクのほう(ピンク)に、上記のヘッドセットから分岐したマイク出力のプラグを挿して、マイク音声をiPhoneに送ります。音声出力のほう(緑)からは、LINEの音声を取ります。
 上記で取ったLINEの音声は、③で中継した上で、④を使ってモノラル標準2本に分岐させて、ミキサーの入力ジャックの1つに刺します。
 スイッチ本体から③で音声を引いてきて、④を使ってモノラル標準2本に分岐させ、ミキサーのもう1つの入力ジャックに刺します。
 ミキサーからの出力は、モノラル標準又はステレオ標準しかないので、ステレオ標準のジャックに⑤を挿しておいて、ここにヘッドセットから①で分岐させた残りの、音声入力用のステレオミニプラグを挿します。

パソコンは使わないのか

 下の写真が今回実現した仕組みの現物です。けっこう大げさな感じになっておりますw


f:id:doyaling:20170814022410j:plain


 わざわざミキサーなんか買わなくても、配線をうまくすればパソコンで音声を統合できるような気もします。が、ググってみてもパソコンでどうやるのか解説している人はあまり見当たりませんでした。
 YouTubeやOpenRecで実況しているような人たちは、たぶんゲームの映像・音声をキャプチャー(ソフトウェアエンコード方式と呼ばれる、リアルタイムでPCに反映できるもの)でPCに流し込んで、そのPCでSkypeなどを立ち上げて、音声・マイクについてはきちんと合成されるように設定をしていると思います。


 ただ、実況が目的であれば映像を取るのも分かるものの、ゲーム音声とチャット音声を統合したいだけであれば、ゲーム機から取得するのは音声だけでいいわけなので、それを前提としたうまい手段もあると思いますがよくは調べてません。
 今持ってるMacBook Proだと、音声入力用のジャックというものはないので、ヘッドセットもUSBでつなぎ、ゲーム機からくる音声もUSBでMacに流し込むことになるんでしょう。ソフトとしては、Soundflower、Ladiocast、Audacityあたりを組み合わせればできるようですが、色々設定を考えたりOSのバージョンアップ時に各アプリの対応を待ったりするめんどくささを考えると、アナログのミキサーでいいような気もしてきました。


 私の場合そもそも、先日から仕事用のパソコンとプライベート用のパソコンが一緒になってしまったことから、ゲームごときでパソコンを酷使したくはありませんので、ミキサーを使うことにしました。 

*1:ただし私が実際に買ったヘッドセットはDパターンのものです。

Karabiner Elementsが完成したもよう

OS XがSierraに更新されてから、USキーボードのコマンドキーを英数/かなに割り当てるのに使っていたKarabinerというアプリが動かなくなりました。

Karabiner does not work on macOS Sierra at the moment.
We are developing Karabiner-Elements which provides simple key modification for macOS Sierra at first.
(Karabiner-Elements works well on macOS Sierra. We are working on fixing several remaining issues.)
We'll start updating for the full featured Karabiner for Sierra after Karabiner-Elements is completed.
https://github.com/tekezo/Karabiner-Elements


それでSierra対応版ができるまではKarabiner Elementsを使ってねという案内が出ているのですが、少し前までKarabiner ElementsはGitHubからソースコードを落としてきて自分でビルド、インストールしてねという状態だったんですよね。私はビルドに必要なツールのインストールに失敗したのでめんどくさくて放棄してました。


それが今日確認したら、パッケージ版(クリックすれば動くインストーラになっているもの)がすでに完成していて、簡単にインストール出来るようになっておりました!


GitHub - tekezo/Karabiner-Elements: The next generation Karabiner for macOS Sierra


↑のページのProject Status欄から直接ダウンロードできるディスクイメージを使えばいいです。


私がなんでUSキーボードを使っているかというと、単にデザインがシンプルでかっこいいからというだけの理由なんですが、英数/かなの切り替えがやはり不便です。入力ソースをひらがなと英数の2種類だけにして、command + spaceで切り替えさせればそれなりに使えると思うのですが、長年Karabinerで「左commandを英数、右commandをかな」に割り当ててきたので、そのクセが抜けません。
「今どっちの入力モードなのか」を確認するのが面倒なので、日本語入力をするときに反射的に右commandを押してかな入力にしておくクセが付いてるんですが、そのせいでcommand + なんらかのアルファベットで作動するショートカットがバシバシ発動して辛かったです。無意識に右commandを押してて一瞬の出来事なので、何のショートカットが発動したのかすらよくわかりません。
ショートカットのご入力が多発する上に、いまどっちの入力モードなのかも確認してから打たないと行けない状態になったのでとても鬱陶しかったです。これがKarabiner Elementsで解消したのでとても快適です。


Karabinerでは、ミリ秒単位で、キーを押す時間によってcommandとして動作させるかかなキーとして動作させるかを設定できましたが、これはKarabiner Elementsの方ではできないようです。ということは左右のcommandキーを英数とかなに割り当ててしまったら、commandキーがなくなってしまうので、どこかに割り当てないといけません。右commandはべつにcommandとして使うことがほぼないので良いんですが、左commandはコピペとかするときに使っています。


それで、今回はこれまでと少し違うのですが、右commandをかな、右optionを英数に割り当てて、左commandはcommandのままにしておいて、押す時間による使い分けをしないことにしてみました。今のところ、けっこういい感じで打てます。てかもともとやってた割り当てよりこのほうが良い気がします。
Karabiner Elementsで↓のように設定しました。


f:id:doyaling:20161218170945p:plain


とても快適。