Raspberry 4 でNTPサーバ構築中

1. 準備材料

GPS受信機 シリアル出力タイプ(先バラ) みちびき2機(194/195)対応 1PPS出力付 GT-502MGG-N
https://akizukidenshi.com/catalog/g/g117980/

 耐熱通信機器用ビニル電線 2m×10色 導体径0.65mm 単芯
https://akizukidenshi.com/catalog/g/g108996/

熱収縮チューブ(スミチューブC 黒) Φ6×0.25×1m
https://akizukidenshi.com/catalog/g/g106790/

ケーブル用コネクター
https://akizukidenshi.com/catalog/g/g112160/

白光(HAKKO) ヒーティングガン 工業用ドライヤー 温度・風量可変タイプ FV300-81 & ノズル ヘラ型 62mm 幅広加熱 FV-300/FV-310用 N70-02
www.amazon.co.jp/dp/B09V87LX7H

2. 初期設定

2-1.Raspberry 各種設定

下記を参考にした。

【2025年最新版】モニターなしでRaspberry Piを初期設定する方法 | sozorablog
Raspberry Piを使い始めたいけれど、「モニターやキーボードがないからセットアップできない」と悩んでいませんか? 実はモニター・キーボード・マウスを使わずに、パソコンだけでRaspberry Piを初期設定する方法があります。設定が

https://qiita.com/rmatttu/items/90557a25e8da07a2e540
https://qiita.com/yamakenjp/items/e69eeabdefd9cc960610

2-2.タイムゾーン設定

sudo timedatectl set-timezone Asia/Tokyo

2-3. IP設定 (STATIC :参考)

下記の dhcp.conf を設定する形になるが、財団のドキュメントによるとあらかじめ、DNSサーバ側で予約をおこなった上で、設定を行うことが推奨されている。
なのでここでの記述はあくまでも参考情報としてください。

Just a moment...
sudo vi /etc/dhcpcd.conf

最終行に下記を追加(環境により適宜読み替えてください)

interface wlan0
static ip_address=192.168.0.239/24
static routers=192.168.0.254
static domain_name_servers=192.168.0.254

2-4.LED設定

sudo vi /boot/firmware/config.txt
dtparam=pwr_led_trigger=onesho

2-5.デフォルトエディタの変更

sudo update-alternatives --config editor

3. GPSモジュール組み立て

3-1.GPIO PIN配置の確認
pinout

J8:
   3V3  (1) (2)  5V    
 GPIO2  (3) (4)  5V    
 GPIO3  (5) (6)  GND   
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND   
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND   
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8 
   GND (25) (26) GPIO7 
 GPIO0 (27) (28) GPIO1 
 GPIO5 (29) (30) GND   
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND   
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

3-2. 配線

下記のようにRaspberry につなぐことにする。
Raspberry側の TXDO , RXDO と、受信機側の TXD, RXDの接続に注意である。

4.GPSモジュール
4-1.UARTの有効化
echo enable_uart=1 | sudo tee -a /boot/firmware/config.txt
echo init_uart_baud=9600 | sudo tee -a /boot/firmware/config.txt
4-2. Bluetoothを無効にする
echo dtoverlay=disable-bt | sudo tee -a /boot/firmware/config.txt
4-3.シリアルコンソールを無効にする
sudo sed -i 's/console=serial0,115200 //g' /boot/firmware/cmdline.txt
sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service
 4-4.PPSを有効にする
echo pps-gpio | sudo tee -a /etc/modules
echo dtoverlay=pps-gpio,gpiopin=18 | sudo tee -a /boot/firmware/config.txt
sudo shutdown -r now

5. GPSD

5-1パッケージのインストール
sudo apt update && sudo apt -y install gpsd gpsd-tools pps-tools
5-2.GPS受信確認
ls /dev/ttyAMA0

問題なければ下記を実行

sudo gpsmon -n /dev/ttyAMA0

6.Chronyインストール

6-1.インストール
sudo apt update && sudo apt -y install chrony
6-2.設定
sudo sed -i 's@pool 2.debian.pool.ntp.org iburst@pool ntp.nict.jp iburst minpoll 6 maxpoll 8@g' /etc/chrony/chrony.conf
sudo sed -i 's@sourcedir /run/chrony-dhcp@#sourcedir /run/chrony-dhcp@g' /etc/chrony/chrony.conf
echo refclock PPS /dev/pps0 lock NMEA refid GPS | sudo tee -a /etc/chrony/chrony.conf
echo leapsecmode slew | sudo tee -a /etc/chrony/chrony.conf
echo maxslewrate 1000 | sudo tee -a /etc/chrony/chrony.conf
echo smoothtime 400 0.001 leaponly | sudo tee -a /etc/chrony/chrony.conf
sudo systemctl restart chrony.service
chronyc sources -v

7.その他

7-1.CPU温度監視
 vcgencmd measure_temp
# temp=40.1'C

定期的にログに残すよう、cron 設定する。
下記を参考

https://mylinuxnoteblog.wordpress.com/2017/05/23/%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4%E3%81%AE%E6%B8%A9%E5%BA%A6%E3%82%92cron%E3%81%A7%E8%A8%98%E9%8C%B2%E3%81%99%E3%82%8B/

temp_recorder.sh

#!/bin/bash
 
date=(`date +"%m/%d"`)
time=(`date +"%H:%M"`)
temp=(`vcgencmd measure_temp`)
str=$date" "$time" "$temp
echo $str >> temp_log

実行権限付与

chmod 744 temp_recorder.sh
./temp_recorder.sh
cat temp_log #=> 05/23 06:12 temp=52.6'C
crontab -e

30分おきにログを書き込むよう cron に設定

*/30 * * * * ./temp_recorder.sh
電源ON/OFF まわり

Raspberry 4 はハードウェア電源スイッチがないので、GPIOで代用する。

4, 6, 8, 10 ,12 は利用中であるため、5, 9からリード線を引き出し、これを接触することで、電源ON/OFF の動作を行う。下記サイトを参考にした。
https://www.youtube.com/watch?v=L7qE9DVknFU

/https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa2h1dlpOVTd0aWZjb2JVT2ktNWtEYmZvc3dKUXxBQ3Jtc0ttUVN3Y205eG9rVlQ3bUdEaGt4TjBvVkM0ZTdhRlMxM0NiT21OZnpJM2VWb1BjNGxVcHRydlZpa1hiSEs5Q3VxbkU2TE1yUFVfaWYyVzVvMG5meWFwRktfU2xOeHRmX3h4NzJFc2VuYWtOLUNSN1E4TQ&q=https%3A%2F%2Fpinout.xyz%2Fpinout%2Fground&v=L7qE9DVknFU

sudo vi /boot/firmware/config.txt
# 2秒間接続することで電源OFFにする。
dtoverlay=gpio-shutdown,debounce=2000

コメント