Raspberry Pi OS Tips

Raspberry Pi/電子工作

こんにちは、あろっちです。

Raspberry Pi OSは、Debian(GNU/Linux)ベースのRaspberry Pi用のOSです。
この記事では、Raspberry Pi OSでできるカスタマイズなどのTipsを書いていきます。

Raspberry Piをリモート接続で使う手順を別記事にしています。

Raspberry Pi OSの日本語設定について、まとめた記事を書きました。

スポンサーリンク

スプラッシュ画面(OS起動時の画面)のカスタマイズ

Raspberry Pi OSは、スプラッシュ画面に 「Plymouth」という起動時や終了時にスプラッシュスクリーンを表示するソフトウェアを使っています。

Plymouthのテーマディレクトリは、

/usr/share/plymouth/themes

です。

デフォルトでは、pixというテーマが使われていて、Raspberry Pi OSのスプラッシュ画像は、

/usr/share/plymouth/themes/pix/splash.png

です。

スプラッシュ画面の画像を手っ取り早く差し替えたい(独自のものにする)という場合、このsplash.pngを好みの画像に入れ替えればいいという訳です。

例えば、自分で用意したpng画像(例:/home/pi/Pictures/my.png)があるとします。
それを、

/usr/share/plymouth/themes/pix/

にコピーします。

$ sudo cp /home/pi/Pictures/my.png /usr/share/plymouth/themes/pix

元画像(splash.png)をバックアップします。

$ cd /usr/share/plymouth/themes/pix
$ sudo cp splash.png splash.png.bak

この場合、元画像がsplash.png.bakという名前で保存されます。

自分の画像をスプラッシュ画像にします。

$ sudo cp my.png splash.png

当ブログのロゴをスプラッシュ画像にした場合の起動イメージはこんな感じです。

元の画像に戻すには、次のようにします。

$ sudo cp splash.png.bak splash.png

OS起動時のサービス(systemd・sytemctl) Tips

Raspberry Pi OSは、systemdというサービスがOS起動時に色々なサービス等(ユニット)を自動起動します。

サービス(ユニット)に対して、色々と指示するコマンドがsystemctlです。

このTipsでは、systemctlを使った操作方法を記述します。

systemctlを実行したときにエディタの様な状態になった時は、基本的にlessの操作と同じです。

  • 文字検索
    /を入力した後、検索したい文字を入力します。nで次の検索結果にジャンプ、shift+nで前の検索結果に戻ります。
  • ターミナルに戻る
    :qを入力します。

全体的な操作

システムの状態を表示

$ systemctl status

インストールされているユニット一覧表示

$ systemctl list-unit-files

実行中のユニット一覧表示

$ systemctl list-units

実行に失敗したユニット一覧表示

$ systemctl --failed

個別サービスの操作

ユニットの実行

$ sudo systemctl start <ユニット>

時間を合わせるためのサービスntpを例にすると

$ sudo systemctl start ntp

と入力します。(ユニット名はntp.serviceですが、.serviceは省略できます。)

ユニットの停止

$ sudo systemctl stop <ユニット>

ユニットの再起動

$ sudo sytemctl restart <ユニット>

ユニットの状態表示

$ sudo systemctl status <ユニット>

例えば、起動に失敗している時は、Active: failedという具合に表示されるので起動していない! なんていう事が分かります。

起動時自動実行の設定

自動実行状態の確認

$ sudo systemctl is-enabled <ユニット>

自動実行の有効化設定

$ sudo systemctl enable <ユニット>

自動実行の無効化設定

$ sudo systemctl disable <ユニット>

rng-toolsの起動失敗の対処

systemctlの記事を作成するため調査している時に、自分の環境でrng-toolsが起動に失敗していることが判明しました。このサービスは何? というところから調べていくと次のことが分かりました。

  • rng-toolsは乱数を生成するためのサービス
  • rng-toolsはデフォルトでハードウェア乱数生成器(/dev/hwrng)を使用する
  • 自分の環境は仮想デスクトップ(Parallels)だからなのか、/dev/hwrngが存在しない(この原因は定かではない)
    ※Pi4の実機で確認したところ、実機では/dev/hwrngが存在しました。(※2021年4月1日追記)

これの対処法として擬似乱数生成器を使ってねってことで、その設定方法2点紹介します。

パターン1

擬似乱数生成器の/dev/urandomのシンボリックリンクを/dev/hwrngに貼る

$ sudo ln -s /dev/urandom /dev/hwrng

rng-toolsを起動

$ sudo systemctl start rng-tools

パターン2

rng-toolsの設定ファイルに乱数生成器として/dev/urandomを使うように設定変更する

$ sudo vi /etc/default/rng-tools

次のようにHRNGDEVICE=/dev/urandomを記述する

rng-toolsを起動

$ sudo systemctl start rng-tools

どちらも試しましたが、どちらがよいかと言われれば、個人的にはパターン2かなというところですね。

Raspberry Piのチェック(Rivision Number & Board Version)

ボードの状態をチェックする
※仮想デスクトップ環境非対応

$ pinout

CPU情報をチェックする

$ cat /proc/cpuinfo
Rapberry Pi 4 model B
仮想デスクトップ環境

Raspberry Pi Model情報をチェックする
※仮想デスクトップ環境非対応

$ cat /proc/device-tree/model

Raspberry Piの情報を表示する

neofetchコマンドをインストールします。

sudo apt install neofetch

neofetchコマンドを実行

neofetch

次のようにRaspberry Piのアスキーロゴとともに情報が表示されます。

GUIをXfceに変更する

GUIをXfce4(エックス エフ シー イー)に変更する方法を記述します。

Xfceをインストールする

aptでOSを更新します。

sudo apt update
sudo apt full-upgrade
sudo reboot

Xfceをインストールします。結構時間がかかります。

sudo apt install xfce4

Xfceに変更する

GUIをXfceに変更します。

sudo update-alternatives --config x-session-manager

この場合、5(/usr/bin/startxfce4)を入力し、Enterを押します。
※ご使用の環境によって選択肢は異なりますので、/usr/bin/startxfce4に対応する番号を入力してください。

再起動します。

sudo reboot

このようにXfceが使えるようになります。

元のGUIに戻すには、

sudo update-alternatives --config x-session-manager

より、/usr/bin/startlxde-piに対応する番号(上記の画像を例にすると0)を入力し、Enterを押します。
その後、再起動します。

Xfceからlxde-piに戻した時に、音声読み上げ機能が有効になる事象が発生したことがありました。
その機能を停止する方法は、以下の通りです。

USBからブート(起動)する

Raspberry Pi 4(実機)をUSBからブートする手順を記述します。

sudo raspi-config

6 Advanced Optionsを選択してEnterを押します。

A6 Boot Orderを選択してEnterを押します。

B2 USB Bootを選択してEnterを押します。

了解を押します。

Tabキーで下の選択肢に移動し、<Finish>を押します。

リブートするか尋ねてきますので、<いいえ>を選択すると終了します。

実際にUSBからブートできるかテストしてみましょう。

一旦、シャットダウンし、Raspberry Pi 4の電源を切ります。

本体からSDカードを抜きます。下のようなUSB SDカード専用カードリーダーを使ってUSBブートをしてみます。

SDカード(OSが入っている)をUSB SDカード専用カードリーダーにセットしたところ

USB3.0 microSD/SDカード専用カードリーダー(Amazon)

このようにうまく起動できました。

USB3.0 microSD/SDカード専用カードリーダー(Amazon)

SSH接続できなくなった時の対処法

SSH接続では、初回接続時に接続先の公開鍵を保存し、次回以降この鍵が一致すれば自動的に接続するようになっていますが、IPアドレスの振り直しやOS再インストールなどで鍵が変わってしまった場合、次のようなエラーが発生します。

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

この場合、接続先の鍵を削除することで、再び初回接続の状態にできます。

接続先ホスト公開鍵の削除コマンド。こちらのコマンドは、PCのSSH接続するターミナル(例: WindowsならPowerShell、MacやLinuxならターミナル(端末))で実行します。

ssh-keygen -R raspberrypi.local

raspberrypi.localの箇所は、接続先のアドレスを指定します。

共有ファイルサーバー(Samba)を構築する

Raspberry Pi OSにファイルサーバーを構築(Samba使用)する手順を記述します。

今回、記事を作成するにあたり、以下のようなSSDを使用しました。SSDには、Raspberry Pi OS(32bit)がインストールされています。

Sambaをインストールする

aptでOSを更新します。

sudo apt update
sudo apt full-upgrade
sudo reboot

Sambaをインストールします。

sudo apt install samba -y

インストール途中で以下のような設定(WINS設定)を実施するか尋ねられますが、<いいえ>を選択します。

Sambaの設定

piユーザでアクセスできるように設定します。

公開ディレクトリは、piユーザのホームディレクトリ/home/piとします。

Sambaの設定ファイル/etc/samba/smb.confを開きます。以下は、エディタにviを使用しています。

sudo vi /etc/samba/smb.conf

末尾に以下の設定を追加します。

[pi]
path = /home/pi
read only = no
guest ok = yes
force user = pi

追加後、保存して終了します。
(viの場合、コマンドモードでZZと入力することで保存して終了できます。)

Sambaを再起動します。Sambaのサービス名は、smbdです。

sudo service smbd restart

Windowsから接続する

Windowsからは、エクスプローラーから接続できます。

エクスプローラーのパス入力欄に、

¥¥[Raspberry PiのIPアドレス]

あるいは、

¥¥[Raspberry Piのホスト名]

と入力します。

ホスト名がデフォルトの場合、

¥¥raspberrypi

と入力すれば、接続できるはずです。

利用方法など

例えば、Raspberry Piで作成したファイル(画像やテキスト、プログラムのソースファイル)をPC(Windows)で開いたり、PCにコピーするといったことができます。

逆にPCにあるファイルをRaspberry Piに保存するという使い方もできます。

もちろん、単純に共有ファイルサーバーとして、活用することもできます。

まとめ

この記事は、気づいたときにTipsを追記していきたいと思います。
※2021年3月25日 OS起動時のサービス(systemd・sytemctl) Tipsを追記しました。
※2021年4月1日 Raspberry Piのチェック(Rivision Number & Board Version)を追記しました。
※2021年4月9日 GUIをXfceに変更するUSBからブート(起動)するを追記しました。
※2021年4月18日 SSH接続できなくなった時の対処法を追記しました。

※2021年6月14日 共有ファイルサーバー(Samba)を構築する を追記しました。

コメント

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