はじめに
久しぶりにRaspbian OSのサイトを訪れたら、Raspberry Pi Imagerなるものが出ていて、以前とは比べ物にならいくらいラズパイOSの準備が簡単になっていました。
ラズパイを始めたら、まず最初に悩まされる画面縁の黒い部分、これを無くす方法も紹介します。
普段からノートパソコンにディスプレイをつないで使用している方は、ラズパイにディスプレイを取られてしまうと使い勝手が悪くなるので、SSH接続してパソコンのウィンドウからラズパイを操作したくなると思います。
しかし、SSH接続でX-Windowを表示するには、ハマりポイントもあり、うまく環境設定できずに悩んでいる方も多いのではないかと思います。
本記事では、パソコンからラズパイにSSH接続してX-Window表示のテストを行うまでの方法についても紹介します。
パソコンからラズパイに接続してGUI表示を行う別の方法にデスクトップを共有するVNC系の方法もあるにはありますが、動作がもっさりするので、私はおすすめしません。
下の動画でも本記事の内容を試していますので、よろしければご覧ください。
動作環境
構成要素 | 内容 | 補足 |
---|---|---|
Raspberry Pi | Raspberry Pi3B Raspberry Pi4B | これらの機器で動作確認済み |
メディア | MicroSDカード | |
Pi Camera | Pi Camera V2 | |
Raspberry Pi OS | Raspbian Buster | |
パソコンOS | macOS Catalina macOS Big Sur |
Raspbian OSの準備
Raspbian OSの準備
ここから下記赤枠のリンクをクリックしてRaspberry Pi Imagerをダウンロードページに移動します。
以下のダウンロードページでお使いのPC用のインストーラをダウンロードします。
以下、Macの例ですが、ラズベリーのマークを右のフォルダの絵の上にドラッグ&ドロップするとイントールできます。
使用するSDカードをカードリーダやSDカードスロットに差し込んで、インストールしたRaspberry Pi Imagerを立ち上げます。
SDカードはフォーマット不要でした。
「CHOOSE OS」のボタンを押すと以下のように表示されるので「Raspberry Pi OS (32-bit)」を選択します。
ここで、歯車マークまたはCtrl+Shift+xを押すと以下のオプション設定画面が出るので、下図のように設定します。
Disable overscanにチェックを入れることで、画面のフチが黒くなるのを防ぐことができます。
Enable SSHでパスワード設定をすることで、SSHパスワードログインができるようになります。
Wi-Fiの設定をします。
Localeを設定します。
私はUS配列のキーボードを使うのでKeyboard layoutは「us」としていますが、日本語キーボードの方は「jp」を選択してください。
「CHOOSE STRAGE」を押すと以下のような画面が出るので、書き込むMicro SDカードを選択します。
以下のようにSDカード上のデータが消されて良いか確認されるのでYESを押します。
このあとMacのパスワードを聞かれるので入力すると書き込みを開始します。
以下の画面が出たら終了ですので、CONTINUEを押してMicro SDカードを抜きます。
以前は、ラズパイを立ち上げてからraspi-configを起動して設定していた内容をあらかじめRaspberry Pi Imagerで設定できてとても便利になりました。
Raspberry Piの設定
パソコンとRaspberry Piのターミナルを区別するため、パソコンのターミナルのコマンドプロンプトを Mac$ とし、Raspberry Piのターミナルのコマンドプロンプトは単に $ として表します。
Raspberry PiのIPアドレスを固定にしてパソコンからSSH接続で使う方法の設定方法を説明します。
上記で作成したMicro SDカードをRaspberry Piのカードスロットに差し込み、キーボード、マウス、ディスプレイを接続して電源を入れます。
Raspberry Pi Imagerで設定したWi-Fiに接続済みの状態で下図のように立ち上がります。
赤矢印のアイコンからターミナルを立ち上げます。
環境の更新
次のコマンドで最新の状態に更新します。
$ sudo apt-get update $ sudo apt-get upgrade
初回のupgradeに失敗することがあるようですが、再度sudo apt-get update
→ sudo apt-get upgrade
と実行することで正常にupgradeできました。
Pi Cameraの設定
Pi Cameraを使用する場合は以下の設定が必要になります。(USB Webカメラ使用の場合は以下の設定は不要です)
raspi-configを立ち上げます。
sudo raspi-config
以下の画面が立ち上がったら、3 Interface Optionsを選択します。
P1 Cameraを選択します。
Yesを押してPi Cameraを有効にします。
再起動が促されたら従います。
再起動したらPi Cameraが有効になっているので、以下のコマンドで撮影してみます。
raspistill -o test.jpg
少しの間、カメラの映像が映し出され、終了したらtest.jpg
ができているので、ファイルマネージャから開くと以下のように表示されます。
SSH接続のための設定
IPアドレスを固定にします。これを行わないとSSH接続する際、毎度変わるIPアドレスを調べる必要が生じるためです。
まずは現状のIPアドレスを調べます。
$ ifconfig ... wlan0: flags=4163 mtu 1500 inet 192.168.179.11 netmask 255.255.255.0 broadcast 192.168.179.255 ...
netmaskの255.255.255.0を2進数で表記した際に1となる部分がネットワークアドレスのため192.168.179.0がネットワークアドレスで、最後の11の部分が機器固有の番号になります。
この機器固有の番号を固定にするために以下のファイルを編集します。
$ sudo vi /etc/dhcpcd.conf
viエディタの使い方がわからない方は、こちらを参考にしてください。
固有の番号の選び方として以下のルールがあるため、2〜254の好きな値にします。今回は21にしてみました。
0: ネットワークアドレス、そのネットワーク全体を示すときに使われる
1: ルーターのアドレス、基本的にホスト部が 1
255: ブロードキャストアドレス、ホスト部すべてを示すときに使われる
以下の内容を/etc/dhcpcd.confの末尾に書き足します。
interface wlan0 static ip_address=192.168.179.21 static routers=192.168.179.1 static domain_name_servers=192.168.179.1
Raspberry Piを再起動して上で指定したIPアドレスになっていることを確認します。
$ ifconfig
inetが表示されない場合は、IPアドレスが競合したなどの理由でうまくいっていないと思われるので、別のIPアドレスにすると良いでしょう。
MacからラズパイにSSH接続している際、実行に長時間かかるコマンド実行中などに以下のエラーが出て接続が切れてしまうことがあります。
client_loop: send disconnect: Broken pipe
これの回避策として以下のファイルに設定を追加します。
vi ~/.ssh/config
viエディタの使い方がわからない方は、こちらを参考にしてください。
下記の内容を追記します。(ファイルが存在しなかった場合は新たに作り、以下の内容とします)
Host * ServerAliveInterval 60 TCPKeepAlive yes
先ほど設定した固定IPアドレスにpiユーザとしてSSHログインします。
Mac$ ssh -Y pi@192.168.179.21
SSHログインできたら成功です。
-Yオプションを付けたのは、X-Window SystemでGUIを表示できるようにするためなので、何かGUI表示を行うプログラムを試します。
X-Window表示のテスト
MacでXquartzを立ち上げておきます。(xtermが表示された場合はexitと入力して閉じて良いです)
ここではPythonのmatplotlibでのグラフ表示を試してみます。
以下のようにpython3を立ち上げてコマンドを入力し、かんたんなグラフを表示します。
$ sudo apt-get install python3-numpy python3-matplotlib $ python3 >>> import matplotlib.pyplot as plt >>> data = [1, 2, 5, 3] >>> plt.plot(data) >>> plt.show() >>> exit()
下のようにMacの画面上にウィンドウが立ち上がり、グラフが表示されれば成功です。
qを押してグラフを閉じ、exit()
と入力してpython3を終了します。
今後はRaspberry Piにディスプレイ、キーボード、マウスをつなげなくても操作できるようになったので、Raspberry Piをシャットダウンしてそれらを取り外し、電源を入れてSSHログインします。
Raspberry Piをシャットダウンするには以下のコマンドを使います。
$ sudo shutdown -h now
推奨機器
Raspberry Pi 4 Model B(8GB RAM)
トラブルシューティング
SSHログインできない(1)
ssh接続しようとして以下のエラーが出る場合はSSH許可の設定が正しくできていない、もしくは、固定IPアドレスが正しく設定できていないので、Raspberry Piをスタンドアロンで起動してifconfig、raspi-configや/etc/dhcpcd.confの内容を確認してみてください。
ssh: connect to host 192.168.179.21 port 22: Connection refused
SSHログインできない(2)
以下のようなメッセージが出る場合、設定したIPアドレスが以前別の機器で使っていたなどが考えられます。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
~/.ssh/known_hostsを削除してからssh接続し直してみてください。
Mac$ rm ~/.ssh/known_hosts ssh pi@192.168.179.21
まとめ
Raspberry PiのOSイメージ作成から、Wi-Fi設定、画面縁の黒い部分を無くす設定、SSH接続で使用するための設定をする方法を説明しました。
特に普段からパソコンに外部ディスプレイや外付けキーボードをつなげて使われている方にとって、SSH接続にすることで、キーボードやディスプレイをRaspberry Piに専有されることなく、快適な作業環境ができると思います。
書籍紹介
Raspberry Pi はじめてガイド―[Raspberry Pi 4完全対応]
最新のラズパイ4に対応した入門書です。
これ1冊でできる! ラズベリー・パイ 超入門 改訂第6版 Raspberry Pi 1+/2/3/4/Zero/Zero W対応
ラズパイZeroにも対応した入門書で、改訂版が出るほど人気の書籍です。
参考文献
- MacでRaspberryPi入門(https://qiita.com/shippokun/items/9070fc58f69d8c063e44)
- 【Mac】SSHログイン中に「client_loop: send disconnect: Broken pipe」でフリーズ・ログアウトする事象の解決方法(https://genchan.net/it/pc/mac/11402/)