S_PB030551.jpg

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には電源と受信用アンテナだけがつながり、残りの全ての設定をリモートから操作するのが一般的だと思います。

WiFi設定

/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キーは都合ぼかしています。

20191103-001.JPG

IP固定設定

固定しないと、例えば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で開いた画像です。

20191103-002.JPG

その後ターミナル上でrebootします。

#reboot[ENTER]

RTL-SDRアプリのインストール

ターミナル上で

#sudo apt-get install rtl-sdr

を実行します。

RTL-SDRの設定

/etc/modprobe.d/rtlsdr-blacklist.conf に以下を記入します。

blacklist dvb_usb_rtl28xxu

blacklist rtl2830

blacklist dvb_usb_v2

blacklist dvb_core



ターミナル上でrebootします。

#reboot[ENTER]

SDRドングルのテスト

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

DireWolfのインストール~

ターミナル上からの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の編集

その次に/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の画像です。

20191103-005.JPG

direwolf.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"

だけです。

dw-start.shの編集

/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を開いた画像です。色はついていますが、書いていることは同じです。

20191103-003.JPG

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します。

rc.loaclの編集

/etc/rc.localを編集します。

/bin/sh /home/pi/dw-start.shを行頭の#が連続して終わったあたりに記入します。

下の画像はvimでrc.localを開いた画像です。

20191103-004.JPG

再起動

reboot

direwolfの起動確認

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のサーバーにログイン成功、パケットを送れているか確認します。

APRSサーバーのステータスを確認し、JE7JCX-10がログインしているか確認します。

WindowsPCのブラウザで

http://211.132.61.243:14501/
を確認し、JE7JCX-10が表示されていることを確認します。

そのまま動かして、ちゃんとサーバーへPBEACONを出しているか、aprs.fiのグラフで確認します。

実パケット受信確認

APRSハンディトランシーバーか、APRSモービル機で近所を歩き走ってちゃんと受信パケットをサーバーに送っているか確認します。

http://aprs.fiで奇跡が表示されるかどうかを見ます



20191103capture.JPG

ログファイル消去設定

なにげにラズベリーパイ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を開いた画像です。

20191103-006.JPG

新しく追加するときは最後の行をコピーペーストし、*.gzの表現を変えればOKです。

編集が終わったら念のため、

chmod +x log_del.sh

を行い、実行権限を付与してください。

WiFi切断対策

ラズベリーパイ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」までお願いします。

あっとは「@」に変えて送信をお願いします。


2019年11月3日記 JE7JCX



アマチュア無線

FrontPage


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS