という訳でSDカードを搭載できたのでLaFoneraを簡易なWWWサーバにしてみる。デフォルトでhttpdが動いているが、webページは用意されていない。なお/www以下がwebページの領域となっている。とりあえず/wwwにindex.htmlを作ってみると、さっくりと表示できたので、次にHTMLファイルの格納場所をSDカードに移動する。
まずはSDカードのマウント場所を/mmcとしてmkdirし、
mount -t ext2 /dev/mmc /mmc
とマウントポイントを変更した。次に
mkdir /mmc/www
とweb用ディレクトリを作り、そこに
<html>
<title>test</title>
Welcome to openWRT/Fonera!<br>
This page is /mmc/www/index.html
</html>
こんなファイルを置いてみる。その上で/etc/rc.d/S50httpdを編集して
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50start() {
include /lib/network
scan_interfaces
config_get ifname wan hostname
[ -d /mmc/www ] && httpd -p 80 -h /mmc/www -r ${hostname:-OpenWrt}
}stop() {
killall httpd
}
こんな感じにしてhttpdを再起動してやったところちゃんとブラウザで表示することができた。
これで消費電力2-3W程度の低消費電力簡易webサーバの出来上がり〜
あと難点としてはSDカードをext2フォーマットとしたためhtmlファイルをSDカードにどうやって移すかって所だけかな。
某氏に貰ったLaFoneraがベース。一応アクセスポイントとして機能するが、かなり胡散臭い機械になってる(w
現状ややこしいので無線は切っている。
ところでこの状態では電源投入しただけではSDカードはマウントされない。/mmc/wwwがないために/etc/rc.d/S50httpdも正常終了せずhttpdも起動しない。
start() {
include /lib/network
scan_interfaces
config_get ifname wan hostname
[ -d /mmc/www ] && httpd -p 80 -h /mmc/www -r ${hostname:-OpenWrt}
}
この部分を次のようにしてやるとhttpdの起動の前にSDカードをマウントしてくれるんじゃなかろうか。
start() {
[ -d /mmc/www ] || mount -t ext2 /dev/mmc /mmc
include /lib/network
scan_interfaces
config_get ifname wan hostname
[ -d /mmc/www ] && httpd -p 80 -h /mmc/www -r ${hostname:-OpenWrt}
}
結果、httpdの方がmmcの設定の前に起動されちゃう為うまくいかなかった。対策として行った事は以下の通り。まず/etc/rc.d/S99mmcをS39mmc等に改名し起動順序を早めてやる。その上で
mount -t ext2 /dev/mmc /mmc
の1行を加える。これによってまず/mmcにSDカードがマウントされ、その後にhttpdが起動して/mmc/wwwの内容がhttpdにより公開されるようになった。