Under-Construction

▲Zaurus Top | ↑Up(設定・システム) | ←Prev(ディレクトリ構造一覧) | →Next(ipkg の構造と無理インストール)


ntpdate で時計合わせ

(2003/06/30)

rsync でファイル同期するようになると、コンピュータ同士の時刻ずれが気になる。 そもそも、数万円する Zaursu の時計が合っていないと気になるではないか。 そういった場合、ネットワーク上の NTP サーバの時間に合わせるのが一般的。

すでに、母艦は ntpd で常時 NTP サーバに合わせている。zaurus では、 ネットワーク接続時に、ntpdate コマンドで合わせるのが一般的なようだ。

Linux の時計は、PC アーキテクチャの場合、起動時に BIOS から読み込まれた 後は、カーネルがソフト上でカウントしていく。よって、ntp で合わせた時刻は、 カーネル上のもので、リセットすると、再び、BIOSから狂った時刻が 読み込まれてしまう。それを防ぐために、clock -w というコマンドを cron で定期実行するのである。 →古いけど自筆記事

Zaurus の場合は、clock -w に相当するものが、

echo 'W' > /var/spool/at/trigger
というもので、atd にトリガを与えれば良いらしい。

ntpdate のインストール

今回は、echo 'W' が組み込まれた ntpdate を Zaurus Archives:Downloadsから .ipk で持ってきて利用。

一応 root になって、

# ntpdate clock.nc.fukuoka-u.ac.jp
とかしてみると、ちゃんと動いていれば、
30 Jun 14:08:44 ntpdate[7904]: adjust time server 133.100.9.2 offset 0.135138 sec
Write to trigger.

と返す。

自動で時計合わせ

当然、手動で合わせるのはメンドくさいので、ネットワーク接続時に自動で ntpdate を実行するようにする。

CFカードの制御は /etc/pcmcia/ 以下のスクリプト群によって行わる。

今回は、無線 LAN カードがネットワークに接続したときに実行したいので、 /etc/pcmcia/network の case "$ACTION" in 'start') の最後に ntpdate を実行 してやれば良い。

〜省略〜
    start_fn $DEVICE
        /usr/bin/ntpdate clock.nc.fukuoka-u.ac.jp
    ;;
〜省略〜

わざと時計をずらしておいて、CF の Wirelress LAN を繋げた時に、時刻がちゃん となれば成功。


▲Zaurus Top | ↑Up(設定・システム) | ←Prev(ディレクトリ構造一覧) | →Next(ipkg の構造と無理インストール)


近藤靖浩