JE7JCXです。
APRSのiGateを日本全国に増やしていきたいので、当局が日本で一番優しいと思われるラズベリーパイ3+RTL-SDRドングル+DireWolfで構築する受信専用iGate局の設定マニュアルを書いてみました。
これを行うにあたっては、ラズベリーパイ3がインストール出来て初期設定が終わった段階から始める内容で書いています。なので、sshとかbashだとかvimが多少使えないと、この内容はチンプンカンプンだと思います。
では頑張って始めましょー!
・ラズベリーパイ3 本体
・マイクロSDカード 16GBとか32GBとか。おそらくiGateやるだけなら16GBで大丈夫かと。
・ACアダプタ ラズベリーパイ3用
・ケースとヒートシンク 基板むき出しだと、金属物落としたらパチッてなって終わりますので。
・USBマウスとキーボード ラズベリーパイ3用では無くてもPCから一時借用でもOK
・HDMIケーブルかDVI→HDMI変換コネクタか、VGA→HDMI変換コネクタ
将来的にはマウスもキーボードもHDMI変換も使わなくなりますが。
・SDRドングル RTL2832Uとか書かれていれば動くと思います。
・アンテナ変換コネクタ 当局はMをBNCに変換後MCX-P/BNC-J変換ケーブルでUSBドングルにアンテナを接続しています。
・PC用モニタ
・WindowsPC あれば良いですね。設定その他が楽になります。
・LAN環境 無線LANでも有線LANでも構わないです。安定するなら有線LANでしょうけど、アンテナの位置などの制約を受けるとやはり無線LANのほうが取り回しが便利になると思います。
普通にOSをインストールする。
→これはネットを調べると、いくらでも例題が出てきます。
→言語設定から、タイムゾーンやキーボードやWiFi地域設定とかです。
インターフェースでsshを使う設定を忘れないでください。忘れても常にラズベリーパイ3の画面を見て設定する方は結構ですが、普通はラズベリーパイ3には電源と受信用アンテナだけがつながり、残りの全ての設定をリモートから操作するのが一般的だと思います。
/etc/wpa_supplicant.confに下記を追加。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="BuffaloG"←あなたの無線ルーターのSSIDを書いてください。
psk="XXXXXXXXXXXXX"←ここはあなたのルーターにアクセスするためのpskキーを書いてください。
key_mgmt=WPA-PSK
}
下はvimで開いたwpa_supplicant.confです。pskキーは都合ぼかしています。
固定しないと、例えばWindowsPCからsshでのアクセスとかしにくいので。
下記を追加します。
interface wlan0
static ip_address=192.168.11.11←付与したいipを書きます。
static routers=192.168.11.1←無線ルーターのipアドレスを書きます。
static domain_name_servers=192.168.11.1←無線ルーターのipアドレスを書きます。
これでWindowsPCからssh接続ができるようになりました。
下の画像は/etc/dhcpcd.confをvimで開いた画像です。
その後ターミナル上でrebootします。
#reboot[ENTER]
ターミナル上で
#sudo apt-get install rtl-sdr
を実行します。
/etc/modprobe.d/rtlsdr-blacklist.conf に以下を記入します。
blacklist dvb_usb_rtl28xxu
blacklist rtl2830
blacklist dvb_usb_v2
blacklist dvb_core
ターミナル上でrebootします。
#reboot[ENTER]
USBにSDRドングルを刺します。
その後ターミナルから下記を打ち、テストを実施します。
$ rtl_test -t
下記のメッセージが出れば認識されています。
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8
33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
Sampling at 2048000 S/s.
No E4000 tuner found, aborting
ターミナル上からのapt-get install direwolfのインストールでは、バージョンの古い方がインストールされるかもしれないので、gitでcloneし手動インストールします。
ターミナル上で
cd /home/pi
git clone https://www.github.com/wb2osz/direwolf
cd direwolf
make
そうしたら
Makefile.linux:270: *** /usr/include/alsa/asoundlib.h does not exist. Install it with "sudo apt-get install libasound2-dev" or "sudo yum install alsa-lib-devel" . 中止.
とasoundlib.hファイルが無いと怒られたので、
ターミナル上で
sudo apt-get install libasound2-dev します。
もう一回make
今度はいきました。
sudo make install
つぎは
make install-conf
です。
その次に/home/pi/sdr.confにコールサイン、APRSサーバーログインコードを書きます。
以下は私のsdr.confです。
#
# Sample configuration for SDR read-only IGate.
#
# We might not have an audio output device so set to null.
# We will override the input half on the command line.
ADEVICE null null
CHANNEL 0
MYCALL JE7JCX-10
# First you need to specify the name of a Tier 2 server.
# The current preferred way is to use one of these regional rotate addresses:
# noam.aprs2.net - for North America
# soam.aprs2.net - for South America
# euro.aprs2.net - for Europe and Africa
# asia.aprs2.net - for Asia
# aunz.aprs2.net - for Oceania
IGSERVER sapporo.aprs2.net←ネットを調べて近い場所のサーバーを書いてください。
# You also need to specify your login name and passcode.
# Contact the author if you can't figure out how to generate the passcode.
IGLOGIN JE7JCX-10 XXXXX←XXXXXには自分のパスコードを書いてください。
# That's all you need for a receive only IGate which relays
# messages from the local radio channel to the global servers.
下はvimで開いたsdr.confの画像です。
その次は\home/pi/direwolf.confの編集です。
私の場合書くのは
MYCALL JE7JCX-10
IGLOGIN JE7JCX-10 XXXXX
OBEACON sendto=IG DELAY=0:10 EVERY=30:00 OBJNAME=JE7JCX-10 SYMBOL=\& overlay=I lat=40^17.54N long=140^49.76E comment="RaspberryPi3 RX-Only iGate 144.66MHz 1.2kbps OP:Nara"
だけです。
/home/pi/dw-start.shを編集します。
書く内容は下記だけです。
rtl_fm -f 144.66M -p 20 -o 4 - 2>/var/log/direwolf/rtl_fm.log | direwolf -c /home/pi/direwolf.conf -t 0 -n 1 -r 24000 -b 16 - 2> /var/log/direwolf/error.log 1>/var/log/direwolf/output.log &
上の文章は、direwolfの実行と、ログファイルに書き出す設定を書いています。
vim上でdw-start.shを開いた画像です。色はついていますが、書いていることは同じです。
cd /home/pi/でsh dw-start.shを実行
ログファイルが作れないと言うエラーが出るので、ターミナル上で
mkdir /var/log/direwolfする。
chown pi:pi /var/log/direwolfします。
chmod 777 /var/log/direwolfします。
その次にターミナル上で
cd /var/log/direwwolfします。
ターミナル上でtouch error.logします。
ターミナル上でtouch output.logします。
/etc/rc.localを編集します。
/bin/sh /home/pi/dw-start.shを行頭の#が連続して終わったあたりに記入します。
下の画像はvimでrc.localを開いた画像です。
reboot
sshでログインし、ターミナル上でps aux | grep direwolfで起動しているか確認します。
root 542 11.4 0.5 123396 5516 ? Sl 20:13 18:51 direwolf -c /home/pi/direwolf.conf -t 0 -n 1 -r 24000 -b 16 -
と表示が出ていれば起動に成功しています。
APRSサーバーのステータスを確認し、JE7JCX-10がログインしているか確認します。
WindowsPCのブラウザで
http://211.132.61.243:14501/
を確認し、JE7JCX-10が表示されていることを確認します。
そのまま動かして、ちゃんとサーバーへPBEACONを出しているか、aprs.fiのグラフで確認します。
APRSハンディトランシーバーか、APRSモービル機で近所を歩き走ってちゃんと受信パケットをサーバーに送っているか確認します。
http://aprs.fiで奇跡が表示されるかどうかを見ます。
なにげにラズベリーパイ3のログファイルがどんどん増えていくので、一定期間で消す設定をします。
編集するファイルは
/etc/cron.daily/log_del.shです。←名前はなんでも良いです。
書く内容は、
#!/bin/bash
/usr/bin/find /var/log/ -name '*.log' -mtime +7 -delete
/usr/bin/find /var/log/ -name '*.old' -mtime +7 -delete
/usr/bin/find /var/log/ -name '*log' -mtime +7 -delete
/usr/bin/find /var/log/ -name '*.log.*' -mtime +7 -delete
/usr/bin/find /var/log/ -name 'messages' -mtime +7 -delete
/usr/bin/find /var/log/ -name '*.gz' -mtime +7 -delete
これで、ほとんどのログファイルが1週間で消えます。
下の画像はvimでlog_del.shを開いた画像です。
新しく追加するときは最後の行をコピーペーストし、*.gzの表現を変えればOKです。
編集が終わったら念のため、
chmod +x log_del.sh
を行い、実行権限を付与してください。
ラズベリーパイ3はWifiが切れるという巷の噂があるので、5分おきにルーターへアクセスし、切断しないような対策を講じます。
編集するファイルは
/home/pi/reconne_wifi.sh
です。
中身は
#!/bin/sh
ping -c 1 192.168.11.X←このipは各自のルーターのipで適選変えてください。
test $? -eq 1 && sudo /etc/ifplugd/action.d/action_wpa wlan0 up
編集が終わったら、
chmod +x reconne_wifi.sh
を実行し、実行権限を付与してください。
今度はそのファイルを5分おきに実行するため、
crontab -e
をタイプしcronファイルの編集を行います。
下記の1行を追加します。
※/5 * * * * sh /home/pi/reconne_wifi.sh 1&2 >> /var/log/cron.log
5分おきに実行し、結果を/var/log/cron.logに書き出す設定です。
ターミナル上でcrontab -lしてちゃんと保存されているのが確認できたら、
systemctl stop cron
systemctl start cron
あるいは、
systemctl reload cron
で設定のリロードでもOKかと思います。
できましたー!これでOKでーす!
晩酌しながら、これを打つのは大変でした。。。(涙)日本のアマチュア無線家でAPRSに興味のある局長さんがいらっしゃいましたら、これで安価なiGate設置をお願いします。ここまでで1万円かかっていませんので。
質問問合せ等は「valkyrieあっと10324.dip.jp」までお願いします。
あっとは「@」に変えて送信をお願いします。