【ラズパイ】Raspberry Piをディスプレイなしでセットアップする

Raspberry Pi

ラズパイをリモートでセットアップ

教育用の小さい安いコンピューターがルーツのラズパイでいろいろ遊ぶために標準OSのRaspberry Pi OSをインストールし、VNCでパソコンからラズパイを操作できるようにしていきます。Raspberry Pi OSは旧称Raspbianのことで、Linuxベースの汎用OSになります。何が便利って一番最初のOSとして非常にフレンドリーに作られています。インストール自体も書き込みソフトをダウンロードしてクリックするだけ。2020年にデビューするまではOSのインストールですら若干面倒な状況でした。この記事ではただインストールして設定ではなくラズパイのために新たにキーボード、マウス、モニターを準備することなくVNCで使えるようになるまでをご紹介します。トップ画像の状態で使える、いわゆるヘッドレス環境の構築です。VNCは言うならばリモートデスクトップみたいなもので、ほかのパソコンでラズパイのデスクトップを見てそのままマウスとキーボードで操作できるようにしちゃうソフトです。小さいラズパイに電源を差しておくだけでいつでも別のパソコンから使えるのは思いついたときに遊べるので非常に便利。この方法はラズパイ4に限らず3と2でも共通です。Windowsのパソコンでセットアップを進める設定で書いています。

Raspberry Pi OSをインストール

まずはOSをSDカードに書き込みます。専用のインストーラーが提供されているのでパソコンで公式サイトにアクセスし、Windows用なりMac用をダウンロード、インストールしておきます。

インストールしたら起動するとシンプルな画面が表示されます。

OSを選んで ⇒ 書き込み先を指定して ⇒ クリックするだけの親切設計。この辺りは先発の人気書き込みソフトbalenaEcharに似てますね。Pi Imagerがv1.6になってからはヘッドレスでの利用開始を標準でサポートしています。トップ画面でCtrl+Shift+xでAdvanced optionsが表示されます。MacならShift+⌘+xです。

  • Pi imagerで書き込むとき常に設定を反映するならto always use、今回限りならfor this session onlyを選択します。
  • Set hostnameは必要に応じて変更。ラズパイが複数あるなら変えた方が探すとき楽です。
  • Enable SSHにチェック。パスワードは従来ならraspberryに相当するところです。OS書き込み時に指定できるようになりました。
  • Configre wifiにチェック。SSIDとパスワードをここで入力しておきます。WiFi countryはJPで。
  • Set locale settingsは時間をAsia/Tokyoに、キーボードはjpで。

以前はBootフォルダに書き込み後手でファイルを入れていたのが自動化されたイメージです。

ひとまずここではOSは一番上のRaspberry Pi OS (32-bit) を選択します。ほかのメジャーOSも一部カバーされていたりと、あちこちに散らばっていたOSがスマートにまとめられています。メディアサーバーにするならKodiの中のLibreELECを選んだりとラズパイに慣れたらいろいろインストールしてみるといいかもしれません。Use customからダウンロードした.imgファイルの指定もできます。

真ん中より書き込み先を選択し、「WRITE」をクリックします。ホントにいいの?と確認がはいるのでYESを選択、数分待ちます。途中でWindowsより「読み込めません」とか「使うにはフォーマットしてください」と言われますがすべて閉じるで無視します。Windowsで読めない形式なだけでラズパイには問題ナシです。そのままラズパイにさして電源ONします。

(参考)以前のやりかた

v1.6になる前は手動でファイルをBootフォルダに追加することでWiFi設定とSSHを有効にしていました。Pi Imager以外で書き込む場合には使える手法なので記録までに書いておきます。

書き込みが終了したらbootフォルダにアクセスできると思います。

ここで直接無線LANとSSHの設定をしてしまいます。無線LANは”wpa_supplicant.conf”というファイルをbootフォルダに作成、メモ帳などのテキストエディタで下記をいれておきます。

country=JP 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev 
update_config=1 

network={
scan_ssid=1
ssid="●ネットワークの名前●"
psk="●パスワード●"
}

●~●はラズパイをつなげるWFiのSSIDとパスワードをいれます。前後の””は必要です。起動後にSSID探してパスワード入力する代わりにあらかじめ教えてあげます。ここまで書いておいてアレですがファイル作っておいたのでダウンロードしてもokです。右クリック ⇒ 対象を名前を付けて保存でどうぞ。

wpa_supplicant.config“をダウンロード

もうひとつ、SSHを有効にします。初期設定では外部からのアクセスを受け付けないことになっているのでSSHを有効にするために空っぽの、拡張子もない「ssh」というファイルを同じくbootに作成します。もしくは下からダウンロードしてください。勝手に.txtになることがあるので拡張子ついちゃったら削除してください。

“ssh”をダウンロード

ということでこの2つのファイルをboot内に追加したらSDカードをラズパイに戻して電源ケーブルさして起動します。

IPアドレスを調べる

ラズパイを電源にさして1分放置したらWiFiにつながっているはずなので、まずはIPアドレスを調べます。

名前で調べる

インストール時にデフォルトでは名前がraspberrypi.localになっています。sshではIPアドレスの代わりにこの名前でも探せます。以前はラズパイが同一ネットワークに複数あると面倒だったのですが名前が指定できるようになってずいぶん楽になりました。ひとまずIPアドレスはおいておいて、もしうまくかなければ下の方法をお試しください。

フリーソフトで調べる

もしPowerShellからラズパイのIPアドレスを探せなければWiFiルーターの管理画面もしくはAngry IP Scannerを使います。

操作方法は難しくなく、起動したら探すIPアドレスの範囲を決めてStartを押すだけです。といってもデフォルトで探す範囲が入ってると思いますのでStartクリックするだけの簡単仕様。うまくいけばRaspberrypiって書いてある番号が見つかると思います。

SSHの準備

初めてラズパイに接続する場合この手順は無視してください。OS再インストールなどで同じラズパイにOSを入れなおしたりした場合Fingerpringが違うとエラーがでるので解決策です。

  • Cドライブ ⇒ ユーザー ⇒ ユーザー名 ⇒ “.ssh”というフォルダ ⇒ “known_hosts”というファイルがある場合はそのファイルを削除してください。フォルダもファイルもない場合は気にせず次へ
  • Windows PowerShellを起動して、”ssh”と入力、エンター押したときのメッセージが下の画像と同じならokです、気にせず次へ進んでください。もしそんなコマンド知らんなど他の表示ならばSSHがまだ使えない状態なのでPuTTYというソフトをインストールしてください。あ、PowerShellは最初からWindowsに入っているアプリです。右クリックでコピーor貼り付けできます。

PowerShellからラズパイに接続

ラズパイに接続するためにPowerShellを起動します。ちなみにPowerShellとコマンドプロンプトはできることほぼ一緒なのでもしコマンドプロンプトがお好きならそちらでどうぞ。起動したら、”ssh pi@raspberrypi.local”と入力します。これはsshでraspberrypiという名前のローカルネットワーク内のデバイスにpiというユーザーで接続します、という意味です。我が家の場合はラズパイに固定IPで192.168.0.11を割り当てているので

//デフォルトの名前
$ ssh pi@raspberry.local
//IPアドレスから指定
$ ssh pi@192.168.0.11

のどちらでも接続できます。

初回の接続時にPowerShellに「ほんとに接続していいの?」と聞かれるので”yes”と入力します。エンターを押すとパスワードを入力するように求められるのでOSインストール時に設定したパスワードもしくは初期パスワードのraspberryと入力します。入力してもカーソールは動きませんが気にせず入力してください。無事ログインできると以下の表示になります。

ここまでくればひと段落、SSH接続が確立してラズパイを操作できる状態になっています。

VNCで接続

デスクトップが見えてマウスでクリック操作の方が楽なのでVNC接続の設定をします。PowerShellの最後が”pi@raspberry:~ $ “となっていることを確認して設定画面を呼び出します。

$ sudo raspi-config

と入力すると画面が下のように変わります。

VNCの設定は”Interface Options”にあるのでInterface Options ⇒ VNC ⇒ <YES>です。enableにしたよと表示がでるのでOKするとraspi-configのトップ画面に戻ります。

もうちょっとだけ設定を進めます。System Options ⇒ Boot / Auto Login ⇒ Desktopを選択します。GUI (Graphical User Interface) を有効にしないと見覚えのあるデスクトップが準備されません。raspi-configのトップ画面に戻りFinishを選択すると再起動するかと聞かれるので<Yes>を選択します。

お次はデスクトップの解像度を設定します。というのもディスプレイにつながっていない状態だとデスクトップは出力されていないので、ディスプレイに関わらず解像度を指定しておくことでバーチャルデスクトップを表示するようにします。raspi-configよりDisplay Options ⇒ Resolution ⇒ 解像度を選択します。まぁお好みですが1920×1080を選んでおけば問題ないと思います。もしここでフリーズしちゃったり設定したのに反映されないようであればページ下部「デスクトップがどうしても起動しない」を実行してください。

ラズパイ側の設定はこれで完了です。<Finish>で戻ると再起動するかと聞かれるので再起動します。

VNC viewerのインストール

お次はラズパイにアクセスする側、クライアントPCの設定を進めます。一番メジャーでシンプルなReal VNCのVNC Viewerを使います。ダウンロード画面でいろいろ並んでいるのはアクセスする側のOSです。リンク先のラズパイはラズパイから他のデバイスにVNC接続するためのバージョンです。ここではWindows版で進めます。

インストールして起動したら左上のFile ⇒ New Connectionから新しい接続を設定します。VNC ServerにはラズパイのIPアドレス、Nameはわかりやすい名前を入れておきます。ここは空欄でも大丈夫でその場合はIPアドレスが名前になります。ちなみに我が家はラズパイ3はRPi3、4はRPi4です。

最初だけ「ほんとにつないでいいの?」と聞かれるのでYes、UsernameはPi、Passwordは設定したものもしくはraspberryで接続します。

無事に接続するとラズパイのデスクトップが表示されます。これでVNC接続でパソコンからラズパイをGUIで操作する環境が整いました。

初期設定のウィザードが立ち上がっているので言語設定やパスワードの変更を進めます。もしデスクトップの周囲に黒い枠があるなら途中の”This screen shows a black border~”にチェックを入れます。WiFi設定はすでに済んでいるのでSkipでokです。Update Softwareは時間あるなら実行しましょう、10分以上かかります。最後にRestartで再起動したら完了です。VNCが切れますがそりゃ再起動してりゃ当たり前ってことで数分待ちます。ラズパイが再起動したら初期設定は完了です◎

デスクトップがどうしても起動しない

上記で紹介した方法がいわゆる正攻法で、コマンドやメニューから設定を変更する方法です。ただ私みたいにラズパイの機嫌が悪くデスクトップがどうしても表示されずVNCで接続できない場合もあろうかと思います。そんな時は直接boot/config.txtを編集します。SDカードをパソコンにさしてもいいですし、sshで接続しPowerShellから

$ sudo nano /boot/config.txt

でもokです。nanoはWindowsのメモ帳に相当するソフトで、nanoでbootフォルダに入ってるconfig.txtってファイルを開いてねのコマンドです。

HDMIを有効にする

HDMIケーブルが差さってなくても強制的にHDMI出力、1920×1080に設定します。

  1. config.txt中の”#hdmi_force_hotplug=1”の#を削除(コメントアウトを解除)
  2. ”#hdmi_group=1″の#を削除
  3. “#hdmi_mode=1″を”hdmi_mode=5″に変更
  4. 最後の方の”dtoverlay=vc4-fkms-v3d”に#を追加する(コメントアウト)

Ctrl+sで上書き保存、Ctrl+xで終了です。これでデスクトップが強制的にフルHDで表示されています。groupとmodeの設定は細かくはコチラを参照ください。1でhdmiケーブルが刺さってなくても強制的にhdmiから映像出力をするようにして、2で出力モードを指定、3でそのモードに対応したディスプレイサイズを指定しています。4はこの方法を使うとVNCで表示の際に画面のサイズによっては正しくフルスクリーンにならないことがあるので修正しています。

我が家にはラズパイが3台ありますが皆さんバグという名の個性があるんですよね・・・これで強制的にVNCで遊べるようにしています。

おまじない

ラズパイ最初のおまじないを忘れずに実行したら完了です。

$ sudo apt update
$ sudo apt full-upgrade

おつかれさまでした。

コメント

  1. 匿名 より:

    とっても丁寧で助かりました。感謝です

タイトルとURLをコピーしました