Raspberry Pi の SD 延命化対策もでき、だいぶ設定ができました. 最後に細かい設定をしておきたいと思います.
作業環境
- Raspbian Jessie Lite
不要なパッケージの削除
今回は Raspbian Jessie Lite なので X Window System などは入っていないので もともと軽量ですが、使っていないパッケージが入っているとアップデート時に時間がかかったりするので、不要なパッケージは削除しておきます… が、あんまり不要なパッケージがなかったです. 一応メモ.
現在入っているパッケージの一覧を取得するには dpkg -l
コマンドを使用します.1
2
3
4
5
6
7
8
9
10pi@raspberrypi:~ $ dpkg -l
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前 バージョン アーキ 説明
+++-=============-=============-========-========================================
ii acl 2.2.52-2 armhf Access control list utilities
ii adduser 3.113+nmu3 all add and remove users and groups
ii alsa-utils 1.0.28-1 armhf Utilities for configuring and using ALSA
...(省略)
とりあえず削除できそうなのは triggerhappy
ぐらいでしょうか. 音声が不要な場合は alsa-utils
、固定 IP 化 するなどして Bonjour による hostname.local
で アクセスする費用がなければ avahi-daemon
も 削除できます. 今回は音声 と Bonjour は 残したいと思います.dbus
は 削除してよいという話がありましたが、avahi-daemon*
bind9-host*
bluez*
bluez-firmware*
pi-bluetooth*
あたりが巻き込まれて消えるので削除しないほうがよさそうです.
ということで、削除のメモ. (1つだけなら削除しなくても…)1
pi@raspberrypi:~ $ sudo apt-get purge -y --auto-remove triggerhappy
不要なデーモンの停止
使っていないサービスは停止することでメモリを有効活用!と、思い立つのですが、こちらも、あまり無くメモ.
まずは、稼働しているサービスの一覧を取得. 以下は Raspberry Pi 3 で triggerhappy
削除前の結果. Raspberry Pi Zero では bluetooth.service
hciuart.service
が なく、`serial-getty@ttyAMA0.service` が 増えてました. 環境に合わせて不要なら止めておいてくれるみたいですね.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22pi@raspberrypi:~ $ systemctl | grep running
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
bluetooth.service loaded active running Bluetooth service
cron.service loaded active running Regular background program processing daemon
dbus.service loaded active running D-Bus System Message Bus
dhcpcd.service loaded active running dhcpcd on all interfaces
getty@tty1.service loaded active running Getty on tty1
hciuart.service loaded active running Configure Bluetooth Modems connected by UART
ntp.service loaded active running LSB: Start NTP daemon
rsyslog.service loaded active running System Logging Service
ssh.service loaded active running OpenBSD Secure Shell server
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-udevd.service loaded active running udev Kernel Device Manager
triggerhappy.service loaded active running LSB: triggerhappy hotkey daemon
avahi-daemon.socket loaded active running Avahi mDNS/DNS-SD Stack Activation Socket
dbus.socket loaded active running D-Bus System Message Bus Socket
syslog.socket loaded active running Syslog Socket
systemd-journald-dev-log.socket loaded active running Journal Socket (/dev/log)
systemd-journald.socket loaded active running Journal Socket
systemd-udevd-control.socket loaded active running udev Control Socket
systemd-udevd-kernel.socket loaded active running udev Kernel Socket
不要なデーモンを停止する場合は下記. ここでは triggerhappy
を 例に.1
pi@raspberrypi:~ $ sudo systemctl disable triggerhappy
NTP に 日本のサーバを設定
時刻合わせの NTP サーバ、当然近い場所にあるサーバの時刻に合わせたほうが良いので設定… たぶん、しなくて大丈夫だと思われます. pool.ntp.org
が 使われており、近い場所の NTP サーバを返してくれるためです. 最近のディストリビューションはいろいろと設定済みで助かりますね.
一応 ntpq
で 見てみると下記でした. US の NIST に 行っているのもありますが NTT も あるので、まぁよさそうです.1
2
3
4
5
6
7pi@raspberrypi:~ $ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*timpany.srv.jre 133.243.238.244 2 u 431 1024 377 8.083 -0.138 0.527
+7.83.198.104.bc 169.254.169.254 3 u 1488 1024 372 8.453 0.292 0.833
+153-128-30-125. 133.243.238.244 2 u 357 1024 377 10.422 -0.117 5.420
-y.ns.gin.ntt.ne 249.224.99.213 2 u 470 1024 377 14.798 -4.433 1.423
とはいえ、pool.ntp.org で “pool.ntp.orgは世界中全てのタイムサーバを指定しているので、時間の正確さは理想的ではありません。 もしもうちょっと良い時刻精度 大陸毎のゾーン名や国のゾーン名を指定するとより正確な時刻が得られます。 – pool.ntp.org: プールを利用するためにNTPを設定する方法は?“ と 説明されている通り日本に明示してもよさそうです. 2017年3月現在で 日本 は 66 サーバ なので、使うのはアジアではなく日本でよさそうです.1
2
3
4
5
6
7
8
9
10
11pi@raspberrypi:~ $ sudo nano /etc/ntp.conf
#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
server 3.jp.pool.ntp.org iburst
pi@raspberrypi:~ $ sudo systemctl restart ntp
カーネルのログを抑制
コンソールに表示されるカーネルのログを抑制します. コンソール出力の抑制であり、ログ自体は /var/log/syslog
へ 出力されています. これにより、若干起動速度が上がることが期待できます./boot/cmdline.txt
の 末尾に quiet
を 追記します.1
2pi@raspberrypi:~ $ sudo nano /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet
Raspberry Pi 起動時 に HDMI 接続 の テレビを連動させない
Raspberry Pi を HDMI で テレビにつないでいると、Raspberry Pi の 再起動に応じてテレビの電源が入ったり、テレビ番組を見ていたのに HDMI に 切替ったりします. 常時つないでいるわけでなければよいのですが、常時つないでいると不便な面もあったりします./boot/config.txt
に hdmi_ignore_cec_init=1
を 追記します.1
2pi@raspberrypi:~ $ sudo nano /boot/config.txt
hdmi_ignore_cec_init=1
CPU の 動作クロック設定
たまたま何かの調べて物をしている際に 俺のラズパイ2がこんなに遅いわけがない - 電子計算記 さん の 記事を発見し、気になったことから設定しました.
ちなみに、今回の環境での初期設定は ondemand
だったので あえて変更する必要はないかもしれないですが…
cpufrequtils
を インストールしコマンドラインから設定します.1
2
3pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install cpufrequtils -y --no-install-recommends
pi@raspberrypi ~ $ sudo cpufreq-set -g performance
続いて再起動しても設定が反映されるよう設定ファイルを作成します. MAX_SPEED
と MIN_SPEED
は cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
から出てきた数字を設定します. 下記は Raspberry Pi 3 の ものになります.
1 | pi@raspberrypi:~ $ sudo cp /usr/share/doc/cpufrequtils/examples/cpufrequtils.sample /etc/default/cpufrequtils |
ここで指定する Governor については、以下のようです.
Governor | 説明 |
---|---|
ondemand | cpu の負担が 95% の時に CPU を動的に切り替えます |
performance | 最大周波数で cpu を動作させます |
conservative | 負担が 75% の時に CPU を動的に切り替えます |
powersave | 最小周波数で cpu を動作させます |
userspace | ユーザーが指定した周波数で cpu を動作させます |
設定に当たり以下のサイトを参考にさせて頂きました. 有益な情報ありがとうございます!
- 俺のラズパイ2がこんなに遅いわけがない - 電子計算記
- LinuxでCPUの動的クロック変更を無効にする方法 | Carpe Diem
- CPUの動作周波数をコントロールする - Linux Mintのメモ
- CPUの動作クロックを設定する [MA-E/SA Developers’ Wiki]
.bashrc
最後に .bashrc
、こちらは、各々 の お好みなので…
今回はラズパイ環境なので、あまり手を入れず最低限の設定をしました.1
2
3
4
5
6
7
8
9
10
11pi@raspberrypi:~ $ nano ~/.bashrc
alias ls='ls --color=auto'
alias ll='ls --color=auto --format=verbose'
alias la='ls --color=auto --format=verbose --all'
alias cp='cp --interactive'
alias mv='mv --interactive'
alias rm='rm --interactive'
alias free='free -h'
alias grep='grep --color=auto'
pi@raspberrypi:~ $ sudo reboot
いろいろな環境ごとに .bashrc
はじめ、設定ファイルのばらつきがあるので、いずれは本格的に取り組みたいとは思いますが、なかなか手が出せず…
興味津々ではあるが、いつかホンキ出すときに参考にさせて頂きます.
どうでもいい余談ですが、Windows で ドット・ファイル や ドット・フォルダを作るには、エクスプローラーの新規作成で .name.
と ドットでファイル名、フォルダ名を挟むと作れます.
クリーンアップ
1 | pi@raspberrypi:~ $ sudo apt-get autoremove |
Raspberry Pi 3
ラズパイを始めるには 全部入りの Raspberry Pi 3 が 手ごろではないでしょうか. Raspberry Pi Zero - ラズベリー・パイ ゼロ や Raspberry Pi Zero W - ラズベリー・パイ ゼロ W は 国内では入手しずらいため値上がりしてしてますし、GPIO ピン も 自分で付ける必要があったりと色々と手がかかります. その分楽しいというのもありますが.
届くまで時間がかかってもよい場合は こちら Raspberry Pi Zero の 購入 で 記事にしました Pimoroni さん から購入する手もあります.
Raspberry Pi 3 の 電源
Raspberry Pi 3 は 5V/3A の 電源が必要になります. スマホの充電アダプタでは出力が足りない場合もあるので確認が必要です.
マイクロ SD カード
ラズパイ の OS や ストレージに必要です. 16GB あれば十分だと思いますが、用途次第なので お好みのサイズで用意します.
細かい設定を施そうと思っていましたが、思いのほか そのままで良さそうだったのでビックリしました. 世界中の凄い人たちが、より良い設定・環境を作ってくださっているおかげですね. 感謝感謝です!