▲Zaurus Top | ↑Up(設定・システム) | ←Prev(ディレクトリ構造一覧) | →Next(ipkg の構造と無理インストール)
(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 にトリガを与えれば良いらしい。
一応 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 の構造と無理インストール)