ラズパイの設定 その2

Web サーバを起動する

CGI を起動するために、以下の設定を行います。

python の Web server から CGI を実行すると、 nobody というユーザーのユーザーの権限で実行されるようです。 nobody がパスワード無しで CGI を実行できるよう、 以下の設定を付け加えます。

$ sudo -s
# visudo

最後に以下の行を付け加えます。

nobody ALL=(ALL) NOPASSWD: ALL

python を使った簡易 web サーバーは以下のように起動します。

$ cd 
$ pwd
/home/pi
$ cd public_html
$ sudo -s
# python -m CGIHTTPServer 80

Raspberry Pi で Web ブラウザを起動し、アドレスに localhost と打ち込みます。

/home/pi/public_html/index.html が表示されます。

check を選択して「実行」すると、

sudo ./arduino.py check 

が Raspberry Pi 上で実行され、3 秒後、赤色 LED がチカチカします。

ctrl + c で python を終了します。

IP アドレスの固定

Raspberry Pi が起動する度に IP アドレスが変わるのは 扱いにくいので、IP アドレスを固定する必要があります。

2 つ方法があります。

  1. Raspberry Pi は DHCP モードで動かす。このとき IP アドレスは Wifi ルーター が割り振る。Wifi ルータを設定することで、Raspberry Pi に常に同じ IP アドレスを 割り振るようにする。
  2. Raspberry Pi の設定をいじって、固定 IP アドレスで起動するよう設定する。

色々な場所で動かすには 1. の方がお薦めです。 しかし、通常は自宅内 LAN で動作させることになると思います。 この場合は、2. の方が簡単です。 その方法は以下の通りです。

/etc/dhcpcd.conf の末尾に以下のように書き込む。 自宅内 LAN のアドレスが 192.168.0.xx であり、 ラズパイに 192.168.0.14 という IP アドレスを付けたいとき、 以下のように書きます。

interface wlan0
static ip_address=192.168.0.14/24
static routers=192.168.0.1

確認

$ sudo /etc/init.d/dhcpcd reload
$ ifconfig

スリープモードに入るのを防ぐ

Raspberry Pi 2 に wifi アダプタを接続すると、 デフォルトでは省電力モードで動作し、スリープモードに 入るようです。これを防ぐためには、

/etc/modprobe.d/8192cu.conf

というファイルを作成し、その中に以下のように書き込みます。

# Disable power saving
options 8192cu rtw_power_mgnt=0

Wifi アダプタを内蔵している Raspberry Pi 3 では 不要なようです。

Web サーバーを自動起動するよう設定する

python の web サーバーをラズパイの起動時に 自動起動するよう設定します。

/etc/rc.local の末尾の exit 0 の手前に以下の 1 行を追加します。 最後の ) の手前の & を絶対に忘れてはいけません。 忘れると、ラズパイが起動途中で止まってしまいます。

こうなると、シングルユーザーモードで起動し、ルートファイルシステムを マウントし直してから、/etc/rc.local を修正する必要があります。

その方法は ここ に書いてあります。


( cd /home/pi/public_html; python -m CGIHTTPServer 80 >> /var/tmp/web.log 2>&1 & )

rc.local の所有者は root なので、以下のように編集します。

$ cd /etc
$ sudo -s
# nano rc.local

 編集作業

# exit
$

リブートして python -m .... が自動起動することを確認します。 リブート後

  $ ps aux | grep python

を実行し、root の権限で python -m .... が実行されていることを確認します。

実行されている場合、ラズパイの web ブラウザを起動し、

localhost

にアクセスすると、リモコンのページが開きます。

次のページへ