MugbotのためのRaspberry Piの設定

Mugbotの環境設定をします。

1.オートログインの設定

(2016/3現在、Raspbianは初期設定で自動起動になっているので以下の設定は必要なくなりました。)

Raspberry Piを起動した時に、ユーザーアカウントや、パスワードを入力しなくても自動的にログインできるようにします。

nanoで/etc/inittabを編集します。
$sudo nano/etc/inittab

1:2345:respawn:/sbin/getty38400tty1
の行を#でコメントアウトします。

かわりに
1:2345:respawn:/bin/login-fpi tty1</dev/tty1>/dev/tty12>&1
を新たに書き込みます。 (piの部分はユーザー名が入ります。)

保存してnanoを終了させて再起動すると、Raspberry Piがオートログインします。

これ、記述を間違うと、Raspberry Piが起動しなくなります。
SDカードのコピーをとってから試されるといいと思います。

2.自動起動の設定
Raspberry Piを起動した時に、WebSocketサーバーが自動起動するように設定します。Rubyで作ったWebSocketサーバを自動起動してみます。

nanoで/etc/rc.localを編集します。
$sudo nano/etc/rc.local
以下の内容に変更します。
(「exit 0」の前に「ruby /home/pi/mugbot_server_v1_0_0.rb &」を追加します。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/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"
jsay"$_IP"
jsay"マグボットシステム起動 完了しました"
fi
ruby/home/pi/mugbot_server_v1_0_0.rb&
exit0

exit0の前に
ruby/home/pi/mubogt_server_v1_0_0.rb&
を追加します。(mubogt_server_v1_0_0.rbはWebSocketサーバのファイル名)

最初にruby、最後に&をつけます。これが大事です。
つけないとフォラグラウンドで実行されて、いつまでたっても解放されずコマンド受付状態になりません。
&をつけないと、先に行けずに止まってしまいます。
mugbot_server_v1_0_0.rbに実行権を付与します。
$chmod+x/home/pi/mugbot_server_v1_0_0.rb
自動起動が出来ているか再起動して確認します。
$sudo reboot

また、自動起動後に
$ps ax
を実行することで、このプロセスが走っているかどうかを確認できます。

しかし、この方法ではシステム起動時に「一度だけ」起動するので、途中で何かの原因でプロセスが止まるとそれきりになります。
止まっても何度でも起動するのであればデーモン化が必要です。

3.固定IPアドレスの設定

nanoで/etc/network/interfacesを編集します。
$sudo nano/etc/dhcpcd.conf
ここでは有線LANのIPアドレスを192.168.42.1にします。
最後の行に以下の内容に書いてください。

1
2
3
interfaceeth0
staticip_address=192.168.42.1/24
staticrouters=192.168.42.1

これで固定IPが付与されます。

以上でMugbotの環境設定を終了します。