2024年9月25日水曜日

ディスプレイがRaspberry Pi と相性が悪い場合の対処法

Raspberry Pi には、相性の悪いディスプレイがあるという問題があるようです。そのようなディスプレイでは、OSをインストールしたmicroSDカードを挿入してRaspberry Piに電源を入れてもディスプレイに映像が映りません。

本ページではその場合の対処法を記します。

0. 準備

Raspberry Pi 用に OS をインストールした microSD カードを PC に接続します。そして、エクスプローラーの「PC」の項目を見ると、下記のように「bootfs」というディスクが存在していることがわかります。ここをダブルクリックすると、中に「cmdline.txt」や「config.txt」というテキストファイルがあるので、用いている OS に対応するファイルをメモ帳などのテキストエディタで開きます。

1. 用いている OS が最新 (Bookworm) の場合

2023年10月にリリースされた、2024年8月時点で最新のOSである、Bookworm を用いている方は、「cmdline.txt」を編集する必要があります。 通常は、「cmdline.txt」をダブルクリックすると、メモ帳などでファイルが開かれるでしょう。その中に、下記の1行が記されています。
console=serial0,115200 console=tty1 root=PARTUUID=877fcbb5-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=JP
この行の末尾に、半角スペースを一文字挿入してから、「video=HDMI-A-1:1920x1200@60D」などのようにディスプレイの解像度を追記します。「1920x1200」の部分は、お使いのディスプレイに適した値に設定してください。私の場合、ここに「1280x768」と記したことがあります(参考:株式会社クリスタージュ ディスプレイ解像度・サイズ 一覧)。
console=serial0,115200 console=tty1 root=PARTUUID=877fcbb5-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=JP video=HDMI-A-1:1920x1200@60D
以上の記述を行ったら、ファイルを保存してテキストエディタを閉じてください。そして、microSDカードを Raspberry Pi に取り付け、電源を投入してみましょう。 うまくいけば、ディスプレイが表示されるでしょう。
なお、この設定を行ったときの副作用として、「Raspberry Pi の電源投入時にディスプレイが接続されておらず、あとから接続してもディスプレイが映る」という効果があります。

また、ディスプレイが映り起動した後、デスクトップ左上のメニューから「設定」→「Screen Configuration」を起動し、下図のように 「レイアウト」→「Screens」→「HDMI-1(または HDMI-A-1)」→「解像度」の項目を cmdline.txt に記した解像度の設定に合わせ、「Apply」ボタンを押して設定変更を適用する必要がある場合があります。
上図は、cmdline.txt に video=HDMI-A-1:1280x768@60D と記した場合の例です。

2. 用いている OS が一世代前の Legacy (Bullseys) の場合

2023年10月より前にリリースされていた OS である、Bullseye などを用いている方は、「config.txt」を編集する必要があります。 通常は、「config.txt」をダブルクリックすると、メモ帳などでファイルが開かれるでしょう。その中に、下記の1行が記されています。 すると、下図のようなファイルが開かれますので、6行目の「#hdmi_safe=1」という行の先頭の「#」を削除し、上書き保存してメモ帳を閉じてください。

なお、古い Windows を用いている方は、このファイルが正しく開けません(正しく改行されて見えない)。その場合「サクラエディタ (V2 (Unicode版))」のように改行を正しく処理できるテキストエディタをインストールし、そのサクラエディタで config.txt を開くようにしてください。
さて、「#」を削除して保存したら microSD カードを Windows から取り外し、Raspberry Pi に取り付け、電源を投入してみましょう。

ディスプレイに映像が映ったでしょうか。
ただし、映ったとしても画面の解像度は低い状態かもしません。 その場合、config.txt でさらに下記の設定を行うと、解像度を変更できる可能性があるようです(参考:ラズパイの電源を入れた後にHDMIを挿しても画面が表示される方法)。
下記の行の先頭の「#」を削除してディスプレイの幅 (width) と高さ (height) を適切に設定し、
#framebuffer_width=1280
#framebuffer_height=720
さらに、次の行の先頭に「#」を記述して無効化します。
dtoverlay=vc4-kms-v3d

0 件のコメント:

コメントを投稿