パッケージの導入
素の状態のOpenWrtは極めてシンプルな構成になっている。シンプルというにはさすがに何も無さすぎるので、思いつくパッケージを導入してみた。ipkgが導入されている環境なので、ipkgのパッケージリストに記載されているものからインストールする。インストール前に仙石浩明氏のipkg Feedを追加。
- vim → 「ipkg install vim」
- ntpclient → 「ipkg install ntpclient」
- microperl → 「ipkg install microperl」
- pure-ftpd → 「ipkg install pure-ftpd」
vimは完全に自分の趣味。perlはフルセットのperlがipkgに無いのでこの「いかにも簡易版」な名前のmicroperlというモジュールを導入したが、とりあえずすぐ使う予定は無い。必要になったら考えることにする(投げやりだな)。
wgetとzip関係はbusyboxに内蔵されていた。あと欲しいとすればscreenか。自分で作った「.screen」がどっかに残ってるはずだが・・・みつけたらそのとき導入(また書き直すのが面倒なだけ)。さすがにw3mやlhaは無いか。ほかにもkismetとかfonera-mp3dとかなかなか面白そうなモジュールがリストに挙がっているが、まずは最低限必要なものからそろえなきゃ。
特に、シャットダウンするとシステム日付がリセットされるため、ntpclientは必須コマンドだ。元々インターネット接続がかならずされる前提のハードウェアであり、起動時にntpで時間合わせを行うため、内蔵システム時計を持っていないようだ。init.dおよびrc.dに追加しておく。
touch /etc/init.d/ntpclient chmod a+x /etc/init.d/ntpclient vim /etc/init.d/ntpclient : cd /etc/rc.d ln -s /etc/init.d/ntpclient ./S50ntpclient
/etc/init.d/ntpclientの中身。
#!/bin/sh /usr/sbin/ntpclient -h ntp3.jst.mfeed.ad.jp -s
ntpclientについてはuci の設定にntpclientというエントリが存在している。「uci show」コマンドにて確認すると
ntpclient.cfg1=ntpclient ntpclient.cfg1.TYPE=ntpclient ntpclient.cfg1.hostname=pool.ntp.org ntpclient.cfg1.port=123 ntpclient.cfg1.count=1 ntpclient.cfg2=ntpclient ntpclient.cfg2.TYPE=ntpclient ntpclient.cfg2.hostname=ntp.ubuntu.com ntpclient.cfg2.port=123 ntpclient.cfg2.count=1
となっている。ただ、実際にntpclientコマンドがこれを見ているかどうかはわからないので、起動コマンドをベタに記述しておくことにした。
そうそう、システム時間といえば、タイムゾーンも設定しなくちゃ。通常のLinuxなら「/etc/localtime」があるんだが、OpenWrtのデフォルトで無いってことは、書いておいてもシステムは多分読まないだろうなぁ。もちろん「/usr/share/zoneinfo」も存在しない。
と思ったら、OpenWrt - PukiWikiによるとこうするらしい。
touch /etc/config/timezone vim /etc/config/timezone : touch /etc/TZ vim /etc/TZ
/etc/config/timezoneの内容
config timezone option posixtz JST-9 option zoneinfo 'Asia/Tokyo'
/etc/TZの内容
JST-9
以上の2ファイルを追加するだけで、dateを叩けばすぐにJSTで表示される。この設定方法は知らなかった。