2019年3月27日水曜日

Nextion ディスプレイのブラックスクリーン(スリープ)

Back


NextionDriverを使用して、JumboSPOT の modem ポートから表示させていますが、画面が真っ暗になることが多く発生するようになったので解決方法を探しているとき、下記の様な情報を戴きました。
(情報提供 JA4FCV局)

下記ファイルは、Pi-Starを使用していない時の、MMDVMHost 用設定ファイルです。Pi-Star を使われている方は、エキスパート・モードの mmdvmhost 編集画面で SleepWhenInactive の項目を「0」に設定します。
  GNU nano 2.7.4                         File: /etc/MMDVM.ini
   :
   :
#-------------------------------
[Nextion]
#-------------------------------
# Port=modem
# Port=/dev/ttyAMA0
# Port=/dev/ttyUSB0
Port=/dev/ttyNextionDriver
Brightness=50
DisplayClock=1
UTC=0
# Screen Layout: 0=G4KLX 2=ON7LDS
screenLayout=4
IdleBrightness=30

#-------------------------------
 Nextion Driver by ON7LDS
#-------------------------------
[NextionDriver]
Port=modem
# Port=/dev/ttyUSB0
LogLevel=2
DataFilesPath=/usr/local/etc/
GroupsFile=groups.txt
DMRidFile=stripped.csv
RemoveDim=0
SleepWhenInactive=0

# If NextionDriver uses Port=modem, set Enable=1 #
[Transparent Data]
Enable=1
RemoteAddress=127.0.0.1
RemotePort=40094
LocalPort=40095
SendFrameType=1
   :
   :



Back


J E 3 H C Z / XLX047 B

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= D*MONITORバージョン1.1に更新しました。
230件のリピータ読み込み、自局設定出来るようにしました。件数は現在のリピータ数からするとギリギリとなりますが、現在旧システムでしか動かすことが出来ないコントローラID-RP1が存在していて少し時間的余裕が有ること(現在新ゲートウェイ150サイト)、またNextion 2.4インチ 4MBタイプを使用しているためメモリーをフルに使用していること(グラフィックを使用せずテキストで対応)などの理由で、このタイプのNextionでは限界とご辛抱ください。(230件を越えてもエラーにはなりません。)なお、2.4インチタイプに16MBタイプもありますので、それで余裕を持たせグラフィックも使用したものにしようと注文中です。 (2019.01.03)
=MEMO= D*MONITORバージョン1.1 修正版をアップしました。
リピータの読み込み数が140軒以上になるとその分が読み込めない現象を修正しました。(2019.01.16)
=MEMO= dmonitor by JARL の最新版は V00.36 です。(2019.06.14)
バージョン00.24からRaspberry用のイメージがリリースされました。 ==> D-STAR技術情報
イメージを一旦焼いた後のアップデートは次のコマンドで可能です。
sudo apt update && sudo apt upgrade -y
ご意見・お問い合わせはこちらへお願いします。
D-STAR Network FORUM トピック:Nextion for dmonitor Ver1.1 リリース
実際にリピータへ接続しモニター及び交信するためのソフトの名称は、dmonitor by JARL D-STAR Commitee/7M3TJZ 安田OMD*MONITOR はNextion に表示するための別のソフトの名称です。

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

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

    現在 dmonitor が接続可能なリピータ数は200までで、4MBメモリーの Nextion 2.4 で230軒まで読み込めるようにしてありますが、拡張に備え16MBバージョンをご検討ください。

  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-pkg.key
    $ sudo apt-key add jarl-pkg.key
    

  5. インストールの実行

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

  7. インストール後のアップデートについて

  8. $ sudo apt update
    $ sudo apt upgrade -y
    
    通常の定期的な更新作業でdmonitorも自動アップデートされます。



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

  2. github.com のJE3HCZ_2.4_dmonitor_v1.1
    github.com のJE3HCZ_2.4ud_dmonitor_v1.1(上下反転タイプ)

    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で、githubの当方のサイトよりアプリを取得してください。

  4. 下記サイトを開き、最上部にある「最新版 [Latest release]」のZIPファイルのリンクの上で右クリックして[リンクのアドレスをコピー]してください。

    github.comのリリース版ページ

    wgetの後ろにスペースを一つ空けてURLを貼り付けます。(nanoではカーソルキーで位置決めして、マウス右クリック。バージョンは時期により変わります。)

    $ wget https://github.com/ytodo/nextion/archive/v1.1.2.zip
    

  5. 解凍してそのフォルダ内で、ソースをコンパイルします。

  6. $ unzip v1.1.2.zip
    $ cd nextion-1.1.2
    $ make
    

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

  8. $ 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
    

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

  10. $ sudo systemctl enable nextion.timer
    

  11. 環境設定ファイルを編集します。

  12. $ nano /etc/nextion.ini
    
      GNU nano 2.7.4                       File: /etc/nextion.ini
    ######################################################
    #                                                    #
    # dmonitor (Copyright(C) JARL D-STAR Committee )を #
    # 使用する時純正のWEBではなくNextion Display にて #
    # コントロールするようにするアプリです。             #
    #                                                    #
    #   名称: Nextion4dmonitor の環境設定ファイル        #
    #                                                    #
    ######################################################
    
    # ターミナルモード: 個人コール、アクセスポイントモード: クラブコール
    ### コールサインが8文字未満の場合、後ろにスペースを付け8文字にしてください。
    STATION=JE3HCZ D
    
    # 初期接続リピータ(指定しない時は=の後を削除してください。)
    DEFAULT_RPT=JL3ZBS A
    
    # リピータリスト書き込みタイミング調整(マイクロ秒/デフォルト10msec)
    ### 当方のテストではPi Zero で下記が最も良い数値(大きくても< 30000)
    SLEEPTIME=10000
    
    

    コメント行の記述に従って設定を行ってください。

  13. 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委員会の著作物です。 インストール及び設定に関する実務についてのみ今後の参考のために記載します。また手順に変更があれば随時、変更・追加致します。 (最終更新 2019.02.08
JARL D-STAR委員会リリースアナウンスはこちら ➡ http://app.d-star.info/dsgwd.pdf
新ゲートウェイシステム・フローチャートはこちら ➡ TODO Virtual Center
準備するもの
  • CentOS 7(2019年2月時点に於ける最新版 7.6:1810)のインストールされたLANカードを2枚持つPC

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

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

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

    次の準備をして、次項のインストールへ
    # 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 の設定ファイルは次のフォルダに入ります。
    # ls /opt/dstar/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       (好みです。サーバーGUI仕様ではインストール済みです。)
    # 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                #グーグル汎用DNS. 本来はDEFAULT_GWと同じ10.0.x.x
                                    #ですがネットワーク環境が変わっても訂正の必要が有りません。
    
    # 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:ポートフォワード不要)
    
    
    このアプリケーションの役割は、別途リリースされている dmonitor(Raspberry用)とターミナルモードに設定した無線機をUSB接続し、 dmonitorの機能で指定ポート51000へリフレクタのように接続することによって、コールサインルーティングではないリピータの利用を目指すものです。

    参考 ➡ dmonitor & 専用Nextionディスプレイ



ゲートウェイ・サーバの自動起動
  1. 自動起動用ユニットファイルの有効化

  2. 初期状態から有効に設定されていますが、次の確認の結果 disable無効なら、有効化します。
    # systemctl is-enabled [xxx.service]
    

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

    ファイルは /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
     :
     3691 ?        00:00:04 tuned
     3692 ?        00:01:23 xchange
     3694 ?        00:01:08 dprs
     3695 ?        00:01:06 multi_forward
     3697 ?        00:01:11 dstatus
     3698 ?        00:00:01 rsyslogd
     3711 ?        00:00:00 exec-gw-nonstop
     3716 ?        00:00:19 dsgwd
     3902 ?        00:00:00 httpd
     :
     :
    

  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. 標準仕様にて調整済みの方法

    まず 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
          :
     

    この時仮に、何らかの理由によって multi_forward が立ち上がらないとします。multi_forward.service ファイル内の After指定を After=dprs.service に変更します。 すると、multi_forward が dprs の後に立ち上がったりして調整できます。

    それでも調整できない時、一部を遅延

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

    先ず、multi_forward.service を無効にし、After行を削除します。
    # 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=... の記述は不要ですが、名前を変えたい場合は正しく記述してください。



運用中の簡易管理とアプリケーションの更新
  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のインストール

Back


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

=MEMO= 2019年2月現在 最新バージョンは CentOS 7.6(1810)です。

  1. 上図をクリックしてリンク先から必要なイメージをダウンロードします。

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

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


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

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

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

  3. 言語を指定します。

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

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

  5. 続行(C)

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

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

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

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


    キーボードの設定(日本語JISか英語ASCIIか)もここで行います。

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

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

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

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

    ルータがDHCPの設定になっていれば、図のように自動的にIPアドレスを取得します。次のインストール開始へ進んでください。

    =MEMO= ここではゲートウェイ環境のアドレス設定を行いませんがインストール完了後、インターネット側・コントローラ側共にまとめて行います。



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





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


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

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

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

インストール後最初にやっておくこと

=MEMO= サーバー(GUI使用)の状態でインストールした場合、下記のほとんどの追加コマンドは、すでにインストール済みです。
  1. キーボードの変更を忘れた時

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

  3. ゲートウェイ環境に合わせて IPアドレスの設定をします。

  4. 先ず、enp1s0(eth0:インターネット側)の設定をします。x.x や y.y の所を実際の環境に合わせてください。 また、DNS に就いてはルータのLAN側アドレスの他にグーグル汎用DNS である、8.8.8.8 を合わせて設定して置いてください。

    # nmcli con modify enp1s0 ipv4.method manual ipv4.addresses 10.0.x.x/8 ipv4.gateway 10.0.y.y ipv4.dns "10.0.y.y 8.8.8.8"
    # nmcli con down enp1s0 && nmcli con up enp1s0
    # nmcli dev show enp1s0
    

    コネクションを再起動(down & up)して、show で確認します。

    次に、enp2s0(eth1:コントローラ側)の設定をします。gatewayは有りませんので設定しません。

    # nmcli con modify enp2s0 ipv4.method manual ipv4.addresses 172.16.0.20/24 
    # nmcli con down enp2s0 && nmcli con up enp2s0
    # nmcli dev show enp2s0
    

    CentOS 7 では、eth0 => enp1s0、eth1 => enp2s0 になっています。netmaskの指定、/8/24を忘れないようにします。

    次のように resolv.conf の値を確認しておきます。

    # vi /etc/resolv.conf
    
    サーバー(GUI使用)でインストールした場合 nanoが入っています。
    # nano /etc/resolv.conf
    
      GNU nano 2.3.1               File: /etc/resolv.conf
    # Generated by NetworkManager
    nameserver 10.0.y.y
    nameserver 8.8.8.8
    search localdomain
    


    これらの設定は、TUI(簡易グラフィックモード)でも設定出来ます。

    # nmtui
    




  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