2025年8月18日月曜日

Raspberry Pi をヘッドレスで運用する

1. はじめに

本ページでは、Raspberry Pi をヘッドレスで運用する方法、特にヘッドレスでインストールする方法を解説します。

ヘッドレス(headless)とは、モニターやキーボード、マウスを接続せずに PC を利用することを指します。Raspberry Pi で言えば、下図のように電源ケーブルのみを差した状態で運用する、ということです。
図1 Raspberry Pi のヘッドレス運用。(左)Raspberry Pi Zero 2 W、(右)Raspberry Pi 5


このように Raspberry Pi を運用するには、本サポートページの下記ページで解説したように、Raspberry Pi で SSH を有効にし、Windows や macOS などからターミナルソフトウェアでログインする、という方法をとる必要があります。 上記のページを最後まで体験頂くと、自然と Raspberry Pi をヘッドレスで運用できるようになる、というわけです(ただし、Linux に慣れた上級者向けとお考え下さい)。

上記のページは Raspberry Pi の OS のインストール時にディスプレイやキーボード、マウスを接続するという前提で解説されています。すなわち、「日本語化の設定」、「Wifi接続の設定」、「SSHの有効化」をディスプレイを接続して GUI の設定ツールで行う、という前提となっております。
しかし、初期設定だけのためにディスプレイやキーボード、マウスを接続するというのは手間がかかりますよね?

そこで、OS のインストールから設定、運用までの間、Raspberry Pi ににディスプレイやキーボード、マウスを一切接続しないことを目指そう、というのが本ページの趣旨です。運用の方法については上記のページで解説されていますので、本ページではインストールおよび設定の方法を解説することになります。
最近は、OS のインストールツールである Raspberry Pi Imager の機能が充実していますので、簡単にヘッドレスインストールを行うことができます。

それでは、やっていきましょう!

2. Raspberry Pi OS のヘッドレスでのインストール

ヘッドレスインストールといっても、通常の OS のインストールと同じく、Raspberry Pi Imager を使います。 ただし、「最新の Raspberry Pi Imager をインストールして用いる」ことに注意してください。この方法では、Raspberry Pi Imager が Raspberry Pi OS の設定を変更することになるのですが、 最新の Raspberry Pi Imager を用いないと、OS の変化に追随できていない可能性があるためです。 筆者は、古い Raspberry Pi Imager を用いていたために Wifi の設定が OS に反映されず、悩んだことがあります。

さて、通常通り「OSを選ぶ (CHOOSE OS)」および「ストレージを選択(CHOOSE STORAGE)」の箇所を適切に選択したら、「次へ(NEXT)」ボタンをクリックします。

下図のように「Would you like to apply OS custimization settings? (OSのカスタマイズをするか?)」と聞かれますので、「設定を編集する」をクリックします。
ここから先は、OS が起動したときに適用されていて欲しい設定を Raspberry Pi Imager 上で行っていきます。

まずは下記のようにユーザー名とパスワードを設定します。ユーザ名は私ならば「kanamaru」などとします。アルファベットと数字で構成されたシンプルな名前が良いでしょう。
次に、Wifi の設定です。Wifi名 (SSID) とそのパスワードを記します。Pi Zero W または Pi Zero 2 W を用いるかたは、2.4GHz 帯の Wifi にしか接続できませんので注意しましょう。
また、入力したパスワードは確認することができませんので、慎重に入力する必要があります。
さらに、「Wifi を使う国」を「JP」に設定することも忘れないようにしましょう。選択肢はアルファベット順に並んでいますので、マウスのホイールでスクロールして「JP」を見つけましょう。
次に、言語の設定です。タイムゾーンは「Asia/Tokyo」に、キーボードレイアウトは「jp」に設定します。選択肢はアルファベット順に並んでいますので、マウスのホイールでスクロールして「jp」を見つけましょう。ただし、Raspberry Pi にキーボードを接続しない限りこの設定はあまり使われないのですが。
最後に、下図のように「サービス」タブに切り替えて、「SSHを有効化する」にチェックを入れましょう。認証方法はデフォルトのまま「パスワード認証を使う」を選択しています。
以上の設定が終わったら「保存」ボタンをクリックしましょう。なお、以上の設定は PC 上に保存されますので、次に Raspberry Pi OS を再インストールにもう一度入力する必要はありません。

再び「Would you like to apply OS custimization settings? (OSのカスタマイズをするか?)」と聞かれますので、「はい」をクリックすると、microSD カードへの OS の書き込みが始まります。
書き込みが終わったら、microSD カードを Raspberry Pi にセットし、起動してみましょう。慣れないうちは、ディスプレイやマウス、キーボードを接続した状態で起動してもよいでしょう。

Raspberry Pi Imager で OS の設定を行うと、初回起動時のセットアップウィザードがスキップされます。 ユーザーの作成、Wifiの接続、SSH の有効化がうまく行われていれば(ディスプレイやマウス、キーボードを接続しているかどうかに関わらず)、Raspberry Pi にターミナルソフトウェア(TeraTerm など)で SSH 接続できるようになっているはずです。
「raspberrypi.local」などの名前で SSH 接続できるか試してみましょう。「raspberrypi.local」でのアクセス方法は、「ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する~SSH編」の解説をご覧ください。

うまくいかない場合、Raspberry Pi にディスプレイやマウス、キーボードを接続した状態で原因を探ることになります。典型的には以下の原因が考えられるでしょうか。
  • Wifi のパスワードの記述を間違えており、Wifi 接続できていない
  • Pi Zero 系の機種に 5GHz 帯の Wifi を指定しており、Wifi 接続できていない
  • Raspberry Pi Imager のバージョンが古く、Wifi の設定を保存できていない
  • SSH を有効化するのを忘れている
さて、うまく TeraTerm などで SSH 接続できた場合、ターミナル上のメッセージの表記が英語になっていることに気づくでしょう。Raspberry Pi にディスプレイを接続した場合、デスクトップ上のアイコンの表記も日本語になっています。
これを日本語化したい場合、ターミナル上で以下の手順に従ってください。

まず、ターミナル上で下記のコマンドを実行します。
sudo raspi-config
その後、以下の手順で日本語化の設定を行います。
  1. ↓を4回押して「5 Localisation Options」にフォーカスを合わせEnter
  2. 「L1 Locale」にフォーカスがあっていることを確認してEnter
  3. Localeのアルファベット順のリストが表示されるので、 ↓を押し続けja_JP.UTF-8 UTF-8 にカーソルを合わせスペースキーを押す。[*]とチェックされる (なお、スクロール途中でen_GB.UTF-8 UTF-8 にもチェックが入っていることがわかる)
  4. TABキーを一回押し、「Ok」にフォーカスを合わせEnter
  5. デフォルトのLocaleの選択画面が現れるので、↓を1回押し、ja_JP.UTF-8 UTF-8 にフォーカスを合わせる
  6. TABキーを一回押し、「Ok」にフォーカスを合わせEnter
  7. TABキーをニ回押し、「Finish」にフォーカスを合わせEnter
以上が終わったら、ターミナル上で「sudo reboot」を実行して再起動してください。以上でターミナル上のメッセージが日本語になります。

なお、この状態は、「Raspberry Pi をヘッドレス運用しているが、OS は GUI モードで起動した状態」になっています。
ディスプレイを接続していないのに GUI モードとなっているのはメモリの無駄づかいとなっていますので、CUI モードに切り替えるのが良いでしょう。
「sudo raspi-config」を実行することで raspi-config を起動し、「1. System Options」→「S5 Boot」→「B1 Console Text console」の順に選択すればよいです(その後はTABキー2回で「Finish」にフォーカスを合わせEnter)。

さて、以上のようにヘッドレスでの Raspberry Pi の OS インストールと設定が行えるようになったら、「ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する~SSH編」に記されているように、ヘッドレス状態での運用に慣れていきましょう。GUI を用いたアプリではなく、全てをターミナル上で行うのがお勧めです。

以上、お疲れさまでした!

0 件のコメント:

コメントを投稿