DD-WRTでNTPサーバー

4 of 41234
openntpの場合。

インストール。インストール後スクリプトの実行が失敗したとメッセージ出るが、無視

opkg install openntpd

一旦エラーを出させた後、${IPKG_INSTROOT}/usr/lib/opkg/info/openntpd.postinstの一行目を

#!/bin/sh
↓
#!/opt/bin/sh

に変更して、再度okpg install openntpdを入力。これにより${IPKG_INSTROOT}/usr/sbin/ntpd (=busyboxへのリンク)が削除される。(これやらないと以後のopkgコマンド実行時に失敗したスクリプトの再実行を行いエラー→何もインストールできなくなる)

/etc/passwdにユーザーnetworkを追加
network::1001:1001:Network daemon,,,:/tmp/root:/sbin/reboot
設定ファイル/etc/ntpd.confの作成。
listen on 192.168.1.1
servers ntp.jst.mfeed.ad.jp
servers ntp.ring.gr.jp
driftファイルが書き込まれるフォルダを作成。
mkdir /var/db
確認のためデーモン化せずに起動。
/opt/sbin/ntpd -sd
以下のメッセージが出て終了してしまう場合、ntpd.confのサーバーアドレスを変える。理由は調べてませんが、IP v6をサポートするサーバーだとダメかもしれない(正しいなら将来不安だな)
 fatal: client_query socket: Address family not supported by protocol
問題無さそうなら、Ctrl+Cで終了。デーモンとして起動。
/opt/sbin/ntpd -s

[2013/2/17 追記] openntpdインストール時のエラー対策を追加。

[2013/2/17 追記] /etc/passwdが/tmp/etc/passwdへのリンクになっていて再起動でnetworkユーザーが消えてしまうので、起動スクリプトで対策(/opt/ect/init.dに入れる)。

[2013/3/2 追記] 起動スクリプト改良。電源On時に時計が1970/1/1になると修正量が大きすぎてopenntpdがエラーを出すので対策。

#!/opt/bin/sh

ret=1
until [ $ret -eq 0 ]
do
  /usr/sbin/ntpclient ntp.ring.gr.jp || /usr/sbin/ntpclient ntp.jst.mfeed.ad.jp
  ret=$?
done

sed -e '/^network:/d' /tmp/etc/passwd > /tmp/etc/passwd.new
echo 'network::1001:1001:Network daemon,,,:/tmp/root:/sbin/reboot' >> /tmp/etc/passwd.new
ln -sf /tmp/etc/passwd.new /etc/passwd

/opt/sbin/ntpd -s
4 of 41234

— posted by mu at 11:13 am   commentComment [0]  pingTrackBack [0]

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~ (QQ)

     

[X] [Top ↑]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0171 sec.
prev
2013.2
next
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28