
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行目の♯のコメントを消すだけです。 これで自動で立ち上がります。
こちらのページも参考にさせていただき、Nextionディスプレーも出来るようになりました、有難うございました。
JH1NJNさん、
おめでとうございます。少しでもお役に立てて光栄です。今後もこのサイトをよろしくお願いします。