TL;DR
/boot/config.txt に bootcode_delay=1
を追記します。
説明
Raspberry Pi 3 (以下ラズパイ)は切替器を通じて HDMI モニタに接続した場合に、画面が表示されない場合があります。
ラズパイは起動してすぐに HDMI で接続された機器とネゴシエーションを行い、その結果に基づいて画面表示を開始します。しかしこの時に切替器の起動が間に合ってないと、ネゴシエーションに失敗しコンポジット(いわゆるビデオ信号)での表示になります。ここでモニタがコンポジット信号に対応していないと、画面は表示されません。
私が実際に遭遇したケースでは、切替器の電源は HDMI を通じてラズパイに連動していました。そのため、ラズパイがネゴシエーションを始める際には、まだ切替器の準備ができていなかった、というわけです。
対策は単純で、ラズパイがネゴシエーションを始めるのを遅らせるだけです。そのための設定が /boot/config.txt に書く bootcode_delay=1
というわけで、これで起動を1秒遅らせることで、切替器の準備完了を待つという寸法です。bootcode_delay
についての詳しいことは公式ページの説明を参照してください。
実際に待つ時間は、使ってる切替器によって変わってくるでしょうが、私の使っている物では1秒で十分でした。またこれはラズパイ3に限らず、ラズパイ2でも同じ現象が起こり、同じ方法で対策できると考えられます。過去にラズパイを HDMI 切替器に繋いだけど、映らなかったという経験がある人は(超レアだとは思いますが)、この方法を参考に是非再チャレンジしてみるのはどうでしょう?