購入したラズパイの動作確認もしなけれならないしサーバ化するための材料はまだ仕入れていないので標準的なOSをセットアップして動作させてみる
最低限必要な物
- ラズパイとMicroSDカードは必須
- インタネット接続環境
おそらく(いろんな意味で)問題なのが
ではないのではないだろうか
当然ながらPCがあるといろんなパターンで対処可能のためベストだと思うが,インタネット接続環境とPCに関しては(実験してみないと判らないけど)スマホで代用可能かもしれない(この件はいつか検証してみたいと思う)
標準的なRaspbianをセットアップ
標準でセットアップが簡単にできるのが「Raspbian」(ラズパイ向けにカスタマイズされたdebianベースのlinux)でセットアップの仕方が2種ある
それぞれのやり方はググってみれば説明されているので自身でも忘れないようにミソのみ記載しておく
まずラズパイのOSのBootシーケンスはメディア上のFATファイルシステムを意識して初回のBootが動作するようだ
(1)NOOBS
MicroSDカード(FATファイルシステム)にOSセットアップ用のファイルを書き込んでラズパイを起動するとOSセットアッププログラムが動作するので操作してセットアップを行う
この場合インタネット接続が出来ていると「Raspbian」以外のOSのセットアップもできる
標準である「Raspbian」をセットアップするとMicroSDカード(8GBの場合)のパーティションは以下のようになる
Disk /dev/sdb: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000e4373
デバイス 起動 Start 最後から セクタ Size Id タイプ
/dev/sdb1 8192 2542968 2534777 1.2G e W95 FAT16 (LBA)
/dev/sdb2 2542969 15523839 12980871 6.2G 5 拡張領域
/dev/sdb5 2547712 2613245 65534 32M 83 Linux
/dev/sdb6 2613248 2748415 135168 66M c W95 FAT32 (LBA)
/dev/sdb7 2752512 15523839 12771328 6.1G 83 Linux
この方法だとスマホ(Androidのみ,iPhoneはSDスロットが無いため不可)でも可能かもしれない
いろんなOSを簡単な操作でセットアップ可能なのは良いが作られるパーティションが多い
(2)imgファイル
「Raspbian」のみセットアップ可能でimgファイルを「Win32DiskImager」「DD for Windows」「dd」など用いてMicroSDに書き込む(imgファイルを書き込む場合はMicroSDをFATファイルシステムにフォーマットする必要はない)
imgファイルを書き込んだ時点ではMicroSDカードの全ての容量を使っていないが,ラズパイで初回起動すると全体を使うように再配置され(16GBの場合)以下のようになる(現在の版では自動的に行われる)
Disk /dev/sdb: 14.7 GiB, 15720251392 bytes, 30703616 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdbe56661
デバイス 起動 Start 最後から セクタ Size Id タイプ
/dev/sdb1 8192 137215 129024 63M c W95 FAT32 (LBA)
/dev/sdb2 137216 30703615 30566400 14.6G 83 Linux
セットアップしたMicroSDカードはパーティションが構築されるため,再度セットアップし直す時やMicroSDカードとして利用する場合はパーティションを削除するために「SDFormatter」でフォーマットするのが簡単である(尚,Windowsのディスクの管理ではLinux用に作られたパーティションの操作ができない)
RetroPieをセットアップ
RetroPieはRaspbianをエミュレータ専用に特化した物である
https://retropie.org.uk/download/からダウンロードしたRetroPieのimgファイルをDDで書き込んで起動
初回の起動でパーティションも最大まで広げられコントローラのボタン設定を行った後エミュレータのホーム画面となる
後はゲームデータを置けば利用可能になるが,とりあえず日本語を表示できるようにする
セットアップはコンソール画面でも可能だがTeraTermで操作したかったので以下のような操作となる
コントローラのAボタンを押して
5 Interfacing Options → P2 SSH
で,SSHをEnableにする
これでTeraTerm(ssh)でログインできる(pi/raspberry)
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Apr 9 11:24:07 2017
.***. Sunday, 9 April 2017, 11:25:18 am UTC
***** Linux 4.4.50-v7+ armv7l GNU/Linux
`***'
|*| Filesystem Size Used Avail Use% Mounted on
|*| /dev/root 29G 1.9G 26G 7% /
..|*|.. Uptime.............: 0 days, 00h01m23s
.*** * ***. Memory.............: 584620kB (Free) / 752856kB (Total)
*******@@** Running Processes..: 131
`*****@@**' IP Address.........: 192.168.xxx.xxx
`*******' Temperature........: CPU: 60°C/140°F GPU: 60°C/140°F
`"""' The RetroPie Project, https://retropie.org.uk
pi@retropie:~ $ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 29826916 1895840 26683176 7% /
devtmpfs 372092 0 372092 0% /dev
tmpfs 376428 0 376428 0% /dev/shm
tmpfs 376428 5284 371144 2% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 376428 0 376428 0% /sys/fs/cgroup
/dev/mmcblk0p1 58234 20860 37374 36% /boot
pi@retropie:~ $ sudo raspi-config
①言語を日本語に変更
以下の選択でデフォルトをOFFして「ja_JP.UTF-8 UTF-8」をONにする
4 Localisation Options → I1 Change Locale
[*] en_GB.UTF-8 UTF-8 off
[*] ja_JP.UTF-8 UTF-8 on
②タイムゾーンを日本にする
以下の選択でAsia/Tokyoを選択
4 Localisation Options → I2 Change Timezone
③Wi-fiの地域設定をJPにする
4 Localisation Options → I4 Change Wi-fi Country
④OSパッケージの更新(先にやったほうが良いかも)
8 Update を実行
raspi-configを終了して日本語フォントをインストール
pi@retropie:~ $ sudo aptitude install fonts-droid
The following NEW packages will be installed:
fonts-droid
0 packages upgraded, 1 newly installed, 0 to remove and 14 not upgraded.
Need to get 3728 kB of archives. After unpacking 15.4 MB will be used.
Get: 1 http://archive.raspberrypi.org/debian/ jessie/ui fonts-droid all 1:4.4.4r2-6+rpi1 [3728 kB]
Fetched 3728 kB in 38s (95.8 kB/s)
Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_GB.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Selecting previously unselected package fonts-droid.
(Reading database ... 86910 files and directories currently installed.)
Preparing to unpack .../fonts-droid_1%3a4.4.4r2-6+rpi1_all.deb ...
Unpacking fonts-droid (1:4.4.4r2-6+rpi1) ...
Setting up fonts-droid (1:4.4.4r2-6+rpi1) ...
pi@retropie:~ $ sudo shutdown -r now
再起動して再度sshでログイン
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Apr 9 20:50:53 2017
.***. 日曜日, 9 4月 2017, 午後08時52分16秒
***** Linux 4.4.50-v7+ armv7l GNU/Linux
`***'
|*| ファイルシス サイズ 使用 残り 使用% マウント位置
|*| /dev/root 29G 1.9G 26G 7% /
..|*|.. Uptime.............: 0 days, 00h01m29s
.*** * ***. Memory.............: 598776kB (Free) / 752856kB (Total)
*******@@** Running Processes..: 133
`*****@@**' IP Address.........: 192.168.xxx.xxx
`*******' Temperature........: CPU: 62°C/143°F GPU: 62°C/143°F
`"""' The RetroPie Project, https://retropie.org.uk
pi@retropie:~ $ date
2017年 4月 9日 日曜日 20:52:21 JST
pi@retropie:~ $
日本語表示となった
(追加:2017.4.16)
メモリディスクの利用
SDメモリへの書き込みを減らすため,swapの削除と不要logの中止,メモリディスク出力化
# free
total used free shared buffers cached
Mem: 752856 155784 597072 5332 11036 90928
-/+ buffers/cache: 53820 699036
Swap: 102396 0 102396
# swapon -s
Filename Type Size Used Priority
/var/swap file 102396 0 -1
# ls -l /var
合計 102436
drwxr-xr-x 2 root root 4096 1月 7 2015 backups
drwxr-xr-x 9 root root 4096 3月 4 01:19 cache
drwxr-xr-x 36 root root 4096 3月 4 01:19 lib
drwxrwsr-x 2 root staff 4096 1月 7 2015 local
lrwxrwxrwx 1 root root 9 3月 4 00:21 lock -> /run/lock
drwxr-xr-x 6 root root 4096 4月 9 20:49 log
drwxrwsr-x 2 root mail 4096 3月 4 00:21 mail
drwxr-xr-x 2 root root 4096 3月 4 00:21 opt
lrwxrwxrwx 1 root root 4 3月 4 00:21 run -> /run
drwxr-xr-x 5 root root 4096 3月 20 04:13 spool
-rw------- 1 root root 104857600 3月 4 01:18 swap
drwxrwxrwt 2 root root 4096 4月 16 17:29 tmp
#
ダイナミックswapのサービスを停止してパッケージを削除
# service dphys-swapfile stop
# aptitude remove dphys-swapfile
[ 0%] パッケージリストを読み込んでいます
[100%] パッケージリストを読み込んでいます
[ 0%] 依存関係ツリーを作成しています
[100%] 依存関係ツリーを作成しています
[ 0%] 状態情報を読み取っています
[ 21%] 状態情報を読み取っています
[ 0%] 拡張状態情報を読み込んでいます
[100%] 拡張状態情報を読み込んでいます
[ 0%] パッケージの状態を初期化しています
[ 0%] タスクの記述を読み込んでいます
[ 0%] タグのデータベースを構築しています
[100%] タグのデータベースを構築しています
以下のパッケージが削除されます:
dc{u} dphys-swapfile
更新: 0 個、新規インストール: 0 個、削除: 2 個、保留: 14 個。
0 バイトのアーカイブを取得する必要があります。展開後に 196 k バイトのディスク領域が解放されます。
先に進みますか? [Y/n/?] y
[ 0%] 拡張状態情報を書き込んでいます
[100%] 拡張状態情報を書き込んでいます
(データベースを読み込んでいます ... (データベースを読み込んでいます ...
5%(データベースを読み込んでいます ... 10%(データベースを読み込んでいます ...
15%(データベースを読み込んでいます ... 20%(データベースを読み込んでいます ...
25%(データベースを読み込んでいます ... 30%(データベースを読み込んでいます ...
35%(データベースを読み込んでいます ... 40%(データベースを読み込んでいます ...
45%(データベースを読み込んでいます ... 50%(データベースを読み込んでいます ...
55%(データベースを読み込んでいます ... 60%(データベースを読み込んでいます ...
65%(データベースを読み込んでいます ... 70%(データベースを読み込んでいます ...
75%(データベースを読み込んでいます ... 80%(データベースを読み込んでいます ...
85%(データベースを読み込んでいます ... 90%(データベースを読み込んでいます ...
95%(データベースを読み込んでいます ... 100%(データベースを読み込んでいます ...
現在 86945 個のファイルとディレクトリがインストールされています。)
dphys-swapfile (20100506-1) を削除しています ...
dc (1.06.95-9) を削除しています ...
man-db (2.7.0.2-5) のトリガを処理しています ...
install-info (5.2.0.dfsg.1-6) のトリガを処理しています ...
[ 0%] パッケージリストを読み込んでいます
[ 0%] 依存関係ツリーを作成しています
[100%] 依存関係ツリーを作成しています
[ 0%] 状態情報を読み取っています
[ 21%] 状態情報を読み取っています
[ 0%] 拡張状態情報を読み込んでいます
[100%] 拡張状態情報を読み込んでいます
[ 0%] パッケージの状態を初期化しています
[ 0%] 拡張状態情報を書き込んでいます
[100%] 拡張状態情報を書き込んでいます
[ 0%] タスクの記述を読み込んでいます
[ 0%] タグのデータベースを構築しています
[100%] タグのデータベースを構築しています
# rm /var/swap
不必要なログを停止
vi /etc/rsyslog.conf
以下を停止(##でコメントアウト)
# /etc/rsyslog.conf Configuration file for rsyslog.
#
# For more information see
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#################
#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support
#$ModLoad immark # provides --MARK-- message capability
# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
###########################
#### GLOBAL DIRECTIVES ####
###########################
#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
#
# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog
#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf
###############
#### RULES ####
###############
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
##daemon.* -/var/log/daemon.log
##kern.* -/var/log/kern.log
##lpr.* -/var/log/lpr.log
##mail.* -/var/log/mail.log
##user.* -/var/log/user.log
#
# Logging for the mail system. Split it up so that
# it is easy to write scripts to parse these files.
#
##mail.info -/var/log/mail.info
##mail.warn -/var/log/mail.warn
##mail.err /var/log/mail.err
#
# Logging for INN news system.
#
##news.crit /var/log/news/news.crit
##news.err /var/log/news/news.err
##news.notice -/var/log/news/news.notice
#
# Some "catch-all" log files.
#
##*.=debug;\
## auth,authpriv.none;\
## news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
#
# Emergencies are sent to everybody logged in.
#
*.emerg :omusrmsg:*
#
# I like to have messages displayed on the console, but only on a virtual
# console I usually leave idle.
#
#daemon,mail.*;\
# news.=crit;news.=err;news.=notice;\
# *.=debug;*.=info;\
# *.=notice;*.=warn /dev/tty8
# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
# you must invoke `xconsole' with the `-file' option:
#
# $ xconsole -file /dev/xconsole [...]
#
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
# busy site..
#
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
ディレクトリが存在しないとエラーとなる物もあるのでディレクトリを起動時に作成
# vi /etc/rc.local
以下を追加
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
##Add below line
mkdir -p /var/log/samba
mkdir -p /var/log/fsck
mkdir -p /var/log/apt
mkdir -p /var/log/ntpstats
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp
##Up to line
exit 0
再起動して確認
# shutdown -r now
(再起動)
$ free
total used free shared buffers cached
Mem: 752856 154544 598312 5396 10872 90120
-/+ buffers/cache: 53552 699304
Swap: 0 0 0
$ df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 29826916 2099868 26479148 8% /
devtmpfs 372092 0 372092 0% /dev
tmpfs 376428 0 376428 0% /dev/shm
tmpfs 376428 5292 371136 2% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 376428 0 376428 0% /sys/fs/cgroup
tmpfs 16384 96 16288 1% /var/log
tmpfs 16384 0 16384 0% /var/tmp
tmpfs 16384 0 16384 0% /tmp
/dev/mmcblk0p1 58234 20860 37374 36% /boot
$ ls -l /var/log
合計 88
drwxr-xr-x 2 root root 40 4月 16 19:00 apt
-rw-r----- 1 root adm 502 4月 16 19:00 auth.log
-rw------- 1 root utmp 0 4月 16 19:00 btmp
drwxr-xr-x 2 root root 40 4月 16 19:00 fsck
-rw-r--r-- 1 root utmp 292292 4月 16 19:00 lastlog
-rw-r----- 1 root adm 28072 4月 16 19:00 messages
drwxr-xr-x 2 root ntp 40 4月 16 19:00 ntpstats
drwxr-xr-x 3 root adm 120 4月 16 19:00 samba
-rw-r----- 1 root adm 48869 4月 16 19:00 syslog
-rw-rw-r-- 1 root utmp 2304 4月 16 19:00 wtmp
$ $ ls -l /var
合計 28
drwxr-xr-x 2 root root 4096 1月 7 2015 backups
drwxr-xr-x 9 root root 4096 3月 4 01:19 cache
drwxr-xr-x 36 root root 4096 3月 4 01:19 lib
drwxrwsr-x 2 root staff 4096 1月 7 2015 local
lrwxrwxrwx 1 root root 9 3月 4 00:21 lock -> /run/lock
drwxr-xr-x 6 root root 240 4月 16 19:04 log
drwxrwsr-x 2 root mail 4096 3月 4 00:21 mail
drwxr-xr-x 2 root root 4096 3月 4 00:21 opt
lrwxrwxrwx 1 root root 4 3月 4 00:21 run -> /run
drwxr-xr-x 5 root root 4096 3月 20 04:13 spool
drwxrwxrwt 2 root root 40 4月 16 19:05 tmp
$
ここまで
(追加:2017.4.17)
ハードウェア乱数生成器
ラズパイにはハードウェア乱数生成器が搭載されているそうだ
カーネルモジュールとか既に利用できるようになっているのでrng-toolsパッケージをインストールする