kuroの覚え書き

96の個人的覚え書き

LaFoneraをweb server に仕立てる。



という訳で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=50

start() {
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を再起動してやったところちゃんとブラウザで表示することができた。

f:id:k-kuro:20080410011954p:image


これで消費電力2-3W程度の低消費電力簡易webサーバの出来上がり〜

あと難点としてはSDカードをext2フォーマットとしたためhtmlファイルをSDカードにどうやって移すかって所だけかな。



f:id:k-kuro:20080410172000j:image

f:id:k-kuro:20080410172100j:image

f:id:k-kuro:20080410172400j:image

某氏に貰った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により公開されるようになった。