FreeBSD 6.0-RELEASE の /usr/sbin/ntpd の refclock に NMEA を食わせようとしているのですが、うまくいきません。
/dev/cuad0 には NMEA 出力の GPS (GARMIN 15L)をつないであり、 ports/comm/jerm のようなシリアル通信ソフトでは ちゃんと NMEA センテンスが見えます。 ↓こんなん $GPRMC,071735,A,3636.8033,N,13959.4282,E,000.0,030.7,090306,007.4,W*6B そこで、 # cat ntp.conf pidfile /var/run/ntpd.pid driftfile /var/db/ntpd.drift server 127.127.20.0 fudge 127.127.20.0 time1 -1 # ls -l /dev/gps0 lrwxr-xr-x 1 root wheel 5 Mar 9 15:50 /dev/gps0 -> cuad0 こんな状況で # /usr/sbin/ntpd -c ntpd.conf とかやると ntpd が CPU を 100% 使い出します。 ktrace(1) してみると、 (1) /dev/gps0 を open(2) する。 (2) そのファイルデスクリプタを readfds にセットして select(2) すると、 1 が返る。 (3) そこで read(2) すると 0 bytes 読める。 (4) goto (2) と、(2)〜(4) を全力でループしているようです。 (ちなみにループしてる隣で、一度 jerm で /dev/cuad0 を読み出して上げると、 read(2) は 0 でない値を返し始めます) 何かアドバイス頂ければ幸いです。 神田敏広