NoraGateway再構築


NoraGatewayもどんどん進化し、ラズベリーパイZeroで動かすにはだいぶきつくなってきたようです。 先日交信の際に全く声になっていないよと言われ、ラズベリーパイZeroはやめて、ラズベリーパイ3Bで動かすことにしました。

どうせなので、今回はゼロから、つまりRaspbian OSのインストールから、NoraGatewayの再構築をやってみました。 今までも挑戦していましたが、うまく動かすことができなかった点を克服できましたので、ここに共有しておきます。

まずはRasbian OSのインストールです。 Noobsのサイトから最新版をダウンロードします。

https://www.raspberrypi.org/downloads/noobs/

Zipファイルをダウンロードしたらそれを解凍し、中身をMicro SDカードにコピーします。 イメージの焼き付けではなく単なるコピーですので気を付けてください。

コピーが終わったらラズベリーパイにMicro SDカードを入れてスイッチを入れて立ち上げます。

こんな感じでRaspbian OSのインストールが開始されます。 最初のこの画面ではRaspbian OSを選んでInstallをクリックします。

こんな感じでOSインストールが進みます。

最後にインストールの完了確認をすると再起動し、ネットワークへの接続設定とパッケージのアップデートするかどうか確認してきますので、ここで必ずネットワーク設定とパッケージのアップデートしておくことをお勧めします。

なお、ネットワーク設定はここで実施されますが、ラズパイのMicroSDカードの中の /etc/wpa_supplicant/wpa_supplicantを自分のWiFiネットワークに合わせて修正することもできます。 使う可能性のあるWiFiが複数ある場合は 下記のnetwork={   から  } までを複数書いておくと、見つけたNetworkで自動的にアクセスできます。

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="XXXnetwork"  ♯ネットワークID
psk="1234567890"  ♯ネットワークパスワード
key_mgmt=WPA-PSK  ♯セキュリティによっては入れない場合もある
}

また、port 40000をネットワークルータ側で通過させる必要がありますので、ラズベリーパイのIPアドレスを固定する方が良いと思いますので /etc/dhcpcd.conf を修正しておきます。 WiFiの場合は下記のような感じです。

# Static IP configuration:

interface wlan0
static ip_address=192.168.1.100/24  ♯ラズパイのIPアドレス
static routers=192.168.1.1  ♯ゲートウェイのIP アドレス
static domain_name_servers=8.8.8.8 ♯GoogleのDNS借りました

これでラズベリーパイはいつも同じIPアドレスでネットワークにつながるようになりました。 これをルーターで穴をあけたPort 40000に紐づけしておけば良いことになります。

先ほどOSインストール時にパッケージのアップデートは完了していますが、ラズパイのFWおよびパッケージのアップデートの仕方を書いておきます。

$ sudo rpi-update  #FWのアップデート
$ sudo reboot  ♯再起動
$ sudo apt update  ♯パッケージの更新リスト獲得
$ sudo apt dist-upgrade -y  ♯パッケージの更新
$ sudo apt-get autoremove -y  ♯不要File削除
$ sudo apt-get autoclean   ♯不要File削除
$ sudo reboot   ♯再起動

これでラズベリーパイの本体は完成と言いたいところですが、もう一つやる事があります。 私がハマったのはここでした。

最近のRaspbian OSの設定ではデフォルトのシリアルインターフェースがGPIO(ラズベリーパイ基盤上のピン)ではなくBlueToothになっているようですのでこれをGPIOに変更します。

/devを見てみると、下のように ttyAMA0 が serial1 に割り当ててあります。

この ttyAMA0 を serial0 に割り当てるために、下記の2つのことを実行します。

まずは /boot/cmdline.txtを見てみると、このようになっています。

console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

ここから console=serial0,115200  を消します。

次に /boot/config.txt  を見てみます。 ここに下記の1行を付け加えます。

dtoverlay=pi3-disable-bt  ♯追加

これで再起動して /devを見てみると

この通り ttyAMA0 が serial0に割り当てられました。 これでGPIOインターフェースが利用できます。

さてそれでは、MMDVMをラズベリーパイに取り付けます。

この後、NoraGatewayを入れていきます。

圏央道友会のサイトから、NoraGatewayの最新版をダウンロードします。 ラズパイの上でサイトにアクセスし、ダウンロードしたほうが楽だと思います。

https://kdk.ddns.net/kdk/index.php/10-noragateway/9-noragateway

NoraGateway for Windows/Linuxという名前のもので、頻繁にアップデートされていますので最新版をダウンロードします。 この記事を書いた時点で最新版はV0.1.5a

ダウンロードフォルダーにダウンロードされますので

$ sudo unzip NoraGateway_XXXXXX.zip -d /opt/   #XXXXXXはバージョン番号

$ cd /opt/NoraGateway   #Directory移動

$ sudo chmod 755 ./start.sh    #実行権限付与

ここからNoraGatewayのConfig Fileである /opt/NoraGateway/config/NoraGateway.xmlを作ります。

$ cd ./config
$ sudo cp NoraGateway.xml.default NoraGateway.xml   # defaultを.xmlとしてコピーして内容を修正

このConfig Fileで運用周波数やGate局名などを指定しますが、これは人によって違うので割愛しますが設定するのは

  • Gateway局名 コールサイン G
  • ラズパイの局名 コールサイン A  など登録済みのもの
  • 運用周波数
  • MMDVMのポート名、上記の通り進めるのであれば ttyAMA0 となります。
  • BlackListからREF001Cを外す  falseにする

こんな感じになります。 ラズパイの局名が ”JA1CTV A ” のようにAの後にスペースが入っているだけでもNGですので慎重に設定します。

これでNoraGatewayは下記のコマンドで起動できるはずです。

sudo /opt/NoraGateway/start.sh

しかし、毎回ラズベリーパイのスイッチオンの時にキーボードをつけて、この起動コマンドを送るわけにはいきません。 ラズベリーパイのスイッチオンでNoraGatewayを自動起動させるためには /etc/rc.local  というファイルの最終行の exit 0の前に、下記のように起動コマンドを記述しておきます

sudo /opt/NoraGateway/start.sh # これを追加

exit 0

次にHostファイルの自動アップデートもやるように設定しました。

Defaultの /opt/NoraGateway/update_hosts.sh  を少し変更し、SUで実行させます。

#!/bin/bash
WORK_DIR=$(cd $(dirname $0);pwd)
cd $WORK_DIR

sudo wget --no-check-certificate -O ./config/hosts.txt https://kdk.ddns.net/norahosts/hosts.txt

さらに

$ sudo chmod 755 /opt/Noragateway/update_hosts.sh

で実行権限を与えておきます。

後はこれをcronで定期的に実行すればHostがアップデートされます。 たとえば /etc/crontab に

0 * * * * root /opt/NoraGateway/update_hosts.sh

こんなのを書いておけば毎正時にアップデートしてくれます。

もう一つ、Jumbo SpotのOLEDに表示を出す方法です。 これは圏央道友会のページにある、「なんちゃってモニター」の設定方法を書いてあります。 これはJumbo SpotについているOLEDモニターにCPUの温度や使用率、どのサーバーに接続中かなどを表示するもので、結構楽しいです。 しかし、これも一筋縄ではいかないところもありました。 そのコツも記述しておきます。

圏央同友会のページ

https://kdk.ddns.net/kdk/index.php/10-noragateway/52-norananmon

ここからNoraNanMonをダウンロード。 Zipを解凍して/opt/NoraGateway/の下に入れます。 そしてNoraNanMonOLEDに実行権限を与えます

$ sudo chmod 755 NoraNanMonOLED

次は表示用のFontをインストールします。

$ sudo apt install fonts-ipafont

その後、先ほど設定した /opt/NoraGateway/config/NoraGateway.xml の設定ファイルの一部を修正します。 これは圏央道友会のページやNoraNanMonの同梱されているマニュアルにも記述がありますが、ModemTypeのところで下記のように修正します。

<TransparentEnable>true</TransparentEnable> #falseをtureに修正

もう一か所、NoraGateway.xmlの下の方にある下記パラメータも修正します。

♯ StatusInformationFileOutputServiceを有効にし、outputPathを/tmp/に設定する
    <StatusInformationFileOutputService enable="true" outputPath="/tmp/" />

ここでNoraNanMonOLEDを起動すれば動くはずなのですが、こんな感じでアラームがどっさり出ます。 orz

よく読むとどうもi2cが入っていないためのようです。 そこでi2cライブラリをインストールしてみます。

$ sudo apt-get install i2c-tools

すると、こんな感じで既にインストールされているようです。

Configができていないだけのようです。 下記コマンドで設定します。

$ sudo raspi-config

こんな画面になります。 ただこれはFWのバージョンで異なりますのでi2c設定を探してみてください。 私は下記のように進みi2cの設定を見つけて有効化しました。

Interface Optionを選択

I2Cを選択

I2Cインターフェースを稼働させます。

これで下記実行コマンドを打つと

$ sudo /opt/NoraGateway/NoraNanMonOLED r0 cpu t1.0 s4

こんな感じでOLEDにCPU温度やIPアドレス、アクセスしているReflector名が表示されます。

送受信時は自局や相手局のコールサインが出ています。

カッコイイです。

これもNoraGatewayと一緒にスイッチオンで立ち上がってほしいので、こちらは/opt/NoraGateway/start.shの中で設定します。

#!/bin/bash

WORK_DIR=$(cd $(dirname $0);pwd)
cd $WORK_DIR


sudo ./NoraNanMonOLED r1 cpu t1.0 s4 &   #ここの#を外して有効化
java -cp ./*.jar org.jp.illg.nora.NoraGateway $*

#java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=* -cp ./*.jar org.jp.illg.nora.NoraGateway $*

あらかじめスクリプトはありますので、上記の7行目の♯のコメントを消すだけです。 これで自動で立ち上がります。

 


JA1CTV
PC・デジモノの道

2件のコメント

  • JH1NJN

    こちらのページも参考にさせていただき、Nextionディスプレーも出来るようになりました、有難うございました。

    • JH0CJH

      JH1NJNさん、
      おめでとうございます。少しでもお役に立てて光栄です。今後もこのサイトをよろしくお願いします。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です