2023年11月22日

RaspberryPi OSのインストールとVNC利用

 

山口県長門市の元乃隅神社(赤い鳥居が有名ね)
山口県長門市の元乃隅神社(赤い鳥居が有名ね)


さて,Ubuntu(Linux)サーバにおけるApache2のインストールと設定方法について,前回まで学習しました。これでインターネットとサーバ内を繋ぐことができるようになりました。

さて,ここからはIoTデバイスのためのプログラミング環境の構築に入って行きます。IoTデバイスというと温度や湿度等のセンサーがすぐ思いつきますが,ここではそれらを束ねるクライアント機器とデータを収集するサーバのプログラミング開発環境を作っていきます。

ITの世界で今最も注目を浴びる分野はAIです。このAIは,農業AIであったり,生産技術AIであったりとあらゆる分野毎に作って行くことになります。これらを作る過程で最も必要なもの,それは,各々の分野におけるAI学習用データです。

その学習用データを得るには,データを集め分析する仕組みを作る必要があり,そのためのプログラミング環境をIoTデバイス毎に構築していきたいと考えます。

IoTデバイスとしては,サーバ,PC,SBC(シングルボードコンピュータ),センサー等が必要ですが,まずはSBCであるRaspberry Piのプログラミング環境について学習します。


  RaspberryPiとは

RaspberryPiはラズベリーパイといい,基盤剥き出しの小型コンピュータになります。これに温度計や湿度計あるいはカメラ等のセンサー機器を接続し,取得したデータをサーバに伝送する中継器としての役割を担います。以下が実際のRaspberryPiです。

Raspberry Pi4Model B 4G RAM
Raspberry Pi4Model B 4G RAM

このラズベリーパイは,Debian系のLinuxをインストールでき,プログラミングなどの学習用機器としてイギリスのラズベリーパイ財団で開発されました。現在は,コロナ感染症拡大の影響を受け,非常に品薄の状態になっています。
また,ストレージは常駐型でなくmicroSDカードを差し込んで使います。そのため,耐久性の面で不安定な要素があり,CPUもスマートフォンや携帯電話に使われるArmプロセッサを使ったもので,PCに較べてかなり非力です。ただ,小型で拡張性に優れており,IoTなどのちょっとした実証に使うには手頃な機器であると言えます。当研究会ではこのラズベリーパイを使って学習します。

【準備機器】
  raspberry Pi (今回は,Raspberry Pi4Model B 4G RAMを使います。)
  raspberry Pi 用 ACアダプタ
  micro SDカード(PCとのUSB接続を考慮したもの)
    LANケーブル
  PC (VNCツールをインストールして,リモートデスクトップ環境で使います。)

  Raspberry Pi OSのインストール

ラズベリーパイにOSをインストールします。Raspberry Pi OSはDebian GNU/Linuxを基にしたLinuxで,ラズパイ上のハードウェア機能を引き出す調整がされているため,トラブル無くラズパイを扱えます。

ラズベリーパイのOSインストール方法は,microSDを使ったRaspberry Pi Imager(以下,Imager) の利用が手軽で確実です。このImagerは,ラズベリー財団のホームページからダウンロードすることが出来ます。


PCにダウンロードした後,PC側でImagerをインストールし起動します。書き込むmicroSDをPCに接続します。パソコンにSDカードの入出力アダプターが無い場合には,接続用器具を用意する必要があります。


Raspberry Pi Imager画面」でデバイス,OS,ストレージを選択します。OSを選択]ボタンでは適切なOSを選択しインストールします。今回は「Raspberry OS (64bit-bit)」を選択してみました。


次ヘをクリックすると,Pi OSにいろいろな設定を施すことができます。この設定は,後で設定することもできるのですが,今回は,VNCツールを使ってリモート環境で操作していきますので,後での設定が難しい面もあり,できる所は設定しておいた方が楽になります。


設定編集の選択画面」が開きます。「設定を編集する」をクリックします。


一般」「サービス」「オプション」と画面が選択できますので,「一般」の「ホスト名」,「ユーザ名とパスワードを設定する」,「ロケールを設定する」にチェックを入れて各項目を入力してください。

Wi-Fiを設定する」は最初からWi-Fiを使う場合に設定してください。今回は,LANケーブルを使ってインターネットにつなげることにしましたので,ここでは設定していません。Wi-Fiは後でも設定できますので大丈夫です。
なお,入力したホスト名ユーザ名パスワード忘れないようにしてください。


次に,「サービス」の設定をしてください.これは,SSH接続の設定になります.後でわかりますが,RaspberryPiは,ネットワークに繋げた後,SSHプロトコルで使って設定していく必要があります.

これをここで設定していないとSSHポートが有効になりません。RaspberryPiに直接繋ぐTVやキーボード・マウスを用意できる場合はいいのですが,そうでない場合は以後の設定が難しくなります.

セキュリティ面から,公開鍵認証の方が望ましいですが,後でも出来るので今回はパスワード認証とします。「オプション」は必要ありませんので,これで「保存」します.


microSDカード書き込み指示画面まで進めて,「はい」をクリックします。書き込みが開始されます。Raspberry OSのmicroSDカード書き込み中画面表示されます。


SDカードの書き込みには数分かかります。書き込み終了後,自動的に検証が実行され成功するとSDカードが取り外せる状態になります。microSDカードの作成は以上で終了です。


microSDカードをPCから外して,RaspberryPiに差し込みます。差し込むアダプタはRaspberryPi基板にあります。RaspberryPiにACアダプタをつないで電源を入れ,LANに接続してVNCツールによりRaspberryPiを操作できるようにして行きます。


続いて,RaspberryPiのIPアドレスを取得する必要があります.これを知るには,いろいろな方法はありますが,簡単な方法としてはRaspberryPiが繋がっているLANセグメント上にPCを接続して,PCのコマンドプロンプトから次のコマンドを入力します.

>arp -a
インターフェイス: 192.168.1.2 --- 0x7
  インターネット アドレス 物理アドレス               種類
  192.168.1.1             18-ec-e7-84-6d-20     動的
  192.168.1.3             dc-a6-32-97-60-ea     動的
  192.168.1.255             ff-ff-ff-ff-ff-ff               静的

RaspberryPiの物理アドレスは,「b8:27」,「dc:a6」,「e4:5f」から始まりますので,どれがRaspberryPiのIPアドレスか分かります。
但し,物理アドレスのPCへの展開には時間がかかりますので,適当にPingコマンドで当たりをつけた方が早いかもしれません。


  SSH(TeraTerm)によるRaspberryPiへのログイン

このIPアドレスが見つけられたら,TeraTermなどのツールを使ってRaspberryPiにアクセスします。具体的には,TeraTermツールの「新しい接続画面」でホスト名IPアドレスを入力します。

ホスト名は,先ほどのImagerで設定したホスト名になります。

今回は「raspberrypi.local」です。ここにIPアドレスを打ち込んでもアクセスできます。


「OK」をクリックします。
初めて接続する場合は,「セキュリティ警告」ウィンドウが表示されますが,「known hostsリストファイル」を追加する行為なので,「このホストをknown hostsリストに追加する」を選択して「続行ボタン」を押します。次からは「セキュリティ警告」画面は出なくなります


次に「SSH認証画面」が開きます。先ほどImagerで設定した「ユーザ名」と「パスワード」を入力して,「プレインパスワード」を使って認証します。「OK」ボタンをクリックします。


VT画面に「pi@raspberrypi:~ $」が出力されれば,ログインOKです。


これは,コマンドラインインターフェース(CLI)になりますので,ここから,RaspberryPiのDeskTop画面表示を目指していきます。


  RaspberryPiのソフトアップデートとVNCサーバのインストール

その前に,RaspberryPiに接続できたので,最低限の設定をします。最初にRaspberryPiのソフトのアップデートを行います。次のコマンドを入力してください。

 パッケージを最新版に更新
$ sudo apt update
$ sudo apt upgrade

 vnc-serverのインストール
$ sudo apt install realvnc-vnc-server


  RaspberryPiのコマンドラインからのVNCサーバの起動

VNCを使わずSSHでRaspberry Piにログインしている場合,グラフィカルな設定は行えません.そのため,コマンドライン上からVNCサーバを起動させる設定を行います.下のようにコマンドプロンプトに入力します.

$ sudo raspi-config

以下の「コマンドライン設定画面」が開くので,「Interface Options」を選択します。


次にRaspberry OSのInterface Optionsの「メニュー画面」が開くので,「VNC」を選択します。


「VNCサーバを起動していいか」を聞いてくるので,「はい」を選択します。

確認画面」が出るので「OK」をクリックします。

これで,「VNCサーバが起動」しました。


【参考】microSD使用ディスク容量のリサイズ(拡大)

microSDの使用容量を確認するため,次のコマンドを入力する。

$ df -h
ファイルシス          サイズ  使用    残り   使用% マウント位置
udev                     1.6G      0     1.6G    0%     /dev
tmpfs                    380M  1.3M  379M    1%    /run
/dev/mmcblk0p2    57G    4.9G     49G    10%   /
tmpfs                    1.9G   204K   1.9G    1%     /dev/shm
tmpfs                    5.0M   16K    5.0M    1%    /run/lock
/dev/mmcblk0p1   510M   73M   438M   15%  /boot/firmware
tmpfs                   380M   52K    380M    1%   /run/user/1000

現状,64GのmicroSDカードを使っていますので,よい配分になっているようですが,容量のリサイズを行う場合は,次のように行います。

$ sudo raspi-config

以下のコマンドライン設定画面が開きますので,「advanced_Options」を選択します。
        
次に,「advanced_Optionsのメニュー画面」が開きますので「Expand_Filesystem」を選択します。
        
resizeしたのでRebootで有効になるというメッセージが開きますので,「了解」をクリックします。

再度,「初期画面」に戻るので,「Finish」を選択しエンターを押します。

自動的にRebootして良いか聞いてくるので,「はい」をエンターします。

画面が消えて,Rebootされますので,暫くしてから再度,SSHでRaspberryPiに接続し,次のコマンドを打って利用できる容量を確認します。

$ df -h
ファイルシス         サイズ  使用    残り  使用% マウント位置
udev                     1.6G     0     1.6G     0%     /dev
tmpfs                   380M  1.3M  379M    1%    /run
/dev/mmcblk0p2    57G  4.9G   49G     10%   /
tmpfs                    1.9G  140K  1.9G      1%   /dev/shm
tmpfs                    5.0M   16K  5.0M      1%   /run/lock
/dev/mmcblk0p1   510M   73M  438M   15%   /boot/firmware
tmpfs                   380M   52K  380M      1%   /run/user/1000

変化がないので,現在はImagerが改良されてリサイズも含めてmicroSDカードを作ってくれるようです。なお,次のコマンドでもディスク拡張が行えます。

$ sudo raspi-config --expand-rootfs


  VNCによるRaspberryPiのDeskTop画面の表示

さて,microSDカードとRaspberryPiのサーバ起動準備が整いましたので,RaspberryPiのDeskTop画面を表示していきたいと思います。

DeskTop画面を表示するには,VT機器やキーボード・マウスが別途用意出来るのであれば,それをRaspberryPiに繋げばいいのですが,費用がかかりますのでVNCツールを使ってリモートデスクトップ環境で見える形にします。

VNCとは,ネットワークを通じて別のコンピュータに接続し,そのデスクトップ画面を呼び出して操作するリモートデスクトップ技術を使った派生ソフトウェア群の総称です。

VNCツールはいろいろありますが,Windowsでよく知られているREALVNCツールは,個人の場合は今のところ無料なようです。いつ有料になるかはわかりませんが,今回はこれを使ってリモート接続を実現します。

セキュリティにも留意して信用の高いサイトからダウンロードできるソフトを利用してください。参考までに,REALVNCのサイトをここに示します。

VNCツールを使わない場合には,VT機器やキーボード・マウスが別途必要になります。

さて,このVNCツールを使ってRaspberryPiのDeskTopを開くには,PCにインストールしたVNCツールを起動します。「Viewer画面」が開きますので,画面向かって左上の「File」タブから「Preferences」をクリックします。


VNCツールの「Application Preferences画面」が開きますので,「Expert項目」を選択し,「ProxyTcpRfb」を探してValue値を「False」に変更します。

Apply」をクリックして最後に「OK」をクリックします。


最初に戻って,画面向かって左上の「File」タブから「New Connection」をクリックします。


New Connectionの「Properties画面」が開きますので,VNCサーバの「IPアドレス」または「ホスト名」と,「Name(名称)」を入力し「OK」をクリックします。

VNCViewerに「VNCサーバ対象」が表示されますので,クリックします。この時,「ホスト名」を指定しても繋がらない場合は,「IPアドレス」で試してみてください。

それでも接続できない場合は,VNCサーバが稼働してないことが考えられますので,再度,VNCサーバの起動に戻ってやり直してみてください。


VNCサーバが動いているかどうかは以下のコマンドで確認できます。

コード

$ ps -ef | grep vnc
pi          1117       1  0 10:28 ?        00:00:04 /usr/bin/wayvnc --render-cursor --keyboard=jp
pi          2842    2200  0 11:55 pts/0    00:00:00 grep --color=auto vnc


初めて接続する場合は警告エラー画面が出る場合があります。その場合は「Continue」します。「認証画面」が出たら,Imagerで設定した「ユーザ名」と「パスワード」を入力します。

特に問題がなければ,「RaspberryPiのDeskTop」画面が出力されます。


以上で,VNCを使ったDesktop画面の表示方法を記述しました。

  まとめ

VNCツールを利用してRaspberryPiのDesktop画面を出力するところまで来ました。この画面から日本語などを設定した方が簡単です。

しかし,長くなりすぎましたので,この辺で一旦終わります。

次回は,RaspberryPiの残りの設定と,Node-REDのインストールに入っていきます。

Node-REDの設定後,raspberryPiについては一旦終了し,ubuntuサーバのNode-REDインストール設定に移ります。まだ先は長いですね。

では,また。


(注意)
諸般の事情で画面イメージが表示できないので分かりにくいですが,実際の機器を操作して行けば大丈夫です。
なお,情報の正確性を期していますが,実施される場合は自己責任でお願いします。

0 件のコメント: