====== 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]]