マウス・キーボード・ディスプレイを使用せず、SSHだけでラズベリーパイを使用する手順

マウス・キーボード・ディスプレイを使用せず、SSHだけでラズベリーパイを使用する手順

January 16, 2021

前提 #

  1. ラズベリーパイのイメージが microSD カードに書き込まれている状態を開始地点とします
  2. PC に microSD カードがマウントできることが条件です
  3. Raspberry Pi 4 Model B を使用しています

* 2 について、PC に microSD の接続口がない場合も多いと思いますが、今回の方法だと PC から microSD に書き込みできることが必須なので、必要であれば SD カードリーダーを購入しましょう。(というか、microSD カードにラズパイのイメージを書き込んだのであれば、必然的に PC と microSD の接続環境は整っているはず?)

なお、手元の端末が mac の想定で話を進めますが、windows の方も手順は全く同じです。「ターミナル」という言葉を「コマンドプロンプト」に読み替えるなど適宜脳内変換してくださいませ。

また、本来は microSD カードと書くべきところ、省力化のため SD カードと記載していきます。

手順 #

  • SD カードを mac にマウントする。
  • ターミナル上で、SD カードのディレクトリに移動する。
    • cd /Volumes/boot/
  • SSH 接続を有効化させる。
    • touch ssh
    • * 空のファイルを作成するだけで大丈夫です。
  • WiFi 接続を有効化させる。
    1. touch wpa_supplicant.conf
    2. vim wpa_supplicant.conf
    3. 開いたファイルに以下を書き込む

* SSID とパスワードはご自身の環境に合わせて記載

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant
GROUP=netdev
update_config=1
network={
    ssid="接続するWiFiのSSID"
    psk="接続するWiFiのパスワード"
}
  • SD カード mac から外し、ラズベリーパイを起動する。
  • mac からラズベリーパイに SSH 接続する。
    • ssh pi@raspberrypi.local
    • パスワードはraspberryと入力する。
    • * ラズベリーパイの初期ユーザはpi、パスワードはraspberryになっています。
  • VNC サーバの起動を有効化する。
    • sudo raspi-config
    • * Real VNC Server が標準でインストールされているため有効化のみで OK です。

表示された以下のメニューから「5 Interfacing Options」を選択する。

Raspberry Pi | Config 1

以下のメニューから「P3 VNC」を選択する。

Raspberry Pi | Config 2

「Yes」を選択する。

Raspberry Pi | Config 3

下記が表示されれば設定変更できたということ。

Raspberry Pi | Config 4

  • mac に VNC クライアント(Real VNC Viewer)をインストールする。
    • Homebrew を使っている場合はbrew install --cask vnc-viewerです。
  • インストールした Real VNC Viewer を開く。
    • 検索窓にraspberrypi.localと入力する。
    • ラズベリーパイのユーザとパスワードを入力する。
    • おそらく以下のエラーが出ると思います。その場合は次の手順へ。

Cannot show the desktop

上記は、ラズベリーパイが吐いているエラーです。ラズベリーパイに HDMI でモニターが接続されていない状態で、VNC ビューアで接続しようとすると、このエラーが出てしまいます。HDMI 接続されていない状態でも VNC ビューアで接続できるように設定を変えます。

  • SD カードを mac に指して、以下を実行。
    • cd /Volumes/boot
    • vim config.txt
    • 開いたファイルを以下の通り変更する。

変更前:hdmi_force_hotplug=1 がコメントアウトされている)

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

変更後:hdmi_force_hotplug=1 のコメントアウトを解除

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1
  • SD カードをラズベリーパイに戻して、再び VNC ビューアで接続してみましょう。

以上!これでラズベリーパイの画面が mac から閲覧できるようになったはずです!

補足1 #

SSH 接続や VNC ビューアで使用した「raspberrypi.local」はラズベリーパイのデフォルトのホスト名です。接続時にはホスト名ではなく、IP アドレス名でも接続可能です。

IP アドレスの調べ方については、VNC ビューアー後は GUI で確認できるほか、SSH 接続時にターミナル上で調べるには以下の通りです。

  • 以下を実行する。
  • ip a
  • 「wlan」のところに表示される IP アドレスをどこかにメモしておく。
  • * なお、ifconfigでも IP アドレスは調べられますが現在は非推奨だとか。

補足2 #

デフォルトのユーザ名(pi)、パスワード(raspberry)、ホスト名(raspberrypi.local)は変更しておいた方がセキュリティ的に安心です。

補足3 #

ラズベリーパイのデスクトップの解像度ですが、デフォルトで設定可能な上限が「1024×768」となっていますが、設定ファイルを編集することで、それ以上の解像度も設定できるようになります。以下が手順です。

  • SD カードを mac につなぎ以下を実施。
    • cd /Volumes/boot
    • vim config.txt
    • 開いたファイルを以下の通り変更する。

変更前

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

変更後

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

上記の通り、コメントアウトを解除して数値を変更してください。設定の内容は以下に記載があります。「hdmi_group」と「hdmi_mode」のところをご参照ください。

RPiconfig - eLinux.org | https://elinux.org/RPiconfig

PC で利用する場合「hdmi_group」は 2 です(1 はテレビ画面用)。上記では「hdmi_mode」を 58 にしていますが、これは解像度を「1680×1050 の 60 Hz」と指定しています。

  • 編集後、ラズベリーパイを起動し、解像度の設定画面を開くと、上記で自分が設定した解像度が選択できるようになっています。

以上 #

参考になれば幸いです!