ラズパイ起動後HDMIケーブルをつないでディスプレイ表示するには

1.HDMI出力が検出できない理由

昔の記事「電光掲示板に表示されるニュースと天気予報が過去の日付となっていた」で、離れた場所にあるラズパイに5mのHDMIケーブルをつなげましたが、ディスプレイ表示がなされない旨のお話をしました。

何で、HDMI の映像信号が入らないのかずっと気になっていたんですが、ようやく原因がわかったので、ここにお知らせします。

結論から言います。これ、Raspberry Pi の仕様なんです。

Raspberry Pi は、モニター類を何も接続しないで起動するとHDMI出力が検出できないため、出力先が自動的に HDMI ではなくコンポジットに変わってしまいます。

この説明は、HDMIケーブルを接続しないとコンポジット映像信号に切替てしまいますよと言っているんですね。

2011年7月24日まで、地上アナログ放送としてコンポジット信号を用いたテレビジョン放送がなされていました。

コンポジット端子とは映像機器の映像をテレビに送るための接続規格です。下記のイラストのような形状をしています。

60爺は、まさに、これをやっていたんです。既に起動されている Raspberry Pi に、後付けでHDMIケーブルをつなげたんです。

ですので、Raspberry Pi の出力先が自動的に HDMI ではなくコンポジットに変わっていたんです。

そのため、ディスプレイに何も表示がなされなかったのです。

2.対策

原因がわかったところで対策を取りましょう。

Raspberry Piの起動に係わる設定ファイルは「/boot/config.txt」です。

この中で、HDMI に関わる設定が行われていました。

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

訳してみます。

# HDMIディスプレイが検出されず、コンポジットが出力されている場合はコメントを解除します
#hdmi_force_hotplug=1

# コメントを外して特定のHDMIモードを強制します(これによりVGAが強制されます)
#hdmi_group=1
#hdmi_mode=1

そこで、HDMI 信号を受け付けるためにコメント(#)を外します。訂正は、root権限でしかできませんので、注意しましょう。

#hdmi_force_hotplug=1 ⇒ hdmi_force_hotplug=1(# を削除)

#hdmi_group=1     ⇒ hdmi_group=1(# を削除)
#hdmi_mode=1      ⇒ hdmi_mode=5(# を削除、数字を5に)

上記の hdmi_mode=5 は、1080i 60Hz 即ち画面アスペクト比を 16:9 にするものです。

これで、次回の起動後からは、 HDMI ケーブルを後付けしてもディスプレイにラズパイの画面が表示されます。

3.訂正後確認

次の手順で確認しました。

  1. HDMIケーブルを接続せずにラズパイを起動します。
  2. HDMIケーブルをラズパイにつなぎます。

問題なく、ラズパイの画面がディスプレイに表示されました。