2019年1月7日月曜日

新ゲートウェイ管理者向け ラストハード表示アプリ(C/PHPとD-STARを勉強する)

Back


  D-STAR リピータも年が明けて、155ヶ所ほどが新ゲートウェイ採用となりました。今までのゲートウェイ(アイコム社製 dsgwd )は文字通り、コントローラ(ID-RP2C)とインターネットの間に入ってRF側とインターネット側の行き来を制御していました。
  今回はその機能として、JARL管理サーバのアドレス指定に、IPアドレスではなく名前(FQDN)として trust.d-star.info を指定するように変更され、これによって2台のサーバ(IPアドレスは違う)が一つの名前で参照され、安全性が向上しました。
  また、今まで UDP:40000 と言うポートに制限されていた、コールサインルーティングの復路も、ホールパンチ対応となり、往路が使用したポートを使って戻ってくるように仕様変更されました。ターミナル/アクセスモードでの 40000 ポート制限も、この方法で間もなくクリアされると思います。

その他に特筆すべきは、今回のプログラム構成の大きな変更です。図のようにコントローラとゲートウェイソフトの間に xchange と言う物が割って入っています。このためご存じのように各設定ファイルに、インターネット側、コントローラ側以外にローカルホストを使った橋渡しの設定が必要になりました。これらについては別途開設に委ねるとして、新設されたxchangeのポート分配機能を今回利用させて戴いて、ユーザサイド利用規程に則ったポート UDP:52000 から通信データを受信して、そのアクセス履歴(ラストハード)をWEB表示するようにしてみました。
ソフトウェアのダウンロード
ソフトウェアはあくまで、自分自身の勉強の為にC言語、PHPを使って書いてあります。著作権は保持していますが、CC-BY-NC-SA(クリエイティブ・コモンズ・ライセンス)に従って、自己責任で自由にお使いください。
  1. ゲートウェイサーバのCentOSでgit cloneします。

  2. # git clone https://github.com/ytodo/lastheard.git
    # cd lastheard
    # make
    

    これで、ラストハードをログへ出力するアプリ「lastheard」が作成されました。PHPのWEB表示プログラムはフォルダhtmlに同梱されています。

  3. httpd(apache2)を自動起動設定します。

  4. # systemctl enable httpd.service
    # systemctl start httpd.service
    

    再起動した時に、自動的に起動するよう設定した上で、手動で起動します。標準ではポート80でゲートウェイPCのIPアドレスをブラウザーで見るとテストパターンが見えます。

  5. ダウンロードしたアプリケーションを各フォルダーに置きます。

  6. # \mv lastheard /usr/local/bin
    # \cp -f html /var/www
    

    コマンドの mv と cp の前に付いている「\」は、エイリアスのお陰でコマンド通りの挙動にならないため、エイリアスをキャンセルするための物です。

  7. ラストハードアプリ自体の自動起動を設定します。

  8. # nano /etc/systemd/system/lastheard.service
    
      GNU nano 2.3.1        File: /etc/systemd/system/lastheard.service
    [Unit]
    Description = lastheard daemon
    After = xchange.service
    
    [Service]
    ExecStart = /usr/local/bin/lastheard
    Restart = always
    Type = simple
    
    [Install]
    WantedBy = multi-user.target
    

    ユニットファイルが作成できたら、自動起動を有効にします。

    # systemctl enable lastheard.service
    # reboot
    
    これで、立ち上がればブラウザーでラストハードが見られるはずです。カーチャンクしてみてください。

  9. 環境設定ファイルの編集をします

  10. # nano /var/www/html/conf/db.conf
    
      GNU nano 2.3.1        File: /var/www/html/conf/db.conf
    #
    #   D-STAR Dashboard configuration file
    #
    #   2018.12.22  Yosh Todo/JE3HCZ
    #
    
    # 自局設定
    RPTNAME=xxxx D-STAR GATEWAY --> 漢字も使えますがこのファイル自体をShift_JISで保存してください
    RPTCALL=JPnxxx A
    
    # LASTHEARD 行数
    LINES=10
    
    # リフレッシュ間隔(秒)
    INTERVAL=2
    
    # ヘッダーに表示するグラフィックスのファイル名
    # (名前は的下ですが、images に入れるファイルと一致させてください)
    #   ファイル形式はjpg gif png 幅400px 高さ200px程度
    #   ファイル容量 数十キロバイト推奨
    HEAD_PIC=header_picture.jpg
    
    # ヘッダー画像の左右/上下位置と繰り返し表示有無
    #   left/center/right  top/bottom  repeat/no-repeat
    PIC_POSx=right
    PIC_POSy=top
    REPEAT=no-repeat
    
    # バックグラウンドカラーの変更が出来ます。
    #   例 グリーン: #55AA55  名称標記も可能: white
    #   指定しない又は行そのものがない場合、規定値となります。--> シックなオレンジ
    
    BGCOLOR=
    
    

    設定値のイコール(=)前後はスペースを入れないでください。


Back


73
Yosh Todo/J E 3 H C Z

ご意見等は当ブログトップメニューページの「FORUM」リンクからお願いします。

2018年12月9日日曜日

Pi3/Pi Zero WのGPIOでPi-HATと送受信する

Back


Pi3 や Pi ZERO W で GPIO 接続型の無線用モデム(DVMEGA、MMDVM HS HATなど)や Nextionなどのディスプレイとデータを送受信出来るようにしようとする時、 今までの、Pi1/2等のように Bluetooth が搭載されていないタイプのものと設定が異なります。次のように変更してください。

$ sudo nano /boot/cmdline.txt
  GNU nano 2.7.4         File: /boot/cmdline.txt
#dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=60e09218-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=60e09218-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
太線部分を削除します。元の標記の上で [Ctrl]+[k]とするとその行が消えます。次に[Ctrl]+[u]とすると一旦消えた行が貼り付けできます。これをもう一度実行し、行を複写して置いて一行を編集し、元の行を # でコメントアウトしておくと便利です。

$ sudo systemctl disable serial-getty@.service
$ sudo nano /boot/config.txt
  GNU nano 2.7.4         File: /boot/config.txt
    :
    :  最終行に追加 ↓
dtoverlay=pi3-disable-bt

=MEMO= 上記以外のラズベリー又はOSバージョンの古いものについては次をご参照ください。
GPIO使用時のttyAMA0 に関する設定

Back


J E 3 H C Z / XLX047B

2018年11月30日金曜日

dmonitor & 専用Nextionディスプレイ

Back


  今年の末までに全国のリピータのゲートウェイソフトが新しくなり、周辺アプリケーションの構成も大きく変わります。
  今まで無線機(ユーザ側)からの電波を受けたリピータの受信機が、コントローラを経てゲートウェイPCからインターネットに繋がっていました。 つまり、コントローラ(ID-RP2C)の次に繋がるゲートウェイPC内の機能は、ゲートウェイソフト(dsgwd:アイコム社製)であった訳です。
  新システムに於いては、コントローラの次に繋がるゲートウェイPC内の機能は、D-STAR_xchangeアプリ(xchange:D-STAR委員会製)となり、その次がゲートウェイソフトとなります。 これらの詳細に付いては、「D-STAR リピータ・ゲートウェイ(dsgwd)のインストール(CentOS 7 対応)」をご覧戴くとして、次には大きな機能の追加が有りました。それが、multi_forward というアプリケーション(D-STAR委員会製)です。
  既存のゲートウェイの間に入った xchange から特定のポートを振ってもらい、通信内容が multi_forward に接続(リフレクタをお使いのユーザは同様にと考えてください)した、複数のユーザにポーリングされます。また、その接続しているあるユーザからの信号は、他のユーザと共に本流であるゲート越え・山掛け通信に割り込みます。つまり電波の届き得ないリピータの会話をワッチ出来るのみならず、そのリピータ配下の山掛け通信、そのリピータへエリアCQしてきたコールサインルーティングとも交信が可能となります。この接続に使用するユーザ側ソフトウェアが dmonitor です。(本記事のdmonitorインストールに関しては2018.10.15付けJARL D-STAR委員会発行の「dmonitor」を参照させて戴きました。



=MEMO= バージョン1.1に更新しました。
230件のリピータ読み込み、自局設定出来るようにしました。件数は現在のリピータ数からするとギリギリとなりますが、現在旧システムでしか動かすことが出来ないコントローラID-RP1が存在していて少し時間的余裕が有ること(現在新ゲートウェイ150サイト)、またNextion 2.4インチ 4MBタイプを使用しているためメモリーをフルに使用していること(グラフィックを使用せずテキストで対応)などの理由で、このタイプのNextionでは限界とご辛抱ください。(230件を越えてもエラーにはなりません。)なお、2.4インチタイプに16MBタイプもありますので、それで余裕を持たせグラフィックも使用したものにしようと注文中です。 (2019.01.03)
=MEMO= バージョン1.1 修正版をアップしました。
リピータの読み込み数が140軒以上になるとその分が読み込めない現象を修正しました。(2019.01.16)
ご意見・お問い合わせはこちらへお願いします。
D-STAR Network FORUM トピック:Nextion for dmonitor Ver1.1 リリース

準備するもの
  1. Nextion 2.4インチ(NX3224T024_011)ディスプレイ

  2. WEBブラウザ(PC又はスマホなど)を使用してコントロールする場合は不要です。 本記事後半の「Nextionを使用せずWEB cgi でコントロールする場合」をご参照ください。

  3. Raspberry Pi ZERO W 及び microSDカード(クラス10、8GB以上推奨)

  4. GPIO の②、⑥⑧⑩を使用しますが、ピンは必ずしも必要では有りません。また、大きさに問題なければB/B+タイプでも問題有りません。 ただし、ここではWiFi機能がオンボードであるとして説明します。

  5. Raspbian 最新版ダウンロード

  6. Index of /raspbian/images から最新版(最下部)を取得します。

  7. アイコム社製データ通信ケーブル OPC-2350LU

  8. アイコム社製ターミナル/アクセスポイントモード付き無線機


Rasberry Pi にOSをインストールし環境を整えます
  1. microSD にダウンロードした 201y-mm-dd-raspbian-stretch-lite.img を焼きます。

  2. Windowsマシンに Win32 Disk Imager 等をインストールして焼き付けます。

  3. Pi ZERO に使用する前に Pi B/B+で立ち上げて次の作業をして置くと便利です。

  4. 残念ながら、Pi ZERO にディスプレイやキーボードを接続出来る環境にあれば良いのですが、でないと次のように立ち上げ後すぐWiFiが接続出来るようにしておくか、USBタイプのLANアダプターを使うしかありませんが、いずれにしてもSSHを有効に出来なければ作業が出来ません。

    $ sudo systemctl enable ssh.service
    $ sudo systemctl enable wpa_supplicant.service
    $ sudo wpa_passphrase WARPSTAR-8FE884 0046D824FE72C
    network={
    ssid="WARPSTAR-8FE884"
    #psk="0046D824FE72C"
    psk=19f5f008061fd70d815cfa74377a73222e0e42df442f76225f73b30d9bd3fb18
    }
    
    wpa_passphrase の後は、ご自宅(又はスマホ等)の SSIDパスワード(13桁) です。

    上の結果を、wpa_supplicant.conf にコピーして自宅 WiFi に接続出来るようにしておきます。
    $ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
    
      GNU nano 2.7.4         File: /etc/wpa_supplicant/wpa_supplicant.conf
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    
    network={
            proto=RSN
            key_mgmt=WPA-PSK
            pairwise=CCMP
            ssid="WARPSTAR-8FE884"
            psk=19f5f008061fd70d815cfa74377a73222e0e42df442f76225f73b30d9bd3fb18
    }
    
    

  5. wlan0 を有効にするためのファイルを編集します。

  6. $ sudo nano /etc/network/interfaces.d/ifcfg
    
      GNU nano 2.7.4         File: /etc/network/interfaces.d/ifcfg
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    
    

    Raspberry Pi ZERO W に microSD カードを差し替えて電源を入れます。

  7. Pi ZERO W の GPIO と Nextion がデータを送受信できるようにします。

  8. $ sudo nano /boot/cmdline.txt
    
      GNU nano 2.7.4         File: /boot/cmdline.txt
    #dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=60e09218-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
    dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=60e09218-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
    
    太線部分を削除します。元の標記の上で [Ctrl]+[k]とするとその行が消えます。次に[Ctrl]+[u]とすると一旦消えた行が貼り付けできます。これをもう一度実行し、行を複写して置いて一行を編集し、元の行を # でコメントアウトしておくと便利です。

    $ sudo systemctl disable serial-getty@.service
    $ sudo nano /boot/config.txt
    
      GNU nano 2.7.4         File: /boot/config.txt
        :
        :  最終行に追加 ↓
    dtoverlay=pi3-disable-bt
    


dmonitorのインストール
  1. USBシリアルデバイスを認識できるようにする

  2. $ sudo nano /etc/udev/rules.d/99-serial.rules
    
      GNU nano 2.7.4         File: /etc/udev/rules.d/99-serial.rules
    SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="IDxxPlus", MODE="0666"
    

  3. aptインストール出来るようにリポジトリを構成

  4. $ cd /etc/apt/sources.list.d
    $ sudo wget –N http://app.d-star.info/debian/stretch/jarl.list
    
    $ cd /var/tmp
    $ sudo wget –N http://app.d-star.info/debian/stretch/jarl-gpg.key
    $ sudo apt-key add jarl-gpg.key
    

  5. インストールの実行

  6. $ sudo apt clean all
    $ sudo apt update
    $ sudo apt install dmonitor
    


Nextionディスプレイ表示プログラムのインストール
  1. まず、Nextion の画面やデータを表示するレイアウトイメージをWindowsマシンにダウンロードします。

  2. https://todo.vc/download/app/dmonitor/JE3HCZ_2.4_dmonitor_v1.1.zip
    https://todo.vc/download/app/dmonitor/JE3HCZ_2.4ud_dmonitor_v1.1.zip (上下反転タイプ)

    Windowsに、Nextionディスプレイ購入時、説明のある Nextion Editor がインストールされていれば、拡張子 .HMI の方を読み込み込んで編集できます。

    また、エディターが無い場合は、拡張子 .tft の方を、FAT32でフォーマットされたmicroSDにコピー(焼くのではなく通常コピーです)して、Nextion の下部スロットに差し込みます。 その上で電源5V(Raspberry GPIO の 2番(赤)6番(黒))を供給(実稼働時は8番(黄)10番(青)も必要)すると、イメージがメモリーに転送されます。 作業が済んだら、電源を切って microSD を抜いて置いてください。


    =MEMO= こちらも参考にして戴ければ幸いです。 MMDVMノード用、ネットワークモニター Nextion 2.4 「Nextion 表示用のグラフィックスをメモリーにアップロードする」

  3. 次は、Raspberryで、当方のサイトよりアプリを取得してください。
    (JE3HCZ_Nextion4dmonitor Coded by Yosh Todo/JE3HCZ [CC-BY-NC-SA])

  4. $ wget https://todo.vc/download/app/dmonitor/JE3HCZ_Nextion4dmonitor_v1_1.zip
    

  5. 解凍して各ファイルを所定のフォルダに配置してください。

  6. $ unzip JE3HCZ_Nextion4dmonitor_v1_1.zip
    $ cd JE3HCZ_Nextion4dmonitor_v1_1
    $ sudo chmod +x nextion
    $ sudo mv nextion /usr/local/bin
    $ sudo mv nextion.ini /etc
    $ sudo mv nextion.service /etc/systemd/system
    $ sudo mv nextion.timer /etc/systemd/system
    
    

  7. 自動起動を有効にします。

  8. $ sudo systemctl enable nextion.timer
    
  9. 環境設定ファイルを編集します。

  10. $ nano /etc/nextion.ini
    
      GNU nano 2.7.4                       File: /etc/nextion.ini
    ######################################################
    #                                                    #
    # dmonitor (Copyright(C) JARL D-STAR Committee )を #
    # 使用する時純正のWEBではなくNextion Display にて #
    # コントロールするようにするアプリです。             #
    #                                                    #
    #   名称: D*MONITOR の環境設定ファイル               #
    #                                                    #
    ######################################################
    
    # ターミナルモード: 個人コール、アクセスポイントモード: クラブコール
    STATION=JE3HCZ D
    
    自局設定してください。

  11. sudo reboot します。


Nextionを使用せずWEB cgi でコントロールする場合
JARLインストールマニュアルより転記します。
  1. 環境としてWEBアプリ apache2 をインストール

  2. $ sudo apt install apache2
    

  3. インストール後、cgi が実行できるように下記の設定をおこないます。

  4. $ sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
    

    $ sudo nano /etc/apache2/sites-available/000-default.conf
    
      GNU nano 2.7.4         File: /etc/apache2/sites-available/000-default.conf
    <VirtualHost *:80>
       :
       :
        #Include conf-available/serve-cgi-bin.conf 有効にする
       ↓
        Include conf-available/serve-cgi-bin.conf
    
    <VirtualHost>
    

  5. perl のインストールとweb 用モジュールのインストール

  6. $ sudo apt install perl
    $ sudo apt install CGI.pm
    
    $ sudo reboot
    

    Windowsマシンやスマホから、http://[Raspberry IP Address]/cgi-bin/repeater_mon を指定して使用します。 もちろんWEBでコントロールしてもNextionディスプレイのメイン画面には接続先、ラストハード等が同様に表示されます。


Nextion でのコントール方法
  • 起動直後の画面です。

  • 上部の <<>> はリピータリストの「最後のページ」、「最初のページ」へ移動します。 また D*MONITOR の文字は「システムコマンドのページ」へ移動するタッチボタンになっています。
    下部、STATUS AND LASTHEARD は2行ですが現在の状況と今カーチャンクした人のコールサインを表示します。初期は新ゲートウェイ導入リピータとして読み込んだ数を示しています。
  • >> をタッチしてリピータリストへ移動します。

  • 接続したいリピータを選択して、タッチします。メインページに戻って[LINK TO : JP1XXX A]の様に表示され、ステータスの行が一つ下へ送られ、上の行に[DMONITOR START V00.19]の様に表示されます。
    移動には最上部の文字がボタン代わりになります。[Multi]: 戻る、[Forwarded]: メインへ、[Gateway]: 次ページへ
  • システムコマンドが実行できます。

  • Restart はこのNextion用プログラムをリスタートします。
    Reboot は Raspberry自体を再起動します。
    Shutdown は RaspberryのOSを終了します。電源を切っても良い状態です。電源を切るまではNextionの表示は消えません。
    Return は単純にメインページへ戻ります。



Nextion と Pi Zero W のアッセンブル例
Nextion を分解し同サイズのアクリ板を作っておきます。ビス穴も合わせて開けます。 Nextion の裏カバーに2ヶ所、基盤パーツに干渉しない方の対角位置に3mmの穴を開け、短いビスでワッシャ2枚をスペーサにして Pi Zero W を取り付けます。 作っておいたアクリ板を、充分USBと電源コネクタを挿した時の隙間が空くように、スペーサを挟んで取り付ければ完成です。




Back



73 J E 3 H C Z/XLX047 B/C

2018年8月10日金曜日

D-STAR リピータ・ゲートウェイ(dsgwd)のインストール(CentOS 7 対応)

Back



=MEMO= dsgwdはアイコム株式会社の、xchange dprs dstatus multi_forward は安田OM(7M3TJZ)/ JARL D-STAR委員会の著作物です。 インストール及び設定に関する実務についてのみ今後の参考のために記載します。また手順に変更があれば随時、変更・追加致します。 (最終更新 2018.12.31
JARL D-STAR委員会リリースアナウンスはこちら ⇨ http://app.d-star.info/dsgwd.pdf
準備するもの
  • CentOS 7(2018年夏に於ける最新版 7.5:1804)のインストールされたLANカードを2枚持つPC

  • DD(バックアップイメージを取るなどに使用)コマンドを使用しなければ WiFiも可能と言う事ですし、USB-RJ45 変換アダプタの使用等も出来ますが、 サーバーとしての安定性を考慮すると上述の仕様をお勧めします。

  • JARLレポジトリを利用するための準備

  • CentOS 6 の32ビット、64ビット版、及び CentOS 7 の32ビット版、64ビット版について、2018.09.20現在利用可能です。

    次の準備をして、次項のインストールへ
    # yum install wget -y
    # cd /etc/yum.repos.d
    # wget -N http://app.d-star.info/rpm/yum/jarl.repo
    
    /etc/yum.repos.d ディレクトリ内に jarl.repo と言うファイルがダウンロードされます。


dsgwd 及び D-STAR X-change関連ソフトのインストール
  1. 64ビットOSの場合以下のファイルが足りないと言うメッセージが出る場合が有ります。

  2. 64ビット版のみ
    # yum install libc.so.6 libpthread.so.0
    

  3. JARLレポジトリからインストールする

  4. # yum install -y deltarpm
    # yum install dsgwd-jp dprs xchange dstatus multi_forward
    
    dsgwdはdsgwd-jp と指定します。dxchangeは dprsxchangedstatus という3つのプログラムに分かれました。 また、multi_forward というアプリケーションが追加されています。
    deltarpm は dstatus に必要なソフトです。インストール済みならこのコマンドは不要です。

    dsgwdは、インストールのみで自動立ち上げスクリプトも生成され、環境設定ファイル dsgwd.confは /etc に配置されます。

    xchange、dprs、dstatus、multi_forward の設定ファイルは次のフォルダに入りますので、ファイル名を変更します。(元ファイルは残します。)
    # cd /opt/dstar/conf/
    # cp xchange.conf.org xchange.conf
    # cp dprs.conf.org dprs.conf
    # cp dstatus.conf.org dstatus.conf
    # cp multi_forward.conf.org multi_forward.conf
    


それぞれの設定ファイルを編集

    =MEMO= 今回の xchangedprsdstatusmulti_forward の3アプリケーションは 前回のdxchangeのように、dsgwd のアドオン的存在ではなく、xchange が dsgwd と ID-RP2C の間に割って入ります。 従って今までの 172.16.0.20 は dsgwd にではなく xchange に設定します。 それに伴って、dsgwd の設定は xchange に向かうためローカルループの 127.0.0.1 となります。 この様に、xchange dprs dstatus multi_forward をセットアップする時は下記の dsgwd.conf も大きく設定が変わります。

  1. dsgwd.conf の編集

  2. # yum install nano -y       (好みです)
    # nano /etc/dsgwd.conf
    
      GNU nano 2.3.1                    File: /etc/dsgwd.conf
    #
    # dsgwd.conf
    # Configuration file for D-STAR GW-Server Daemon
    # (C) 2004-2017 Icom Inc. Revision 1.4 Beta
    #
    
    # --- Setting the following two parameters is mandatory. ---
    # Zone Repeater's Infomation
    ZR_CALLSIGN=[Repeater Callsign(モジュールA,B無し)]
    ZR_ADDR=127.0.0.1   #172.16.0.20から変更 xchange のGW_NICへ
    
    # --- Caution! Use the following parameters as they are. ---
    # --- Only when you need any customization,              ---
    # ---        please change the following parameters.     ---
    # Zone Repeater's Infomation
    ZR_PORT=20011
    ZR_SRCPORT=20100
    ZR_ETHIFNAME=lo     #ローカルループを指定
    GW_ZRPORT=20010
    
    # DNS Server
    DNS_ADDR=8.8.8.8    #管理サーバでネームサーバが稼働するまで(googleネームサーバ)
    
    # GateWay
    GW_ETHIFNAME=eth0   #CentOS7ではenp1s0のような標記に変更になりました。
    DEFAULT_GW=10.0.x.x #ルータのLAN側アドレスです。
    #GW_LOGINT=300
    #GW_VCPORT=40000
    #GW_VCSRCPORT=40002
    #GW_DTPORT=40001
    #GW_ZRPORT=20000
    
    # Kanri Server
    MGSV_ADDR=trust.d-star.info    #ドメインネームで指定
    MGSV_PORT=30001
    MGSV_LOGADDR=trust.d-star.info #ドメインネームで指定
    MGSV_LOGPORT=30000
    
    # GW connection
    #CON_WAIT_INTERVAL=2
    #CON_REFRESH_INTERVAL=300
    #CON_MAX_GW=50
    
    # LOG Infomation
    LOG_GWREG=1
    LOG_INVOICE=1
    LOG_INDATA=1
    LOG_OUTVOICE=1
    LOG_OUTDATA=1
    LOG_OUTNET=1
    LOG_GWVOICE=1
    LOG_GWDATA=1
    LOG_USERERR=1
    
    # END dsgwd.conf
    
    
    バージョン1.3からの1番目の変更点は MGSV_ADDR の ドメインネーム指定が可能となったことです。 これはJARL管理サーバの多重化に関連して、この FQDN で指定しておけばサーバの一部がトラブルを起こしても別のサーバがそれに取って代われると言う意味を持ちます。

    dsgwdにおけるその他の確認事項

    # nano /etc/rsyslog.conf
    
      GNU nano 2.3.1                      File: /etc/rsyslog.conf
                 :
                 :
    # ### end of the forwarding rule ###
    local0.*                        /var/log/dsgwd.log
    
    ファイルの最終行に一行追加されているかを確認してください。以前はこれを手入力していました。

    次に上記で指定したログファイルが存在するか確認します。
    # ls /var/log/dsgwd.log
    
    もし無ければ、ファイルの存在を確認できないためプログラムが立ち上がりませんので、空ファイルを作ります。
    # touch /var/log/dsgwd.log
    

    起動させてみます。

    # service dsgwd start
    

    # ps -e
            :
            :
     1226 ?        00:00:00 exec-gw-nonstop
     1230 ?        00:00:04 dsgwd
    
    
    上記のように立ち上がれば、一先ず完了です。


  3. xchange.conf の編集

  4. # nano /opt/dstar/conf/xchange.conf
    
      GNU nano 2.3.1                  File: /opt/dstar/conf/xchange.conf
    #
    #       Version V02.00 or later
    #       Satoshi Yasuda
    #       12 Aug. 2018
    #
    CALLSIGN=[Repeater Callsign]                    #例:JP1YYY 
    MODULE_NAME=[Repeater Callsign] [Module A又はB] #例:JP1YYY A
    DEBUG=1
    ZR_NIC=eth1             #CentOS7ではenp2s0のような標記に変更されています。
    ZR_ADDR=172.16.0.1      #新しくD-STAR X-change自体がコントローラと会話します。
    ZR_IN_PORT=20000
    ZR_OUT_PORT=20000
    GW_IN_PORT=20011
    GW_OUT_PORT=20010
    GW_NIC=lo               #dsgwd とローカルループで接続されます。
    MON_PORT=21000
    GW_ADDR=127.0.0.1
    HTTP_PORT=8080          #xchange管理用WEBのポートです。変更出来ます。
    UPNP=1                  #上のポートは自動で開けられますが、手動にする時UPNP=0にします
    
    FORWARD=127.0.0.1:50000:dprs          #dprs へのポートです。
    FORWARD=127.0.0.1:50001:dstatus       #dstatus へのポートです。
    FORWARD=127.0.0.1:50002:multi_forward #multi_forward へのポートです。
    
    
    UPNP=1に依る自動設定をする時はルータのUPnPを有効にしてください。 又、UPNP=0で手動設定する時はルータのHTTP_PORTで指定したポートを開け、ゲートウェイPCまでフォワーディングしてください。

  5. dprs.conf の編集

  6. # nano /opt/dstar/conf/dprs.conf
    
      GNU nano 2.3.1                   File: /opt/dstar/conf/dprs.conf
    #
    #       Version V02.00 or later
    #       Satoshi Yasuda
    #       14 Aug. 2018
    #
    APRS_SERVER=d-prs.d-star.info:14580
    CALLSIGN=[Repeater Callsign]
    MODULE_NAME=[Repeater Callsign] [Module A又はB] 
    RADIO_ID=I
    SEND_INTERVAL=60
    AUTO_RELINK=1
    RETRY_COUNT=0
    BEACON_LAT=00.0000      #北緯(小数点表示)
    BEACON_LONG=000.0000    #東経(小数点表示)
    BEACON_COMMENT=D-STAR->APRS
    BEACON_INTERVAL=1200
    DEBUG=1
    MON_PORT=50000         #xchange からデータを貰うポートです。
    ACCEPT_TYPE=MIX         #Accept Type: GW, ZR, MIX
    
    


  7. dstatus.conf の編集

  8. # nano /opt/dstar/conf/dstatus.conf
    
      GNU nano 2.3.1                  File: /opt/dstar/conf/dstatus.conf
    #
    #       Version V00.79 or later
    #       Satoshi Yasuda
    #       10 Oct. 2015
    #
    MON_PORT=50001          #xchange からデータを貰うポートです。
    STATUS=jk1zrw.org:21050
    
    
    このアプリケーションの役割は、「dxchangeが稼働しているレピータのアクセス状況(暫定運用)」用のデータ収集です。

  9. multi_forward の編集

  10. # nano /opt/dstar/conf/multi_forward.conf
    
      GNU nano 2.3.1                  File: /opt/dstar/conf/multi_forward.conf
    #
    #   Version V00.79 or later
    #   Satoshi Yasuda
    #   10 Oct. 2015
    #
    DEBUG=1
    FORWARD_PORT=50002        #xchange からデータを貰うポートです。
    MULTI_CONNECT_PORT=51000  #ユーザが接続するポートです。(Hole Punch:ポートフォワード不要)
    
    
    このアプリケーションの役割は、別途リリース(2018.10.12現在テスト版)される dmonitor(Raspberry用)とターミナルモードに設定した無線機をUSB接続し、 dmonitorの機能で指定ポート51000へリフレクタのように接続することによって、コールサインルーティングではないリピータの利用(現在はモニタリングのみ) を目指すものです。



ゲートウェイ・サーバの自動起動

=MEMO= JARLアプリケーションに関してはアップデート(yum update xchange等)の後、 自動起動用 Systemd Unit Filedisable に戻りますので、再度有効にしてください。
=MEMO= 以下の設定において自動で立ち上がらないケースがあります。その場合起動のタイミングを遅らせると成功する場合が有りますのでこのセクションの最後(第9項)に追記しました。(2018.11.02) (2018.12.31)
=MEMO= 上記 MEMO 「自動起動のタイミング」については 第9項 その二 の方法が標準ファイルに記載されましたので12月31日以降調整する必要はなくなりました。参考として残します。 (2018.12.31)

  1. 自動起動用ユニットファイルの有効化

  2. # systemctl enable xchange.service
    # systemctl enable dprs.service
    # systemctl enable dstatus.service
    # systemctl enable multi_forward
    

    確認は
    # systemctl is-enabled [xxx.service]
    

    ファイルは /etc/systemd/system に有ります。属性は 755 にする必要は有りません。
    # cd /etc/systemd/system
    # chmod 644 xchange.service dprs.service dstatus.service multi_forward.service
    

  3. 前項までのインストールと準備が完了したら再起動します。

  4. # reboot
    

  5. 前項同様に、自動起動しているか確認をします。

  6. # ps -e
      717 ?        00:00:00 polkitd
      718 ?        00:00:00 irqbalance
      719 ?        00:00:01 dprs
      721 ?        00:00:00 dbus-daemon
      731 ?        00:00:01 xchange
      733 ?        00:00:00 NetworkManager
      743 ?        00:00:00 systemd-logind
      749 ?        00:00:00 crond
      753 ?        00:00:00 chronyd
      755 ?        00:00:00 kworker/3:2
      757 tty1     00:00:00 agetty
     1027 ?        00:00:00 tuned
     1029 ?        00:00:00 sshd
     1030 ?        00:00:00 rsyslogd
     1052 ?        00:00:00 exec-gw-nonstop
     1059 ?        00:00:00 dsgwd
     1434 ?        00:00:00 kworker/1:2
     1435 ?        00:00:00 kworker/1:1H
     1443 ?        00:00:00 dstatus
     1444 ?        00:06:04 multi_forward
     1445 ?        00:00:00 kworker/1:0
     1446 ?        00:00:00 sshd
     1448 pts/0    00:00:00 bash
     1462 pts/0    00:00:00 ps
    
    

  7. dsgwd のログを確認します。

  8. # tail /var/log/dsgwd.log
    
    ファイルの最後(最新)から10行表示します。連続して監視したい時は次のようにします。
    # tail -f -n30 /var/log/dsgwd.log
    
    ファイルの最後から30行を指定して表示、ログが排出される度に追加されます。

    Aug 26 11:08:39 localhost dsgwd[1054]: INFO - STARTUP dstar GW (C) 2004-2017 Icom Inc. Revision 1.4 Beta2
    Aug 26 11:08:39 localhost dsgwd[1054]: DEBUG - GW regist OK. Global IP = 211.333.99.999.
    Aug 26 11:08:40 localhost dsgwd[1054]: DEBUG - [LOG_GWREG]    Execute GW regist. (trust.d-star.info)
    Aug 26 11:08:40 localhost dsgwd[1054]: DEBUG - [LOG_GWREG]    GW regist OK. Global IP = 211.333.99.999.
    

    他にもログが存在します。
    # tail /dstar/log/log2
    

    [root@localhost ~]# tail /dstar/log/log2
    2018-08-08T10:09:13+0900 start
    2018-08-08T10:09:13+0900 end
    
    --- exec-gw-nonstop ---
    
    2018-08-08T10:10:31+0900 start
    
    --- exec-gw-nonstop ---
    
    2018-08-08T10:14:15+0900 start
    


  9. xchange のログを確認します。

  10. # tail /var/log/xchange.log
    Sat Sep  1 20:53:21 2018 D-STAR X-change (xchange) with ID-RP2C & dsgwd V02.01 (Aug 31 2018  20:28:06) Start
                             Linux 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018
    Sat Sep  1 20:53:21 2018 Word Size : 64
    Sat Sep  1 20:53:21 2018 NIC (enp2s0) Zone Repeater Monitor Port 21000 open.
    Sat Sep  1 20:53:21 2018 NIC (lo) Gateway Port in(from dsgwd):20011 out(to dsgwd):20010 open.
    Sat Sep  1 20:53:21 2018 NIC (enp2s0) Zone Repeater Port in(from ID-RP2C):20000 out(to ID-RP2C):20000 open.
    Sat Sep  1 20:53:21 2018 Forward Port 127.0.0.1:50000 open.
    Sat Sep  1 20:53:21 2018 Forward Port 127.0.0.1:50001 open.
    Sat Sep  1 20:53:21 2018 HTTP Port 8080 open.
    
    


  11. dprs のログを確認します。

  12. # tail /var/log/dprs.log
    Sun Aug 26 10:52:38 2018 D-STAR D-PRS (dxchange add on) V02.00 (Aug 22 2018  16:14:30) Start
    Sun Aug 26 10:52:38 2018 Error on config file : ACCEPT_TYPE
    Sun Aug 26 10:52:38 2018 Word Size : 64
    Sun Aug 26 10:52:39 2018 APRS Server Connected
    Sun Aug 26 10:52:39 2018 # logresp JPxYxx-IS verified, server DPRS01
    Sun Aug 26 10:52:39 2018 APRS Server (DPRS01) Verified.
    Sun Aug 26 10:52:39 2018 Beacon Sent
    Sun Aug 26 10:52:59 2018 # aprsc 2.1.4-g408ed49 26 Aug 2018 01:52:59 GMT DPRS01 157.7.138.120:14580
    Sun Aug 26 10:53:19 2018 # aprsc 2.1.4-g408ed49 26 Aug 2018 01:53:19 GMT DPRS01 157.7.138.120:14580
    Sun Aug 26 10:53:39 2018 # aprsc 2.1.4-g408ed49 26 Aug 2018 01:53:39 GMT DPRS01 157.7.138.120:14580
    
    


  13. dstatus のログを確認します。

  14. # tail /var/log/dstatus.log
    Sun Aug 26 11:00:41 2018 D-STAR X-change (xchange) add on status V00.00 (Aug 24 2018  20:57:59) Start
    Sun Aug 26 11:00:41 2018 Status Port jk1zrw.org:21050 open.
    
    


  15. multi_forward のログを確認します。


  16. =MEMO= この機能を利用してリピータに接続、 リピータでの通信がモニターできるアプリケーション(dmonitor)がRaspberry用に実験提供されています。 下記ログでは2件の dmonitor が接続されています。2018.10.11 追記
    Thu Oct 11 16:54:19 2018 D-STAR X-change (xchange) add on status terminated (Up : 1d23h 9m22s)
    
    Thu Oct 11 16:54:19 2018 D-STAR X-change (xchange) add on multi_forward V00.01 (Oct  2 2018  17:54:18) Start
                             Linux 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018
    Thu Oct 11 16:54:19 2018 Word Size : 64
    Fri Aug  3 16:10:22 4436 Monitor Port 51000 open.
    Fri Aug  3 16:10:22 4436 Hole Punch Port 30010 open.
    Thu Oct 11 16:54:20 2018 Connect from 202.171.147.58(63177)
    Thu Oct 11 16:54:20 2018 Connect from 221.118.142.70(19964)
    
    


  17. 自動起動のタイミングを調整する

  18. その一 一部を遅延

    サーバーのアップデート等の後リブートすると、サービスの一部が立ち上がってこない場合が有ります。 但しコマンド入力では立ち上がる場合、自動起動のタイミングが適切でないと考えられます。 この様な場合は起動を少し遅らせると正常に自動起動します。 multi_forward を例に説明したいと思います。

    先ず、multi_forward.service を無効にします。
    # systemctl disable multi_forward.service
    

    次に、同名で遅延ユニットファイルを作成します。(拡張子は .timer になります)
    # nano /etc/systemd/system/multi_forward.timer
    
      GNU nano 2.3.1                  File: /etc/systemd/system/multi_forward.timer
    [Unit]
    Description=multi_forward Start delay timer
    
    [Timer]
    OnBootSec=30sec
    #Unit=multi_forward.service
    
    [Install]
    WantedBy=timers.target
    
    

    ユニットファイルが完成したらタイマーを有効にします。(サービスは無効のままにします。)
    # systemctl enable multi_forward.timer
    # reboot
    

    [Timer]セクションで遅延時間を調整してください。また .service と .timer が同名の場合は Unit=... の記述は不要ですが、名前を変えたい場合は正しく記述してください。

    その二 全ての自動起動ファイルに一行追記し全調整する方法

    まず xchange.service をネットワークが立ち上がってから起動するようにします。
    # nano /etc/systemd/system/xchange.service
    
      GNU nano 2.3.1                  File: /etc/systemd/system/xchange.service
    [Unit]
    Description = xchange daemon
    After = network.target
    
    [Service]
    ExecStart = /usr/bin/xchange
    Restart = always
    Type = simple
    
    [Install]
    WantedBy = multi-user.target
    

    つぎに、dprs.servicedstatus.servicemulti_forward.service に以下、dprsの例と同じ変更を加えます。
    # nano /etc/systemd/system/dprs.service
    
      GNU nano 2.3.1                  File: /etc/systemd/system/dprs.service
    [Unit]
    Description = dprs daemon
    After = xchange.service
    
    [Service]
    ExecStart = /usr/bin/dprs
    Restart = always
    Type = simple
    
    [Install]
    WantedBy = multi-user.target
    

    以下がその結果です。
          :
     4185 ?        00:00:00 NetworkManager
     4207 ?        00:00:00 avahi-daemon
     4213 ?        00:00:00 chronyd
     4508 ?        00:00:00 sshd
     4509 ?        00:00:00 tuned
     4510 ?        00:00:00 xchange
     4511 ?        00:00:00 dprs
     4512 ?        00:00:00 dstatus
     4513 ?        00:00:00 multi_forward
     4518 ?        00:00:00 rsyslogd
     4526 ?        00:00:00 crond
     4527 ?        00:00:00 gdm
     4538 ?        00:00:00 exec-gw-nonstop
     4544 ?        00:00:00 dsgwd
          :
     


運用中の簡易管理とアプリケーションの更新
  1. 管理用モニタリングWEB

  2. http://[グローバルアドレス]:8080(ポートはxchangeで設定変更可)をサーバのIPアドレスへポートフォワードすれば見ることが出来ます。

    =MEMO= V02.03より、マニュアルでポートフォワードせずとも、uPnPを有効にしておくことで自動設定出来るようになりました。 事情によりマニュアル設定する場合は、xchange.conf の設定例を参照してください。 (2018/09/21)



  3. アプリケーションの更新

  4. # ls /etc/cron.daily/
    dprs  dstatus  logrotate  man-db.cron  multi_forward  xchange
    

    上記のように一日に一回のペースで自動的にアップデートがチェックされ、レポジトリに更新ファイルが存在すれば更新が実行されます。 WEBでは、リスタートされてカウンターがクリアされ、上部に表示されるバージョンがアップします。(2018.10現在 xchange はV02.04にアップしています。)

    もし、手動でアップデートしたい時は次のようにします。
    # yum update -y xchange dprs dstatus multi_forward
    
    同様に、dsgwd(アイコム社製)のアップデートが有った場合は、自動更新しませんので次のようにします。
    # yum update -y dsgwd-jp
    


Back




J E 3 H C Z/XLX047 B

2018年7月30日月曜日

D-STARゲートウェイ用CentOS 7.5のインストール

Back


 D-STARリピータが普及し始めてすでに10年以上経過し、当初使われていた CentOS 5 はサポート期間が終了し、CentOS 6 へのグレードアップは出来ません。 また、CentOS 6 も2020年までのサポートと一時しのぎとなります。CentOS 6.5 以上には CentOS 7 へのアップグレードツールが存在しますが、正式サポートが64ビット系のみと言うことで、 実質不可能です。
 左図をクリックして戴くと、正式版の CentOS 7.5(1804)64ビット版以外にも関連グループ(AltArchSIG)から CentOS 7.5(1804:i386)32ビット版がリリースされています。当然新規にPCを用意される方は64ビット版を使用することになりますが、ゲートウェイソフトの互換性等に付いては現在(2018年夏)検証中と思います。  
CentOS 7.5(1804)のISOイメージを準備
  1. 上図をクリックしてリンク先から必要なイメージをダウンロードします。

  2. 64ビットが必要な方は1番目の表から、32ビットが必要な方は2番目の表から i386 を選択します。

  3. オーソドックスな方法として DVD に焼きます。


CentOS 7.5 のインストール
  1. DVDを初期立ち上げディスクに指定して起動します。

  2. 現在使用しているPCを利用した場合、DVDをスキップしてハードディスクから旧OSが立ち上がってしまう場合があります。その時は BIOS 初期立ち上げメディアの指定を変更するか、メーカーによって違いますが[F12]等のファンクションキーを押してDVDドライブを指定するなど変更してください。

    通常は、ハイライトされている[Test this media & install CentOS ?]を選択しメディアチェックをした上でインストールを開始します。 すでに、メディアに問題がないと自信がある場合は、その上の[Install CentOS ?]をカーソルキーで選んで[Enter]してください。

  3. 言語を指定します。

  4. インストールに使用する言語を[日本語]に設定すると、キーボードも日本語に設定されます。

    ゲートウェイサーバなので日本語は不要という方はそのまま[English]で進んでください。 その場合、キーボードは日本語にしたい場合は、後ほど設定可能です。

  5. 続行(C)

  6. インストールの概要を確認する

  7. インストール先(D)]にエクスクラメーションマーク(びっくりマーク)が付いています。クリックして内容を確認します。 その後、[完了]を押すだけで、エクスクラメーションマークは消え[インストール開始(B)]ボタンがブルーに変わります。

    (右図から下へ3枚の画像)
    もし、パーティションを自分で構成したい時は[パーティションを自分で構成する(I)]を選択しておきます。(構成方法は省きます。)

    この状態で、インストール可能になっていますが、もう少しインストール前に出来るだけのことを設定しておきましょう。

  8. ソフトウェアの選択(S)

  9. 標準では[最小限のインストール]になっています。通常はこのモードでインストールします。 どうしてもGUIが必要な場合は[サーバー(GUI使用)]等を選んでください。

  10. ネットワークの接続をします。

  11. ネットワークとホスト名(N)]をクリックすると、LANカードが認識され eth0 と表示されていると思います。 ただし[オフ]になっていますので[オン]に切り替えます。

    さらに、右下の[設定]ボタンをクリックして[IPv4 のセッティング]タブにて、ゲートウェイの環境に合わせて設定します。

    Address 10.x.x.x 書式であるクラスAアドレス Netmask 255.0.0.0 (8と表示されます) Gateway 10.x.x.x 管理用ファイルにあるゲートウェイアドレスです。

    DNSサーバー 157.7.128.150
    2018年夏現在、JARL管理サーバ多重化中の仮サーバのアドレスです。

    eth1 のアドレスも設定します。
    Address 172.16.0.20
    Netmask 255.255.255.0 (24と表示されます)
    インストール時 eth1 が無い場合、インストール後に設定できます。(後述)




  12. インストールを開始します。

  13. インストール中にROOTのパスワードを設定します。

  14. 英大文字・小文字、数字、記号の組み合わせで充分に安全なパスワードを作成してください。

    また、常時ROOT権限でメンテナンスをしたくない場合は、適当な[ユーザーの作成]を行ってください。
  15. インストールが完了したらDVDを抜いて再起動します。

  16. インストールが終了すると、画面右下に[再起動(R)]の青いボタンが表示されます。DVDを抜いて再起動してください。 もし、DVDが取り出せない時は再起動後、DVDからのインストール画面に戻りますので、その時点でDVDを抜くことが出来ます。
    ログインプロンプトが現れたら次のステップに入ります。

インストール後最初にやっておくこと
  1. キーボードの変更を忘れた時

  2. localectl status
    localectl list-keymaps | ^us
    localectl set-keymap jp
    
    上から、状況を見る、usが先頭に着くキーボードリスト(list-keymapsだけならすべて)、日本語キーボードに設定となります。

  3. IPアドレスの設定を忘れた方には

  4. nmcli con modify enp1s0 ipv4.method manual ipv4.addresses 10.0.x.x/8 ipv4.gateway 10.0.y.y
    nmcli con down enp1s0 && nmcli con up enp1s0
    nmcli dev show enp1s0
    nmcli con modify enp2s0 ipv4.method manual ipv4.addresses 172.16.0.20/24 #gatewayは有りませんので設定しません。
    nmcli con down enp2s0 && nmcli con up enp2s0
    nmcli dev show enp2s0
    
    CentOS 7.5 では、eth0 => enp1s0、eth1 => enp2s0 になっています。netmaskの指定、/8/24を忘れないようにします。
    この時は次の処理も必要になるでしょう
    vi /etc/resolv.conf
    
    nameserver  10.0.y.y
    nameserver  8.8.8.8
    
    [Esc], [:], [wq]で保存します。

  5. Raspberryで nano に慣れすぎた方には

  6. yum install -y nano
    


  7. IPv6は要らないという方には、次のように最下部に追加します。

  8. nano /etc/sysctl.conf
    
      GNU nano 2.3.1               File: /etc/sysctl.conf
    # Disable IPv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    


  9. SELinux を無効化するため次のように最下部へ追加します。

  10. nano /etc/selinux/config
    
      GNU nano 2.3.1              File: /etc/selinux/config 
    # Disable SELinux
    SELINUX=disabled
    


  11. ファイアウォールを無効化します。

  12.  systemctl disable firewalld
    


  13. 時刻の自動更新をさせる

  14. # yum install chrony
    # reboot
    # date
    

  15. ifconfigやnslookupなどネットワーク関連のコマンドをインストールします

  16. yum install -y net-tools bind-utils
    


  17. SSHのポートを変更します。

  18. 標準でSSH ポート22 が開いていますが、Wellknownポートなので変更します。
    nano /etc/ssh/sshd_config
    
      GNU nano 2.3.1              File: /etc/ssh/sshd_config
    #Port 22
    Port 22222
    
    ポート22222は一例です。

  19. OSのアップデートを実行します。

  20. yum update -y
    


  21. 最終的に、再起動して全ての変更を反映させます。

  22. reboot
    

ここまで、OSのインストールに関して記しましたが、次はいよいよゲートウェイソフトウェアのインストールです。

Back


73
J E 3 H C Z/XLX047 B

2018年6月13日水曜日

JumboSPOTのファームウェア・アップデート

Back


  DMR(勿論D-STARも含むMMDVMすべて)を始めようとするとノード・デバイス(ZumSPOT,MMDVM HS hat,JumboSPOTなど)のファームウェア・アップデートが必要となります。


=MEMO= OSを新規にインストールした場合は、GPIO をシリアル通信出来るように設定変更する必要が有ります。 また、Pi3/Pi Zero W 等は Pi1/2 とも異なります。下記をご参照ください。
Pi3/Pi Zero WのGPIOでPi-HATと送受信する

ファームウェアのダウンロードサイト

  いろいろなデベロッパーが自身のMMDVMボードを開発すると同時にファームウェアも提供していますが、私はボード開発にも関わりつつ、各種ボード向けにファームウェアを提供している Andy CA6JAU のサイトからダウンロードしました。



      
  1. 上図をクリックすると、Git Hub のダウンロード画面が表示されます。次の図のようにグリーンのボタンをクリックし、URLをクリックボードにコピーします。



  2. Raspbery Pi のターミナル上で、コマンドに続いてURLを貼り付けます。nano の場合はカーソル(マウスカーソルではありません)をコマンドの後にスペースを空けて置き、マウスの右クリックをするとカーソル位置に貼り付きます。

  3. $ git clone https://github.com/juribeparada/MMDVM_HS.git
    

    コマンドが無いと言われた場合は、インストールしてください。

    $ sudo apt install git
    

  4. MMDVM_HS と言うフォルダが作成されますので、その中に入ります。ここではコンパイルの必要は有りません。

  5. $ cd MMDVM_HS
    $ ls
    ADF7021.cpp    DMRDefines.h     DStarRX.cpp    NXDNRX.cpp         SerialRB.h
    ADF7021.h      DMRDMORX.cpp     DStarRX.h      NXDNRX.h           SerialSTM.cpp
    bin            DMRDMORX.h       DStarTX.cpp    NXDNTX.cpp         STM32F10X_Lib
    BitRB.cpp      DMRDMOTX.cpp     DStarTX.h      NXDNTX.h           stm32f10x_link.ld
    BitRB.h        DMRDMOTX.h       GitVersion.h   obj_f1             stm32f4xx_link.ld
    bootloader.ld  DMRIdleRX.cpp    Globals.h      P25Defines.h       stm32f7xx_link.ld
    BUILD.md       DMRIdleRX.h      IOArduino.cpp  P25RX.cpp          Utils.cpp
    CalDMR.cpp     DMRRX.cpp        IO.cpp         P25RX.h            Utils.h
    CalDMR.h       DMRRX.h          IO.h           P25TX.cpp          version.h
    CalRSSI.cpp    DMRSlotRX.cpp    IOSTM.cpp      P25TX.h            YSFDefines.h
    CalRSSI.h      DMRSlotRX.h      LICENCE        README.md          YSFRX.cpp
    Config.h       DMRSlotType.cpp  Makefile       scripts            YSFRX.h
    configs        DMRSlotType.h    MMDVM_HS.cpp   SerialArduino.cpp  YSFTX.cpp
    CWIdTX.cpp     DMRTX.cpp        MMDVM_HS.ino   SerialPort.cpp     YSFTX.h
    CWIdTX.h       DMRTX.h          normal.ld      SerialPort.h
    Debug.h        DStarDefines.h   NXDNDefines.h  SerialRB.cpp
    
    

  6. さらに、その中に有る scripts と言うフォルダに入ります。

  7. $ cd scripts
    $ ls
    build_fw.sh                install_fw_gen_gpio.sh     install_fw_nanodv.sh
    install_buildtools.sh      install_fw_hsdualhat.sh    install_fw_nanohs.sh
    install_fw_custom.sh       install_fw_hshat-12mhz.sh  install_fw_rpi.sh
    install_fw_duplex_gpio.sh  install_fw_hshat.sh       install_fw_usb.sh
    install_fw_duplex.sh       install_fw_librekit.sh
    
    $ cd
    
    

      ここには、各種のボードに対応したファームウェア・インストーラが揃っていますが、今回使用するJumboSPOT用は、install_fw_hshat.sh です。確認が出来たら次のステップに移ります。

アップデートに必要なファームウェア書き込みソフトのインストール

  1. ファームウェアと同様のやり方で Git Hub から stm32flash をクローンします。

  2. $ git clone https://git.code.sf.net/p/stm32flash/code stm32flash
    

  3. フォルダの中に入り、コンパイルした上でインストールします。

  4. $ cd stm32flash/
    $ make
    $ sudo make install
    

      これで、インストール完了です。

最後の段階、アップデートを実行

  1. 最も大事なことは、MMDVMHost を前もって停止させておく事です。

  2. $ sudo systemctl stop mmdvmhost.service
    
    又は直接、
    $ sudo pkill MMDVMHost
    

  3. 先ほどのファームウェアアップデート用フォルダへ戻ります。コマンドの前に付いている[ドット][スラッシュ]はスクリプトを実行する時のおまじないです。

  4. $ cd MMDVM_HS/scripts
    $ ./install_fw_hshat.sh
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   609    0   609    0     0    670      0 --:--:-- --:--:-- --:--:--   670
    100 42152  100 42152    0     0  17542      0  0:00:02  0:00:02 --:--:-- 33453
    Raspberry Pi 2 or Pi Zero W detected
    stm32flash Arduino_STM32_0.9
    
    http://github.com/rogerclarkmelbourne/arduino_stm32
    
    Using Parser : Raw BINARY
    Interface serial_posix: 57600 8E1
    Version      : 0x22
    Option 1     : 0x00
    Option 2     : 0x00
    Device ID    : 0x0410 (Medium-density)
    - RAM        : 20KiB  (512b reserved by bootloader)
    - Flash      : 128KiB (sector size: 4x1024)
    - Option RAM : 16b
    - System RAM : 2KiB
    Write to memory
    Erasing memory
    Wrote and verified address 0x0800a4a8 (100.00%) Done.
    
    Starting execution at address 0x08000000... done.
    
    
    $ sudo reboot
    
    

      これでファームウェア・アップデートは完了です。

      ファームウェアのバージョンに関して表示する部分が無く、本当に最新か分からない(ソースの version.h では確認できるが)と思われるかも知れません。 スクリプトを nano で開くと、

      GNU nano 2.7.4                   File: install_fw_hshat.sh
    # Configure latest version
    FW_VERSION="v1.3.7"
    

    とあり、現時点での最新版をダウンロードしていることが分かると思います。


Back


73
J E 3 H C Z /XLX047 B

2018年6月9日土曜日

MMDVMノード用、ネットワークモニター Nextion 2.4

Back


Nextion Displayの実例
    モービル運用中、DMR から D-STAR に切り替えたい時、又 DMR 受信中他のトークグループに移りたい時などの送信タイミングが、無線機だけだと分かり難かったので(デスクトップならPi-Starでも良い)、Nextion 2.4インチで構成してみました。これで車内での操作がやり易くなります。



    実際車に固定しました。ダッシュボード上にと思っていましたが、もう少し近いとより視認性が上がるのと、電源の取り回しが隠せるのでハンドルポストの上にしました。マジックテープなのでメンテナンスも簡単!




    DVMEGA RaspberryPi Radio に USB接続で Nextion を取り付け、NextionDriver を経由させたモデルです。(2018.08.26 追加)
Nextionディスプレイの接続方法
  1. MMDVMの基板上に専用端子ホールが有る場合

  2. 端子を付けるか又は直付けにて Nextion のリード線を取り付けます。この時注意しなければならないのは次のように送信・受信をひねることです。

    Nextion側     MMDVM側
    +5V ---------- 赤線 ---------- 5V0
    TX   ---------- 青線 ---------- RXD
    RX   ---------- 黄線 ---------- TXD
    GND ---------- 黒線 ---------- GND


    =注意= 最近試された方からの情報では、JunboSpot側のピン配列が変更されており、 TX と RX が逆になっている(Nextion側と同順のストレート)そうです。写真の色だけで合わさず、シルク印刷をご確認ください。(JA3IVV局情報有り難うございました)  2018.11.30

    更に、この場合ケーシングによっては Nextion側、モデム側共に半田付けでと考えることも有りますが、この回路が接続されたままでは、USBシリアル変換でもmicroSDに依ってもスクリーンのアップデートが出来ませんので注意が必要です。必ずどこかで外せるようにしましょう。

    =MEMO=
     この時のMMDVM.ini(又は、Pi-Star)に於ける [Nextion] のポートは Port=modem です。


  3. GPIOに接続されているDVMEGAの場合

  4. 先ず必須なのがUSBシリアルコンバータです。

    図のように、ブルーのLEDが点滅している時が通信可能な状態です。


    =MEMO=
     この時のMMDVM.ini(又は、Pi-Star)に於ける [Nextion] のポートは Port=/dev/ttyUSB0(0でない時も有ります)です。
    $ ls /dev
    
    で確認してください。

    また、Pi ZERO W をご使用の場合はmicroUSB/Aタイプ変換アダプタ、又は省スペース型の場合両端 microUSB(TypeBオス)ケーブルmicroUSBシリアルコンバータが必要になるケースが有ります。
  5. GPIOにNextionを直結する場合

  6. モデム(DVMEGA+BlueStackなど)をUSB接続したPCがRaspberry Piで有るような場合、GPIOが空いていますので、写真の方向として下側、左から ⑩番ピン:RxD、⑧番ピン:TxD、⑥番ピン:GND、②番ピン:+5V となります。他の場合同様、Nextion の TX は、GPIO の RxD に入れます。

    =MEMO=
    DVMEGA RasPi Radioが装着されている場合、これらのピンに半田付け等で共用することは出来ませんのでご注意ください。


    この時のMMDVM.ini(又は、Pi-Star)に於ける [Nextion] のポートは Port=/dev/ttyAMA0です。

Nextion 表示用のグラフィックスをメモリーにアップロードする
  1. ITEAD STUDIO のホームページから Editor をダウンロード(左図をクリック)

  2. Windowsマシンにインストールします。データは拡張子HMIのファイルです。ここでは編集について詳しく述べませんが、Facebookの「NEXTION - HAM-Radio screens」に加入すると沢山サンプルが投稿されています。下記は私のデザインしたスクリーンですのでご自由にお使いください。(配布もかまいませんが、D-STAR,DMRしか表示確認しておりません。) JE3HCZ_2.4_Nection_v1.0_HMI
  3. 周波数の項目を編集してください。

  4. t20(指のカーソルで示したところ)のデータフィールド(表示枠)をクリックしてください。右下の[Attribute](属性)の内容をスクロールすると、[txt]と言う項目が有ります。ここをお使いの周波数に書き直してください。他の項目についてはそのままにして置いてください。
  5. 次に、図の赤枠で示したコンパイルを実行します。

  6. 一瞬で終了しますので、[File]➡[Open build folder]とクリックするとコンパイル後のファイル JE3HCZ_2.4_Nection_v1.0.tft が出来ています。これを、Fat32でフォーマットした 2GB から 32GB(以下)の microSDカードにコピーして、単体の Nextion に挿した状態で、赤黒2本のみで電源を投入するとアップロードされます。(microSDの性能等で上手く行かない時は次の方法で

  7. Nextion Editor から直接アップロード

  8. 上述の「Nextionディスプレイの接続方法」②のUSBシリアルコンバータが有る前提となりますが、これをPCに接続します。この時COMポートが新規作成されます。
    図のとおり[Upload]をクリックすると、自動でコンパイルされ、COMポートを選択するダイアログボックスが開きますので、分かっている場合はそのCOMポートを、不明の時は[Auto search]のまま[Go]してください。
    これで、リブートすればめでたくNextion にMMDVMの情報が表示されるはずです。

=蛇足=待機画面の日付表示を変更する
Nextion2.4の表示の内、待機画面の日付と時間の表示が dd/mm/yy 形式で 07/06/18など6月18日と読んでしまったり不便でしたので 2018.06.29 のように表示するようMMDVMHostの一部を変更しました。



$ cd MMDVMHost
$ nano Nextion.cpp

  GNU nano 2.7.4                       File: Nextion.cpp
#strftime(text, 50, "t2.txt=\"%x %X\"", Time);
strftime(text, 50, "t2.txt=\"%Y.%m.%d %X\"", Time);
713行目をコメントアウトして表示指定を変更したものを追加(又は変更)します。

$ make clean
$ make
した上で、

$ sudo mv MMDVMHost /usr/local/bin

$ sudo reboot
又は、
$ sudo service mmdvmhost restart
すると、表示が変わります。

Back



73
J E 3 H C Z /XLX047 B