====== Raspberry Pi ======
===== 概要 =====
===== ハードウェア =====
==== 3.5inch LCD(GPIO版) ====
安価に販売されているタッチパネル付きLCDパネルである。
フットプリントがBタイプと同じで、GPIO接続なので、ぴったり重なる形で利用できる。
{{Raspberry Pi: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を喰いだして、システムが応答しにくくなる。
最終に的には無応答になりリセットするしかなくなるため、バッファを強制クリアするなどして、対応する必要がある。((それでもどうにもならないときもあるが))
$ sudo /sbin/sysctl -w vm.drop_caches=3
とすればよい。
なお、設定出来る値は1-3である。
- ページキャッシュ
- dentry,inode
- 両方
なお、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]]