Hack BBS

[全部のスレッド一覧][新規投稿][記事の削除・変更] [Home Page]

返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.2090】の中の記事をすべて表示しています

【No.2090】のスレッド
04/12/30(木) 21:37:51 投稿者[Junker] [No.2090]のスレッド内
【No.2090】 タイトル[時計の補正] この記事がスレッドの最初です
ntpd で synchronization lost しない様に adjtimex の
tick値を計算するスクリプトを見よう見まねで作ってみました。

再起動ごとに手作業で最適値を探したところ、decrementer freqency が
clock の設計値に対して 0.01% 近辺で tick値が 1 変動している様でした。

そこで、decrementer freqency のズレ分で、clock設計値時の tick値に
補正を掛ける様、以下の計算式にしました。(少数以下四捨五入)

int((( decrementer freqency / clock設計値 ) * 10076 ) + 0.5 )

当方では HG-LAN 黒箱 共に時間のズレがほぼ最小値になっています。
                    ( ntpd 非動作時 )
ntpd 動作時の lost は無くなりました。

スクリプトは次のコメントに記載します。

スクリプト実行時に、使用機種に合わせたパラメータが必要です。
  HG-LAN KURO-BOX/HG → HG
  H-LAN  KURO-BOX     → KURO

  起動例: /usr/sbin/adjtick.sh KURO

05/01/03(月) 02:40:25 投稿者[くんたん] [No.2090]のスレッド内
【No.2097】 タイトル[Re: 時計の補正] 【No.2090】に対する返信
こんにちは、

便利ですね、私のは玄箱ですが、一発でadjtimex のtick値が
決まります、この計算式を導き出すのは「至難の業」だったん
じゃないのでしょうか?

頭が、下がります。

わたしは、ずっと前のほうのスレッドに書いてあった、
サービスみたいに起動する方法のスクリプトに
組み込ませていただきました。

05/01/03(月) 20:23:55 投稿者[Junker] [No.2090]のスレッド内
【No.2100】 タイトル[Re: 時計の補正] 【No.2097】に対する返信
一番苦労したのは、補正率を算出するためのサンプリングですね。
tick 1個探すのに40〜60分。後半は30分くらいですが
サンプル数20個ほど。あとは計算だけですから。
計算式は3種類くらい作ったかな?

当初 tick_base は、計算から 10073 としたのですが、
たつやさんのページ http://linkstation.yi.org/ のBBSを参考に
10076 とする事でより正確になりました。 m(_ _)m

サービスの設定で一番簡単なのは、ntpdの起動スクリプトの
あたまに組み込んで実行してあげる事です。
ntpdを使えば freq の補正をしてくれるので、
もっと時計が正確になりますから。

04/12/30(木) 21:42:49 投稿者[Junker] [No.2090]のスレッド内
【No.2091】 タイトル[補正用スクリプト] 【No.2090】に対する返信
編集用のスペースが圧縮されて表示されるので、
見やすい様に編集して下さい。

#!/bin/sh
#
## name:adjtick.sh
##
## adjust tick for LinkStation & KURO-BOX
##
## warning: this script use "PPC" platform only
## Don't support HD-LAN series
## this script need "adjtimex"
##
## by Junker
#
#

case $1 in
"HG") tmp_freq_base=32.768000
tmp_tick_base=10076 ;;

"KURO") tmp_freq_base=24.576000
tmp_tick_base=10076 ;;

*) echo "SET type-code HG or KURO "
exit 0 ;;
esac


tmp_freq=`cat /var/log/dmesg | grep "decrementer frequency" | awk '{print $4}'`

tmp_tick=`awk < /dev/null 'END {t=int(((y/x)*z)+0.5);printf("%d\n",t);}' \
x=$tmp_freq_base y=$tmp_freq z=$tmp_tick_base`

echo " freq_base tick_base freq tick"
echo " " $tmp_freq_base " " $tmp_tick_base " " $tmp_freq " " $tmp_tick

adjtimex "-t" $tmp_tick

exit 0


05/01/15(土) 15:00:43 投稿者[よし ] [No.2090]のスレッド内
【No.2147】 タイトル[Re: 補正用スクリプト] 【No.2091】に対する返信
掲示板を拝見させて頂きました。

実は、補正スクリプトを使用して時計の補正を行おうとしましたが
「Command not found」になりました。

良かったら補正スクリプトの送付と導入方法など教えて頂けませんでしょうか?

まだまだ、初心者なので導入方法など詳しく教えて頂きたいです。
宜しくお願い致します。

05/01/17(月) 13:23:28 投稿者[Junker] [No.2090]のスレッド内
【No.2165】 タイトル[Re: 補正用スクリプト] 【No.2147】に対する返信
見落としておりました。m(_:_)m

コマンドが見つからないとのことですが、起動例どおりにコマンドを
入力したのでしょうか?

起動例では /usr/sbin に adjtick.sh という名前でスクリプトを
保存した場合の例ですので、コマンドをそちらでの保存先及び名前に
変えるか、起動例にあわせて保存して下さい。
(実行属性を付けるのを忘れずに)
adjtimex が見つからないのであれば /sbin/adjtimex として下さい。


簡単なスクリプトの利用方法としては、 /etc/rc.d/init.d/ntpd を
編集して、start() { と書かれた次の行に起動例のコマンドを挿入して
ntpd 起動時に一緒に実行する事です。

それから、すでにインストール済みとは思いますが、
adjtimex は必須ですのでよろしく。

最後に、大変申し訳ありませんが、当方としては個別でのファイル送付・
サポート等は考えておりません。当方も linux は初心者レベルですし、
vi chmod だけで使えるはずですから。
悪しからず。m(_:_)m

05/01/17(月) 21:58:41 投稿者[よし ] [No.2090]のスレッド内
【No.2169】 タイトル[Re: 補正用スクリプト] 【No.2165】に対する返信
>見落としておりました。m(_:_)m
>
>コマンドが見つからないとのことですが、起動例どおりにコマンドを
>入力したのでしょうか?
>
>起動例では /usr/sbin に adjtick.sh という名前でスクリプトを
>保存した場合の例ですので、コマンドをそちらでの保存先及び名前に
>変えるか、起動例にあわせて保存して下さい。
>(実行属性を付けるのを忘れずに)
>adjtimex が見つからないのであれば /sbin/adjtimex として下さい。
>
>
>簡単なスクリプトの利用方法としては、 /etc/rc.d/init.d/ntpd を
>編集して、start() { と書かれた次の行に起動例のコマンドを挿入して
>ntpd 起動時に一緒に実行する事です。
>
>それから、すでにインストール済みとは思いますが、
>adjtimex は必須ですのでよろしく。
>
>最後に、大変申し訳ありませんが、当方としては個別でのファイル送付・
>サポート等は考えておりません。当方も linux は初心者レベルですし、
>vi chmod だけで使えるはずですから。
>悪しからず。m(_:_)m
>

お返事ありがとうございます。

早速、下記の方法を行ってみました。

>起動例では /usr/sbin に adjtick.sh という名前でスクリプトを
>保存した場合の例ですので、コマンドをそちらでの保存先及び名前に
>変えるか、起動例にあわせて保存して下さい。

「adjtick.sh」の格納場所・・・「/usr/sbin/adjtick.sh」
実行コマンド・・・・・・・・・「/usr/sbin/adjtick.sh KURO」

実行コマンドの結果を下記の内容です。

[root@ sbin]# /usr/sbin/adjtick.sh KURO
freq_base tick_base freq tick
24.576000 10076 32.462144 13309
adjtimex: Invalid argument

これで正常起動でしょうか?
「adjtimex: Invalid argument」部分が正常でないような・・・

また、下記に「ntpq -p」の結果も記載しときます。

[root@ log]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
clock.nc.fukuok .GPS. 1 u 228 512 37 43.709 -1308.2 546.543
*ntp2.jst.mfeed. 210.173.160.86 2 u 228 512 37 24.373 -966.96 285.717
utsun.s.u-tokyo .STEP. 16 u - 512 0 0.000 0.000 4000.00
+raicho.rd.ecip. 133.1.193.242 3 u 227 512 37 34.090 -612.85 332.174
ryujin.center.w 150.99.100.26 2 u 229 512 37 36.535 -1307.8 548.082
+eagle.center.os 150.99.100.26 2 u 227 512 37 36.662 -970.97 286.145


☆確認事項☆

>簡単なスクリプトの利用方法としては、 /etc/rc.d/init.d/ntpd を
>編集して、start() { と書かれた次の行に起動例のコマンドを挿入して
>ntpd 起動時に一緒に実行する事です。

上記起動方法の再度確認ですが、「start() { 」の次の段落に
「/usr/sbin/adjtick.sh KURO」と入力すれば良いのでしょうか?



09/09/06(日) 03:45:52 投稿者[HsvsRsvsesv] [No.2090]のスレッド内
【No.5584】 タイトル[casino gambling] 【No.2169】に対する返信
none

05/01/18(火) 00:13:36 投稿者[Junker] [No.2090]のスレッド内
【No.2170】 タイトル[Re: 補正用スクリプト] 【No.2169】に対する返信
あのう、もしかして KURO-BOX-HG を使っています?
freq の値からすると HG 系だと思うのですが。

> freq_base tick_base freq tick
> 24.576000 10076 32.462144 13309

HG 系の場合はパラメータが "HG" ですので
/usr/sbin/adjtick.sh HG となります。

与えるパラメータが違うので、計算値が大きくなりすぎて
>adjtimex: Invalid argument
となるのだと思います。


>上記起動方法の再度確認ですが、「start() { 」の次の段落に
>「/usr/sbin/adjtick.sh KURO」と入力すれば良いのでしょうか?

これについては、次の段落というか、単純に次の行へ1行挿入です。
Vine 3.1 でもたぶん同じでいけると思いますが未確認です。


当方も一旦 3.1化したのですが、挙動不審だったのでやめました。
offset の値が変わらずに jitter だけ変動するとか。

それから、口うるさい事を言うようですが、
無意味な全文引用はやめた方が良いと思います。
本文が見づらくなってしまいますので。
よろしくお願い致します。m(_ _)m

05/01/18(火) 00:33:21 投稿者[よし] [No.2090]のスレッド内
【No.2171】 タイトル[Re: 補正用スクリプト] 【No.2170】に対する返信
色々とご指導ありがとうございました。

勘違いして「/usr/sbin/adjtick.sh KURO」で行ってました(@_@;)

「adjtimex: Invalid argument」も表示してないので、無事に稼動して
いると思いますので色々と様子を見てみます。