コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2015年3月9日 >>> 2015年3月9日
link もっと後

2015年3月9日

GPSは世界一正確な時計

GPSのレシーバーモジュールを買いました。Globalsat BU-353S4というUSB接続の製品で、Amazonで5,000円くらいです。

買った理由ですが、別に家の位置を知りたかったわけではなく、NTPサーバのクロック源にしてみたいと思ったからです。

NTPの時刻同期方法

NTPというのはPCやサーバの時刻を合わせるためのプロトコル(Network Time Protocol)のことです。NTPサーバとはNTPを使った時刻合わせの機能を提供するサーバのことです。

普通の人は公開されているNTPサーバを使うので、自分でNTPサーバは立てませんが、マシンがたくさんあるような場所(会社、学校など)では、全員が一気に公開NTPサーバにアクセスすると、NTPサーバの持ち主に迷惑(サーバがダウンしたり、回線が埋まって動作不能になる)になります。

NTPサーバの負荷分散
自分マシン1 <-- 同期 --+--> 自分NTPサーバ <-- 同期 --> 公開NTPサーバ
自分マシン2 <-- 同期 --+
...                     |
自分マシンn <-- 同期 --'

公開NTPサーバと同期させたネットワーク内の1台のみを自分NTPサーバとして、他のマシンは自分NTPサーバと同期させることで、公開NTPサーバに掛かる負荷を軽減させます。

ここでふと疑問に思ったのが、公開NTPサーバが無かったら、自分NTPサーバはどうやって正しい時間を取ったら良いの?ということです。

調べてみるとNTPサーバは様々な時計から、時刻を取得できる(NTPのクロックドライバのドキュメント)ようです。良くできてます。

その中でもGPSが割と接続も、設定も簡単そうだったので、試してみることにしました。

GPSとして使ってみる

買ってきたGPSモジュールをLinuxマシンに繋ぐと下記のようなメッセージが出ます。どうやらGPSモジュールはPCから見ると単なるシリアルポート /dev/ttyUSB0として扱われている(★1)ようです。

接続した際のLinuxカーネルログ
usb 4-2: new full-speed USB device number 2 using uhci_hcd
pl2303 4-2:1.0: pl2303 converter detected
usb 4-2: pl2303 converter now attached to ttyUSB0★1
usb 4-1: new full-speed USB device number 3 using uhci_hcd

シリアルポートに入力されてくる文字列を見ても意味不明なのでgpsdというソフトに意味を理解して貰います。gpsdを起動する前に、設定ファイルへ先ほどカーネルログに出ていたシリアルポートを指定します(★2)。

Debianでは /etc/defaultというディレクトリの下に設定ファイルが集まっていて、gpsdの設定ファイルもそのディレクトリにあります。

gpsdの設定ファイル /etc/default/gpsd

# Default settings for gpsd.
# Please do not edit this file directly - use `dpkg-reconfigure gpsd' to
# change the options.
START_DAEMON="true"
GPSD_OPTIONS=""
DEVICES="/dev/ttyUSB0" ★2
USBAUTO="true"
GPSD_SOCKET="/var/run/gpsd.sock"

設定が終わったら /etc/init.d/gpsd startとしてgpsdを起動します。何もメッセージが出なくて不安になる方は、ps ax | grep gpsdとして、起動しているかどうか見ると安心できると思います。

さらに、衛星との通信状況などグラフィカルに表示してくれるxgpsというナイスなソフトをインストールし、起動してみます。

xgps起動

apt-get install gpsd-clients

xgps

画面イメージは下記のようになりますが、室内かつ部屋の前には廊下があるせいか、ほとんどGPS信号を受信できていません……。


xgpsの動作イメージ

残るはNTPサーバの設定ですが、続きはまた今度。

編集者:すずき(2015/03/10 02:27)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2015年3月9日 >>> 2015年3月9日
link もっと後

管理用メニュー

link 記事を新規作成

<2015>
<<<03>>>
1234567
891011121314
15161718192021
22232425262728
293031----

最近のコメント5件

  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」
  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」

最近の記事3件

  • link 24年4月17日
    すずき (04/18 22:44)
    「[VSCodeとMarkdownとPlantUMLのローカルサーバー] 目次: LinuxVSCodeのPlantUML Ex...」
  • link 23年4月10日
    すずき (04/18 22:30)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linuxのstruct pageって何?Linu...」
  • link 20年2月22日
    すずき (04/17 02:22)
    「[Zephyr - まとめリンク] 目次: Zephyr導入、ブート周りHello! Zephyr OS!!Hello! Ze...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/18 22:44