ユーザ用ツール

サイト用ツール


raspberry_pi

Raspberry Pi

概要

ハードウェア

3.5inch LCD(GPIO版)

安価に販売されているタッチパネル付きLCDパネルである。 フットプリントがBタイプと同じで、GPIO接続なので、ぴったり重なる形で利用できる。

lcd35.jpg

ドライバやキャリブレーション用のツールの導入が不可欠だが、販売されるものに、導入用のインストラクションなどはない。

類似のモジュールは数多くあり、ドライバ類も多いので、適切なものを導入する必要がある。

今回導入したモジュールのドライバーはgit経由で取得するものだった。

# git clone https://github.com/Elecrow-keen/Elecrow-LCD35.git
# cd Elecrow-LCD35
# ./Elecrow-LCD35

これで、ドライバと対応するXサーバが導入される。 また、キャリブレーション用のツールは、

# dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

で導入する。 apt で更新されるようなので、apt update / apt upgrade をしておく。

NOOBS

Raspbian

sshの設定と自動起動

SSHは外部からのアクセスに不可欠である。 但し、設定がセキュアでなければ、外部からのクラックを許すことになる。

  • 暗号鍵によるアクセス

のみを許すように設定し、暗号鍵を適切にインストールする必要がある。

外部からアクセスするには、アクセス元の端末がもつ秘密鍵とペアになる公開鍵を ~/.ssh/authorized_keys2 に書き込んでおく必要がある。 このとき ~/.sshのモードは 0700 に、authorized_keys2 のモードは 0600 にそれぞれ設定されていなければならない。

sshd の設定は /etc/ssh/sshd_configにあり、以下の点を確実にしておく。

PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM no

公開鍵でのアクセスを許可し、パスワードによるアクセスを禁止する。

Raspbianではsshdは自動起動されないので、これも自動起動されるようにしておく。

# systemctl enable ssh

ユーザpi/グループ pi

Raspbianは設定の簡便のために、ユーザpiが存在し、様々な権限が付与されている。 当然、全てのRaspbianに存在しているので、セキュリティホールとなり得る。

ユーザpiを停止し、セキュリティホールをふさぐ必要がある。 停止に先だち、自身のユーザを作成し、sudo グループに追加しておく必要がある。

これを怠ると、管理者になることが出来なくなる。

また、同時に、ユーザpi はsudo 可能ユーザから外す。 /etc/group を編集し、sudoグループの行から pi を消し、代わりに自身を追加しておく。

sudo 回りの処理が

# passwd pi --lock

グループ pi はgid 1000であり、或いは、既存のグループと衝突するかも知れない。 この場合、piを消してしまえばいいのだが、グループpiで権限のチェックをしているものがあるようなので、pi を別のGIDで作成し、所属ユーザを含めてコピーしておく必要がある。

スワップを無効・有効にする

SDカード上のスワップファイルを使用する Raspbianのスワップは百害あって一利なしなので、停止すべきモノらしい。

スワップの一時的な停止は次のコマンドで行う。

$ sudo dphys-swapfile swapoff

再開する場合は、

$ sudo dphys-swapfile swapon

でよい。 なお、再起動後も停止したままにしたいなら、サービス自体を停止する。

$ sudo service dphys-swapfile stop
$ sudo systemctl disable dphys-swapfile

こちらも、再度有効にしたければ

$ sudo systemctl enable dphys-swapfile
$ sudo service dphys-swapfile start

とすればよい。

バッファをクリアする

メモリが不足すると kswapd0 がCPUを喰いだして、システムが応答しにくくなる。 最終に的には無応答になりリセットするしかなくなるため、バッファを強制クリアするなどして、対応する必要がある。1)

$ sudo /sbin/sysctl -w vm.drop_caches=3

とすればよい。 なお、設定出来る値は1-3である。

  1. ページキャッシュ
  2. dentry,inode
  3. 両方

なお、dirtyキャッシュはクリアされないので、syncしてからでなくても破綻はしない。 syncしてある方が、勿論、クリアされるデータは増えるが、ただでさえ重くなっているときにsyncなどしていたら本末転倒であろう。

自動ログインの変更

Raspbian においては、デフォルトで、Piが仮想コンソールと、Xセッションの二つで自動ログインしている。 特に、Xの方はメモリも喰うので不要ならば停めたいところである。

Xセッションは /etc/lightdm/lightdm.conf内の以下の行をコメントアウトすることで停止することができる。

autologin-user=pi

また、コンソールへの自動ログインは、/etc/systemd/system/autologin@.service の以下の記述を変更することで制御できる。

[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM

コメントアウトすれば自動ログインは抑制される。 また –autologin のユーザを変更すれば変更されたユーザでログイン出来る。

start

1)
それでもどうにもならないときもあるが
raspberry_pi.txt · 最終更新: 2018/02/11 13:11 by 127.0.0.1