Raspberry Pi 3 を HDMI 切替器を通して使う方法

Raspberry Pi 3 を HDMI 切替器に繋いだ際に 画面が表示されない場合の対処方法を紹介します。

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 切替器に繋いだけど、映らなかったという経験がある人は(超レアだとは思いますが)、この方法を参考に是非再チャレンジしてみるのはどうでしょう?