2024年8月20日火曜日

D-STAR リピータ・ゲートウェイのセットアップ(AlmaLinux)

Back


README
  • dsgwdはアイコム株式会社の、xchange dprs dstatus multi_forward は安田OM(7M3TJZ)/ JARL D-STAR委員会の著作物です。 インストール及び設定に関する実務についてのみ今後の参考のために記載します。また手順に変更があれば随時、変更・追加致します。 (最終更新 2024.8.24
  • 新ゲートウェイシステム・フローチャートはこちら TODO Virtual Center
  • 本ブログに関するご意見・お問い合わせはこちらへお願いします。   D*Star Network FORUM
  • 殆ど同じですが、CentOS での作業についてはこちらをご参照ください。


準備するもの
  • AlmaLinux(2024年8月時点に於ける最新版 9.4)のインストールされたLANカードを2枚持つPC

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

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

  • 現在AlmaLinux用のリポジトリーは作成されていませんので CentOS 7 のリポジトリーを利用しての暫定インストールとなります。従ってリポジトリーリストの変更を伴います

    この手順はアイコム(株)のテストによる情報がD-STAR委員会に提供されたものを参照しています。 また、今後リポジトリーの作成作業等によりアクセス出来ないことなども発生すると思われますのでよろしくお願いします。


    次の準備をして、次項のインストールへ

    #マークはrootのプロンプトです。userログインの場合は sudo を付けるか次のコマンドを実行してください。

    $ sudo su  ---> userログインの場合
    
    # dnf 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 と言うファイルがダウンロードされます。


    =MEMO= ここから Alma Linux用のリポジトリーが完成するまでの暫定処理。 専用リポジトリーが解説されれば jarl.repo ダウンロード後、すぐにインストールとなります。

    # nano jarl.repo
    
      GNU nano 5.6.1                          jarl.repo
    # jarl.repo
      :
    [dstatus]
    name=dstatus CentOS-$releasever $basearch
    baseurl=http://app.d-star.info/rpm/centos/$releasever/$basearch/
    enabled=1                 │
    gpgcheck=0                 └─> /centos/7/$basearch/ に書き換える
      :
    

    この$releaseverの所を、CentOS 7 のリポジトリーに特定するため、すべての行で 7 に書き換えます。

    次に、CentOS 7 向けのアプリケーション(dsgwd-jp)で必要となる環境とAlmaLinuxが提供する環境を合わせます。(ダウングレード)

    # dnf install initscripts
    # wget https://ftp.sakura.ad.jp/almalinux/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm
    # dnf install compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm  
    

    ここまで 暫定処理



dsgwd 及び D-STAR X-change関連ソフトのインストール
  • JARLレポジトリからインストールする

  • # dnf -y install dsgwd-jp dprs xchange dstatus multi_forward
    

    dsgwdはdsgwd-jp と指定します。dxchangeは dprsxchangedstatus という3つのプログラムに分かれました。 また、multi_forward というアプリケーションが追加されています。

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

    xchange、dprs、dstatus、multi_forward の設定ファイルは次のフォルダに入ります。

    # ls /opt/dstar/conf/
    


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

    =MEMO= 2019年からのシステムでは xchangedprsdstatusmulti_forward の各アプリケーションは、 xchange が dsgwd と ID-RP2C の間に割って入り、その他のアプリケーションは xchange からポートを貰って新機能を追加出来る形態となっています。 また、multi_forward は更にポートをユーザに公開して直接接続できるようにします。

  1. dsgwd.conf の編集

  2. # ifconfig		 ネットワークインターフェースの名前を確認
    # dnf install nano -y	(好みです。サーバーGUI仕様ではインストール済みです。)
    # nano /etc/dsgwd.conf
    
      GNU nano 5.6.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               # 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                 #ローカルループを指定
    
    # DNS Server
    DNS_ADDR=8.8.8.8                #グーグル汎用DNS. 本来はDEFAULT_GWと同じ10.0.x.x
                                    #ですがネットワーク環境が変わっても訂正の必要が
                                    #有りません。
    # GateWay
    GW_ETHIFNAME=eth0               #ifconfigで確認したとおり。テストではeno1でした
    DEFAULT_GW=10.0.x.x             #ルータのLAN側アドレスです。
    #GW_LOGINT=300
    #GW_VCPORT=40000
    #GW_VCSRCPORT=40002
    #GW_DTPORT=40001
    GW_ZRPORT=20010
    
    # 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
    
    

    大きな変更点は MGSV_ADDR の ドメインネーム指定が可能となったことです。 これはJARL管理サーバの多重化に関連して、この FQDN で指定しておけばサーバの一部がトラブルを起こしても別のサーバがそれに取って代われると言う意味を持ちます。

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

    # nano /etc/rsyslog.conf
      GNU nano 5.6.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. =MEMO= AlmaLinux では nmcli コマンドでインターフェースの名前を変更できますが、これはあくまで接続名で、デバイス名ではありません。 xchangeに設定する eth1 の代わりになるのはデバイス名です。従って nmcli ( ifconfig ) で表示される左端の名前を使用します。

    # nano /opt/dstar/conf/xchange.conf
      GNU nano 5.6.1                  File: /opt/dstar/conf/xchange.conf
    #
    #       Version V02.00 or later
    #       Satoshi Yasuda
    #       12 Aug. 2018
    #
    CALLSIGN=		#この2行は不要となりました。
    MODULE_NAME= 		#記載している場合は削除してください。
    DEBUG=1
    ZR_NIC=eth1             #テスト機ではenp0s20f0u11のような標記に変更されていました。
    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 へのポートです。
    FORWARD=127.0.0.1:50003:decho         #エコーサーバ へのポートです。(Option)
    

    UPNP=1に依る自動設定をする時はルータのUPnPを有効にしてください。 又、UPNP=0で手動設定する時はルータのHTTP_PORTで指定したポートを開け、ゲートウェイPCまでフォワーディングしてください。

  5. multi_forward の編集

  6. # nano /opt/dstar/conf/multi_forward.conf
      GNU nano 5.6.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:ポートフォワード不要)
    # HTTP_PORT=8081          #multi_forward管理用WEBのポートです。xchange用と同じになってはいけません。
    # UPNP=1                  #この機能はアプリ内で処理されるようになったためコメントアウト又は削除
    MAX_TIME=0                #dmonitor,ICOM DVリピータモニターで接続した場合の時間制限(sec 0:制限なし 2022.10.12更新)
    MAX_CONNECT=0             #dmonitor,ICOM DVリピータモニターで接続できる局数制限(0:制限なし 2022.10.12更新)
    

    =MEMO= このアプリケーションの役割は、別途リリースされている dmonitor(Raspberry用)とターミナルモードに設定した無線機をUSB接続(DVMEGA, DVAP, NodeAdapterV7は無線接続)し、dmonitorの機能で指定ポート51000へリフレクタのように接続することによって、そのリピータをZONE Repeaterとして山掛け運用や他リピータへのコールサインルーティングを提供する事を目指すものです。対象となる機能にICOM DVリピータモニターが追加されました。

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

  7. dprs.conf の編集

  8. # nano /opt/dstar/conf/dprs.conf
    
      GNU nano 5.6.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=                         #この2行は不要となりました。
    MODULE_NAME=                      #記載している場合は削除してください。
    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
    #HTTP_PORT=8082                   #dprs管理WEBを表示するとき使用します。
    
    


  9. dstatus.conf の編集

  10. # nano /opt/dstar/conf/dstatus.conf
      GNU nano 5.6.1                  File: /opt/dstar/conf/dstatus.conf
    #
    #       Version V00.79 or later
    #       Satoshi Yasuda
    #       10 Oct. 2015
    #
    MON_PORT=50001                    #xchange からデータを貰うポートです。
    STATUS=status.d-star.info:21050
    #HTTP_PORT=8083                   #dstatus管理WEBを表示するとき使用します。
    


  11. decho の編集

  12. この機能は必須ではありません。エコーサーバをリピータの機能として持たせたい時は次のように、先ず別途インストールしてください。 設定ファイルも同時にインストールされます。

    # dnf install decho

    # nano /opt/dstar/conf/decho.conf
      GNU nano 5.6.1                  File: /opt/dstar/conf/decho.conf
    #
    #   Version V00.01 or later
    #   Satoshi Yasuda
    #   2022/04/29
    #
    FORWARD_PORT=50003                #xchange への接続ポートです。
    ECHO_SERVER=JP1XXX A:JP1XXX Z     #リピータコール:サーバコール(通常Zを使用)
    ECHO_POSITION_SEND_INTERVAL=600   #秒単位でビーコンの間隔を指定
    #HTTP_PORT=8084                   #decho管理WEBのポートです。
    



ゲートウェイ・サーバの自動起動
  1. dsgwd の自動起動はインストール時に設定されます。

  2. # chkconfig
    dsgwd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

    コンソールモードでもGUIモードでも、自動的に起動されることが分かります。

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

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

    # systemctl enable xchange.service
    # systemctl enable dprs.service
    # systemctl enable dstatus.service
    # systemctl enable multi_forward
    # systemctl enable decho	# オプションです。エコーサーバを設置するときのみ
    

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

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

  6. # reboot
    

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

  8. # 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
     :
     :
    

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

  10. # tail /var/log/dsgwd.log
    

    ファイルの最後(最新)から10行表示します。連続して監視したい時は次のようにします。

    # tail -f -n30 /var/log/dsgwd.log
    

    ファイルの最後から30行を指定して表示、ログが排出される度に追加されます。

    Aug 20 15:05:06 localhost dsgwd[1072]: INFO - STARTUP dstar GW (C) 2004-2019 Icom Inc. Revision 1.41
    Aug 20 15:05:06 localhost dsgwd[1072]: ALERT - socket error: Network is down
    Aug 20 15:05:06 localhost dsgwd[1072]: ERR - Resolving hostname: trust.d-star.info -> Temporary failure in name resolution
    Aug 20 15:05:07 localhost dsgwd[1072]: DEBUG - [LOG_GWREG]    Execute GW regist. (trust.d-star.info)
    Aug 20 15:05:07 localhost dsgwd[1072]: DEBUG - [LOG_GWREG]    GW regist OK. Global IP = 211.333.99.999.
    

    他にもログが存在します。

    # tail /dstar/log/log2
    --- exec-gw-nonstop ---
    
    2024-08-20T11:36:05+09:00 start
    2024-08-20T11:36:11+09:00 end
    
    2024-08-20T11:36:17+09:00 start
    
    --- exec-gw-nonstop ---
    
    2024-08-20T14:54:07+09:00 start
    2024-08-20T14:54:13+09:00 end
    


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

  12. # tail /var/log/xchange.log
    Tue Aug 20 16:02:26 2024 D-STAR X-change (xchange) with ID-RP2C & dsgwd V02.40 (Aug 14 2024  18:04:08) Start
                             Linux 5.14.0-427.31.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Aug 15 14:47:52 EDT 2024
    Tue Aug 20 16:02:26 2024 Word Size : 64
    Tue Aug 20 16:02:58 2024 NIC (eno2) Zone Repeater Monitor Port 21000 open.
    


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

  14. # tail /var/log/dprs.log
    Tue Aug 20 15:27:14 2024 D-STAR D-PRS (xchange add on) V02.09 (Jan 19 2024  13:42:35) Start
                             Linux 5.14.0-427.31.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Aug 15 14:47:52 EDT 2024
    Tue Aug 20 15:27:14 2024 Word Size : 64
    Fri Dec 16 22:13:04 4458 HTTP Port 20203 open.
    Tue Aug 20 15:27:14 2024 APRS Server Connected
    Tue Aug 20 15:27:14 2024 # logresp JL3ZBS-IS verified, server DPRS01
    Tue Aug 20 15:27:14 2024 APRS Server (DPRS01) Verified.
    Tue Aug 20 15:27:14 2024 Beacon Sent
    Tue Aug 20 15:27:33 2024 # aprsc 2.1.19-g730c5c0 20 Aug 2024 06:27:33 GMT DPRS02 103.3.188.176:14580
    Tue Aug 20 15:27:53 2024 # aprsc 2.1.19-g730c5c0 20 Aug 2024 06:27:53 GMT DPRS02 103.3.188.176:14580
    Tue Aug 20 15:28:13 2024 # aprsc 2.1.19-g730c5c0 20 Aug 2024 06:28:13 GMT DPRS02 103.3.188.176:14580
    Tue Aug 20 15:28:33 2024 # aprsc 2.1.19-g730c5c0 20 Aug 2024 06:28:33 GMT DPRS02 103.3.188.176:14580
    


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

  16. # tail /var/log/dstatus.log
    Tue Aug 20 15:27:14 2024 D-STAR X-change (xchange) add on status V00.10 (Jan 20 2024  15:44:50) Start
    Tue Aug 20 15:27:14 2024 Status Port status.d-star.info:21050 open.
    


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


  18. =MEMO= この機能を利用してリピータに接続、 リピータでの通信がモニターできるアプリケーション(dmonitor)がRaspberry用に実験提供されています。 又、アイコム社からDVレピーターモニターが一部機種向けにファームウェアで提供されています。
    # tail /var/log/multi_forward.log
    Tue Aug 20 16:12:20 2024 D-STAR X-change (xchange) add on multi_forward V00.85 (Jan 20 2024  20:47:18) Start
    Tue Aug 20 16:12:20 2024 Error on config file : UPNP
                             Linux 5.14.0-427.31.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Aug 15 14:47:52 EDT 2024
    Tue Aug 20 16:12:20 2024 Word Size : 64
    Tue Aug 20 16:12:20 2024 Monitor Port 51000 open.
    Tue Aug 20 16:12:20 2024 HTTP Port 8081 open.
    Tue Aug 20 16:12:20 2024 upnp port 1900 open.
    Tue Aug 20 16:12:20 2024 Own IP address 10.2.2.10
    


  19. decho のログを確認します。

  20. # tail /var/log/decho.log
    Tue Aug 20 15:28:36 2024 D-STAR X-change (xchange) add on decho V00.15 (Jan 20 2024  17:10:41) Start
    Tue Aug 20 15:28:36 2024 HTTP Port 20205 open.
    Tue Aug 20 15:28:41 2024 Own IP address 10.2.2.10
    Tue Aug 20 15:28:41 2024 trust_sd opened
    


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

  22. 標準仕様にて調整済みの方法

    まず xchange.service をネットワークが立ち上がってから起動するようにデフォルト設定されています。
    # nano /etc/systemd/system/xchange.service
    
      GNU nano 5.6.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 5.6.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 5.6.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= マニュアルでポートフォワードせずとも、uPnPを有効にしておくことで自動設定出来るようになっています。 事情によりマニュアル設定する場合は、xchange.conf の設定例を参照してください。



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

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

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

    もし、手動でアップデートしたい時は次のようにします。

    # dnf update -y xchange dprs dstatus multi_forward decho
    

    同様に、dsgwd(アイコム社製)のアップデートが有った場合は、自動更新しませんので次のようにします。

    # dnf update -y dsgwd-jp
    


Back




J E 3 H C Z / REF047 C

2024年8月18日日曜日

D-STAR リピータ ゲートウェイ用 AlmaLinux のインストール

Back



 長年、D-STAR リピータ・ゲートウェイ用 OS として、愛用されて来た CentOS のサポート期間が終了を迎え、昨年辺りから次期 OS として AlmaLinux への以降が検討され始めました。 2024年に入ってテストサイトも増え、CentOS でのバージョンアップが出来なかった様な PC でもすんなりインストール出来るとの現実も踏まえ、各管理団体へも移行マニュアルを添え通知されました。
 そこで新たに手順を書き直しました。

 Gateway APP のインストール

(最終更新 2024.08.23)

AlmaLinux のISO イメージを準備

=MEMO= 2024年8月現在 最新バージョンはAlmaLinux OS 9.4 です。
  1. 上図をクリックしてリンク先から必要なイメージをダウンロードします。

  2.  ダウンロード  をクリックするとイメージリンクのページに移りますので、 完全なイメージが欲しい方は AlmaLinux OS 9.x DVD ISO を選んでください。 ただし、10GBほど有りますのでブルーレイディスク又は USBが必要で約2時間近く掛かります。

    手っ取り早く済ませたい方は、AlmaLinux OS 9.x Boot ISO を選択すると、インストール初期の設定が済むとその後の必要ファイルはインターネット経由で取得します。

    今回の手順は後者のブートイメージを、一覧の下に有る[ミラーサイトからISOをダウンロード]から取得してみました。(ダウンロードが速い場合が有るので)

    この時(右図)表示されているページの URL をメモ帳などでメモって置いてください。 インストール時、必要になります。
  3. USB にブートイメージを焼くにはツールが必要です。

  4. 私の愛用は Rufus です。 USBドライブを指定して、ISO イメージをアプリの上にドラッグ&ドロップするだけです。

AlmaLinux のインストール
  1. USB を初期起ち上げドライブに指定して起動します。

  2. 現在まで使用していたPCを再利用する場合、USB をスキップしてハードディスクから旧OSが立ち上がってしまう場合があります。その時は BIOS 初期立ち上げメディアの指定を変更するか、メーカーによって違いますが[F9]等のファンクションキーを押してUSBドライブを指定するなど変更してください。
    GRUB version 2.06
    ┌──────────────────────────────────────┐ │*Install AlmaLinux 9.x │ │ Test this media & install AlmaLinux 9.x │ │ Troubleshooting --> │

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

  3. 言語を指定して、[続行 (C)] をクリックします。

  4. インストールの設定をします。


    • 先ず[地域設定]は、先の画面で「日本」「日本語」を選択していればそれが反映されています。
    • [ユーザの設定]については、常に管理上 root でしか使用しないと言う場合は[rootパスワード(R)]で次のように設定します。

    root パスワード
    完了(D)
    システムの管理にはrootアカウントを使用します。rootユーザーのパスワードを入力してください。
    rootパスワード(R): ●●●●●●●●                
     ━━━━━━ ━━━━━━ ━━━━━━ ━━━━━━ --> グリーンになるまでした方が良い
    確認(C):      ●●●●●●●●                
    □ rootアカウントをロック
    ☑ パスワードによるroot SSH ログインを許可 -------> リモートでメンテナンスをするためには必ずチェック

      安全のためには、rootを無効にしたまま[ユーザーの作成(U)]をします。(推奨)

    • [ソフトウェア] では [インストールソース(I)] の設定が必須になります。
    インストールソース
    完了(D)
    使用するインストールソースを選択してください。
    自動検出したインストールメディア(A):
    デバイス: sda1
    ラベル: LABEL=ALMALINUX-9
    検証する(V)

    ネットワーク上(O):
    最寄のミラー▼
    ftp.riken.jp/Linux/almalinux/9.4/isos/x86_64
    プロキシーの設定(P)...

      ここまでに必要であったファイルが入っているUSBは選択せずネットワークのURLに、ダウンロードの際メモ帳などにメモって置いたURLを貼り付けます。
      画面上の例では「理研」(だと思います)のサーバーを設定しました。(実際これでインストール出来ています。)

      勿論、10GBをフルに保存してあるUSBを使用しているときは[自動検出したインストールメディア]を選択します。

      次はの設定はどんなサーバーにするのか、[ソフトウェアの選択]です。
      候補はたくさんリストアップされていますが、ゲートウェイの最小条件としては次のような組合せで良いと思います。

      ベース環境
      サーバー(GUI 使用)
      又はサーバー
      ルータ等のGUIメンテナンスが不要なら
      「サーバー」
      その他のソフトウェア
      Linux 向けリモート管理
      SSHによるリモートメンテナンスのため


    • [システム] では [インストール先(D)] を指定します。

    インストール先
    完了(D)
    デバイスの選択
    インストールするデバイスを選択してください。 なお、めいんめにゅーの「インストールの開始」ボタンをクリックしない限り、インストール処理は開始されません。

    ローカル標準ディスク
    476.94 GiB
    [ディスク画像]
    SK hynix XXX YYYYY999
    nvne0n1 / 2.3 MiB の空き
    29.81 GiB
    [USB画像]
    SanDisk Cruzer Fit
    sda / 1 MiB の空き

    特殊なディスクおよびネットワークディスク
    [画像]
    ディスクの追加(A)...


    ストレージの設定
    自動構成(U)     ○カスタム(C)
    □利用可能な領域を追加する(M)。
    暗号化
    □データを暗号化する(E)。

      ここで問題になるのは、ハードディスクやSSDの中にボリュームが存在しないときは上記2ヶ所を選択するだけで良いのですが、 今まで使用していた Windowsマシンまたは既存のゲートウェイPC の場合ボリュームやパーディションが存在します。(図の場合 2.3 MiB の空き)

      この場合は、[完了]をクリックすると、注意が表示されそのダイアログの中で「すべてのパーティションを削除」出来ます。 その上で「自動構成」を選択すればお任せ作業となります。

    • 最後に[ネットワークとホスト名(N)]のところで接続済みになっていることを確認してください。 通常DHCPが設定されているネットワークに接続していれば自動的に接続されます。指定のIPアドレスには後ほど設定します。


  5. いよいよメインメニューの右下に有る[インストールの開始]をクリックします。

  6. プログレス・バーが進んで行き、画面右下に下記の表示されたらインストールは完了です。

    AlmaLinux が正しくインストールされ、利用準備が整いました! 利用開始するにはシステムを再起動してください!


    システムの再起動(R)

ゲートウェイサーバとしての準備
    ログインプロンプトが表示されたら、パスワードを入力して無事 AlmaLinux が立ち上がりました。 例ではインストールの途中で root ではないユーザ(フルネーム:Gateway User / ID:gatewayuser)を作った前提で表示および説明をしていきます。 (必要に応じてrootになれます。又、rootしか作らなかった場合もコマンドで sudo を付けないで実行すれば同じです。)

  1. 準備作業の最初に折角 GUIモードなので、電源に関する設定をしておきます











  2. リモートした時に、
    スリープやサスペンド
    しないように設定します。
    画面上の[アクティビティ]で切り変わるメニューアイコン[9つの点のアイコン]から[ギヤアイコンの設定]、さらに[電源]と辿ります。

  3. GUIの場合、ネットワーク設定も至極簡単ですので、ここでやってしまいます。

  4. 上の設定は、この例ではUSB LAN インターフェースで繋いだネットワーク(コントローラ側)です。これは、どのリピータも同じ設定です。
    IPv4 のみ設定して、IPv6 は無効にします。また、画像では下方に隠れていますがルートは[自動]を OFF にしています。

    左の設定は、標準装備のRJ45 有線LAN(ルータ側)の設定です。
    こちらも IPv6 は明示的に無効にします。

    この作業をコマンドで行う方法は後述します。
    このまま、GUI でログインして、端末(Terminal)アプリで作業することも可能ですが、GUI はマシンによっては負担になることも有りますので最終的には、SSH でログインしてルータのブラウザーによるメンテナンスのような GUI を使う場合は、必要に応じて GUIモードを起ち上げる様に設定したいと思います。

    今後の作業はすべてターミナルモードで行えますので、ログインプロンプトが出ている状態(一旦ログアウト)で [Ctrl] + [Alt] + [F2 又は F3] を押すとキャラクターベースのモードに切り替わります。 [Ctrl] + [Alt] + [F1] で元のグラフィカルモードに復帰します。

    また、この状態ですでに SSH は使用可能です。但し、ウェルノウンポートの 22 ですので後ほど変更します。

  5. そのままログイン又は SSH でアクセスして gatewayuser を sudoers の設定に加え sudo 実行時毎回パスワードを必要としないようにします。

  6. $ sudo su			# Super User(つまりroot同様)になってみましょう
    
    あなたはシステム管理者から通常の講習を受けたはずです。
    これは通常、以下の3点に要約されます:
    
        #1) 他人のプライバシーを尊重すること。
        #2) タイプする前に考えること。
        #3) 大いなる力には大いなる責任が伴うこと。
    
    [sudo] gatewayuser のパスワード:********
    
    # _	
    
    これでrootと同じです。(ただし現フォルダは/home/gatewayuser のままなので注意)
    
    # nano /etc/sudoers		# viになれている方は visudo でOK
    gatewayuser     ALL=(ALL) NOPASSWD: ALL
      

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

  8. # nano /etc/ssh/sshd.conf
      GNU nano 5.6.1                /etc/ssh/sshd_config
    # If you want to change the port on a SELinux system, you have to tell
    # SELinux about this change.
    # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
    #
    Port 22222				# 初期値22から変更する
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::
      

  9. 本来は危険を増す行為なのでちゃんと穴開けすべきですが、SELINUXとfirewallを解除します。

  10. # systemctl disable firewalld.service
    # nano /etc/selinux/config
      GNU nano 5.6.1                 /etc/selinux/config
    #SELINUX=enforcing      		# コメントアウトして
    SELINUX=disabled			# Disabled に設定
    # SELINUXTYPE= can take one of these three values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected.
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
      

  11. ここで一旦 reboot します。

  12. 新しい SSH ポートでの SSHリモートが可能になります。
    SSHリモート又は直接、ユーザモードgatewayuser) でログインします。

  13. 先ほどのネットワーク設定をコマンドで行ってみます。(設定済みなら不要)

  14. # nmcli device				# LAN インターフェースのデバイス名確認
    
    
    # nmcli con add ifname enp0s20f0u11 type ethernet

    確認したデバイスを connectionに加えると ethernet-enp0s20f0u11 というコネクション名になります。長すぎて今後扱いにくいので次のようにします。

    # nmcli con modify ethernet-enp0s20f0u11 connection.id eno2

    標準装備の RJ45 LAN が eno1 だったので合わせました。


    =MEMO= 折角名前を変えましたが、これは下記のコマンド設定でのミスを減らすためであって、このコネクション名は D-STAR の設定には使えません。 設定のインターフェース指定に使えるのはあくまで デバイス名 ですので上の例では enp0s20f0u11 を設定します。 ただ、今回の例では eno1 はデバイス名・コネクション名共に eno1 ですので、D-STAR の指定も eno1 です。

    # nmcli con modify eno2 ipv4.addresses 172.16.0.20/24 ipv4.gateway 172.16.0.1
    # nmcli con modify eno2 ipv4.method manual
    # nmcli con modify eno2 ipv6.method disable

    もし、接続を解除して最初からやり直す場合は

    # nmcli con del eno2

    eno1 を固定アドレスに変更する必要が有りますが、同様に行います。

    # nmcli con modify eno2 ipv4.addresses 10.0.10.22/24 ipv4.gateway 10.0.10.50 ipv4.dns 10.0.10.50
    # nmcli connection modify eno1 ipv4.method manual
    # nmcli con modify eno2 ipv6.method disable

    余談ですが、1行目は connection、2行目は con と書いています。どちらも同じ意味で con は短縮形です。因みに c でも使えます。 また、同様に devdevice と同義です。

  15. 次にグラフィカルモードでの VNC リモート が出来る様にします。

  16. $ sudo dnf -y install tigervnc-server
    $ vncpasswd
    Password: ********
    Verify: ********
    Would you like to enter a view-only password (y/n)? n
    A view-only password is not used	# 見るだけのパスワードではないと言う意味
    
    $ nano ~/.vnc/config			# 新規作成
    
      GNU nano 5.6.1            	/home/gatewayuser/.vnc/config
    session=gnome
    securitytypes=vncauth,tlsvnc
    geometry=1024x768			# 800x600 1280x960 1600x1200....
    
    $ sudo nano /etc/tigervnc/vncserver.users
      GNU nano 5.6.1             /etc/tigervnc/vncserver.users
    # TigerVNC User assignment
    #
    # This file assigns users to specific VNC display numbers.
    # The syntax is =. E.g.:
    #
    # :2=andrew
    # :3=lisa
    
    :1=gatewayuser			# View windowが :1 つまり ポート:5901(5900+1)
    :2=root				# 同様に 5902 となる
    

    今回は、root には VNC は設定していませんが、root だけにしたい場合は root でログインして同様の .vnc/config ファイルを root のホームに作成してください。
    ここまで準備できたら、VNC を自動起動にして確認してみます。

    $ sudo systemctl enable --now vncserver@:1 vncserver@:2
    $ sudo reboot

    rootもgatewayuserも受け付けられるようなコマンドですが、vncserver@:1 (gatewayuser)、vncserver@:2 (root) どちらか一つの指定も出来ます。

    サーバがリブートしたら、そのままにして同じネットワーク内に有る別のPCから、ReaVNC ViewerUltraVNC Viewer などにゲートウェイサーバーの [IP Address:1 ] [gatewayuser] と設定して接続してみてください。
以上で D-STAR リピータ用 ゲートウェイサーバ向け OS AlmaLinux のインストールとゲートウェイ・アプリケーション導入に関する準備は完了です。

蛇足 通常はSSHで、必要に応じてVNCを使う
  1. 現状VNCもSSHも使える状態で完成しています。VNCだけ無効にします。
  2. そのためには、SSHでログインするか、GUIのログインプロンプトで [Ctrl] + [Alt] + [F2 or F3] してコンソールにログインします。

    $ sudo systemctl disable vncserver@:1 vncserver@:2
    $ sudo systemctl disable gdm
    $ sudo reboot

    今度はもうGUIのログインプロンプトは表示されません。いきなりコンソールのログイン画面となります。

  3. 次にスクリプトを2つ作成します。

  4. $ nano vs
      GNU nano 5.6.1                 vs
    sudo systemctl restart gdm
    sudo systemctl restart vncserver@:1
    echo 'VNCが使用可能です。'
    echo


    $ nano vk
      GNU nano 5.6.1                 vk
    sudo systemctl stop vncserver@:1
    sudo systemctl stop gdm
    echo 'VNCを終了しコンソールモードになりました。'
    echo

    先ほど自動起ち上げは無効にしましたので、必要な時サッと起ち上げるコマンドとして vs (Vnc Start) と vk (Vnc Kill) としました。

  5. これらを起ち上げ可能コマンドに設定し、コマンドフォルダに移動します。

  6. $ sudo chmod +x vs vk
    $ sudo mv v* /usr/local/bin

    これで、不要なときはGUIも立ち上がらず、CPUに負荷も掛からず節電にもなります。何よりも危険が減ります。



Back


73
Yosh Todo/J E 3 H C Z

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

2024年5月30日木曜日

Last Heard v.2.0.x RpiGW管理用WEBアプリケーション

Back



=MEMO= 2024年1月現在のゲートウェイ・アプリケーション仕様変更(2023年の法改正による)に伴い、xchangeへの接続方法も変更になりました。 間もなくリリースされる次期D-STAR仕様書に現行6.0aより更に詳しく記載される模様ですが、初期化パケットがxchange起ち上げ時発行され、 それに返答する事によって継続的にポートが利用できます。 未だ確定では無く仕様が変更される可能性は有りますが、そのプロトコルに対応した lastheard v2.0.0 を2024年1月19日より公開して来ました。 今回、Last Heard v.2.0.2にアップデートしRasberry Pi用 D-STAR Gateway管理アプリとして再構成致しました。

主な変更点は接続ユーザのデータをログからではなくmulti_forward WEBのデータから取得し、スキャン接続など瞬間の接続・切断で接続が残るのを解消しました。なお現在アプリの運用確認はRaspbian(Pi OS)のみとなって居り、AlmaLinux(Redhat系)向けは現在テストが出来ないため少しコードの変更が必要と思われます。




実際のWEBはこちらから


D-STAR リピータも、かなりの所が新ゲートウェイ採用となりました。今までのゲートウェイ(アイコム社製 dsgwd )は文字通り、コントローラ(ID-RP2C)とインターネットの間に入ってRF側とインターネット側の行き来を制御していました。

新ゲートウェイはその機能として、JARL管理サーバのアドレス指定に、IPアドレスではなく名前(FQDN)として trust.d-star.info を指定するように変更され、これによって2台のサーバ(IPアドレスは違う)が一つの名前で参照され、安全性が向上しました。

また、今まで UDP:40000 と言うポートに制限されていた、コールサインルーティングの復路も、ホールパンチ対応となり、往路が使用したポートを使って戻ってくるように仕様変更されました。ターミナル/アクセスモードでの 40000 ポート制限も、この方法で間もなくクリアされると思います。

さらに、最近ではゲートウェイPC内での各アプリケーションのコミュニケーションに掛かる応答時間を、仕様書通りに厳密にすることによって、交信中の他ゲートウェイからの割り込み等で会話が途切れる問題にも対応されました。Last Heard v.2.0.x でもハンドシェイクのスピードをアップし、データを所得するよう仕様変更致しました。
ソフトウェアのダウンロード
ソフトウェアはあくまで、自分自身の勉強の為にC言語、PHP、Pythonを使って書いてあります。著作権は保持していますが、CC-BY-NC-SA(クリエイティブ・コモンズ・ライセンス)に従って、自己責任で自由にお使いください。

  1. PHPとApache2 をインストールします。

  2. $ sudo apt intall php
    

    PHP(バージョン指定不要)をインストールすると、依存関係から Apach2 もインストールされます。

    これだけで、Raspberry Pi のIPアドレスを、他のWindowsマシンのブラウザなどで見ると、下のようなデフォルトページが見えます。 又、自動起動も有効に設定されます。


  3. ゲートウェイサーバのCentOSでgit cloneします。

  4. $ sudo apt install git
    $ git clone https://github.com/ytodo/lastheard.git
    $ cd lastheard
    $ tree			# このコマンドはインストールしないと入っていません。
    .
    ├── html		# このフォルダごと /var/www/ の直下にコピーします。
    │   ├── conf
    │   │   └── db.conf	# ダッシュボードの色を変えたり設定をします。
    │   ├── css
    │   │   └── db.css		# ダッシュボードのスタイルを決めます。
    │   ├── favicon.ico		# ダッシュボードのタイトルバーアイコンです。	
    │   ├── get_html.py		# multi_forward WEBを取得します。
    │   ├── images
    │   │   └── red_earth.png	# 好きなキャッチ画像をここに置きます。
    │   ├── index.php		# WEB本体です。
    │   └── monitor.php		# index.phpと同じです。
    ├── lastheard.service	# アプリ Last Heard を自動起動するユニットファイル
    ├── Makefile			# Cソースをコンパイルするときの手順ファイルです。
    ├── README.md
    ├── recv.c			# lastheardプログラムのソースです。
    └── recv.h			# lastheardプログラムのヘッダーファイルです。
    
    5 directories, 12 files
    
    $ make
    

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


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

  6. $ sudo mv lastheard /usr/local/bin
    $ sudo cp -rf html /var/www
    $ sudo rm /var/www/html/index.html
    

    PHPをインストールしたとき確認したデフォルトページを削除します。index.htmlを削除すると、自動的に index.php が表示されるようになります。


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

  8. $ sudo cp lastheard.service /etc/systemd/system
    $ sudo systemctl enable lastheard.service
    $ sudo reboot
    

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


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

  10. 先ずRpi-GWの設定ファイルにLast HeardのJARL D-STAR委員会へ登録したポートを設定します。

    $ sudo nano /boot/rpi-GW/rpi-xchange.conf
    
      GNU nano 7.2                /boot/rpi-GW/rpi-xchange.conf
      
    #
    #   Version V02.00 or later
    #   Satoshi Yasuda
    #   12 Aug. 2018
    #
    DEBUG=3
    ZR_NIC=eth1
    ZR_ADDR=172.16.0.1
    ZR_IN_PORT=20000
    ZR_OUT_PORT=20000
    GW_IN_PORT=20011
    GW_OUT_PORT=20010
    GW_NIC=lo
    MON_PORT=21000
    GW_ADDR=127.0.0.1
    
    FORWARD=127.0.0.1:50000:dprs
    FORWARD=127.0.0.1:50001:dstatus
    FORWARD=127.0.0.1:50002:multi_forward
    FORWARD=127.0.0.1:50003:decho
    FORWARD=127.0.0.1:52000:lastheard
    
    HTTP_PORT=20201
    UPNP=0
    

    次に、Last Heardの設定ファイルを編集します。

    # nano /var/www/html/conf/db.conf
    
      GNU nano 7.2                /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」リンクからお願いします。

2021年12月11日土曜日

dmonitor と ircDDBGateway を Nextion で切り替える

Back




=MEMO= D*SWITCH(Nextion Software Controler)の使い方マニュアル

欧米では、リフレクタのモジュールや、サーバのトークグループに接続(サーバ・クライアント型)して、 D-STAR のみならず DMR、Yaesu System Fusion、Project 25など他の通信モードとも、プログラムによるプロトコル変換に依って、相互乗り入れしています。

ここでは、主にD-STAR の特徴を生かした方法論を掲載してきましたので、相互乗り入れはちょっと横に置いておいて、 D-STAR の大きな特徴たる狭帯域 6.25kHz(10kHzセパレーションで使用可)とコールサイン・ルーティングによるリピータ・ネットワークと、 クライアント・コネクションによるリフレクタ運用を、明確に分けることで相互に悪影響を及ぼさない運用を目指したいと思います。

実は、今回使用する ircDDBGateway にはそのコールサイン・ルーティングとクライアント・コネクションが両方とも備わっています。 そして、そのどちらも同時に使用できる設計になって居り、コールサインルーティング(ircDDB.netやQuadnet)で使用中、リフレクタで呼ばれた場合でも両方にデータが流れる事が無いよう、 しっかりとセパレーションがなされています。

従って、このコールサイン・ルーティングの一つに、JARLシステムを組み込むとircDDBGatewayだけで、リピータアクセスもリフレクタアクセスも可能になるのですが、 日本の運用基準(審査基準)には諸々の制限が有りなかなか難しい事だろうと思います。

そこで、今回コールサインルーティング運用が可能な dmonitor と ircDDBGateway のリフレクタ・コネクションを Nextion で切り替えることによって、 一台の無線機とネットワーク接続用の Raspberry Pi で持ち運び可能な超小型ノードを作成したいと思います。

記事中ではターミナルモードでの運用を例に(クラブコールが無くても使用できる為)していますが、 DVAPやDVMEGA、ノードアダプターをお持ちの方、又はICOM Access Point Modeとすることで、無線機にケーブルを取り付ける事無く運用できます。

最新版dmonitorイメージのmicroSDを作成


  1. Raspberry Pi OSのサイトへアクセスします。
  2. 図の Raspberry Pi Imager をダウンロードして、インストールします。

  3. 次に、イメージをmicroSDに焼くのですが、以前のようにデフォルトユーザ(Pi)とパスワード(Raspberry)が設定されていません。
  4. そこで、対策としてこの純正イメージライタに、前もって好きなユーザ名、パスワードを指定し、SSHを有効にするかや、WiFiまで設定を登録しておけるようになりました。
    (歯車アイコン)
    セキュリティ向上のためですので、Pi: Raspbarryの組み合わせは避けましょう。

  5. イメージライタの画面上で必要なOSタイプとmicroSDのドライブを選択して [書き込む] をクリックします。 (以上 1.~ 3. 2023.3.2 修正変更)

  6. 念のために、OSのアップデートを行っておきましょう。

  7. $ sudo apt update && sudo apt upgrade -y
    $ sudo reboot
    


  8. dmonitorのインストール

  9. 準備ができたらdmonitorのドキュメント・サイトからインストールマニュアルの最新版をダウンロードします。
    必ずバージョンに合ったマニュアルに従って、インストールを実行してください。

  10. Nextionタッチパネルモニターを使用しない方は、これで終了です。
  11. Raspberry Pi専用モニターを使用していない場合でも、他のWindowsマシンのWEBブラウザー(Edge, Chrome)に、dmonitorの動いているRaspberry PiのIPアドレスを入れれば操作パネルが開きます。 つまり、dmonitorにはWEBサーバとしての機能が付属していると言うことになります。

その他の機能を有効にする



これらの機能は、RaspberryPi自体にディスプレイを付けて作業している場合は不要です。後ほどircDDBGatewayとDStartRepeaterの環境設定をする時にグラフィック環境が必要になります。
  1. *2SSHを有効にする

  2. $ sudo systemctl enable sshd
    $ sudo systemctl restart sshd
    

    Windowsマシンから、コマンドにて設定できるようにします。

    ディスプレイが接続されていない場合、この設定が出来ません。 その場合は、イメージを焼いた直後、WindowsのエクスプローラでmicroSDのドライブにアクセスします。 そこは PiOS の/boot フォルダですので注意して次のファイルを作成します。[新規作成]→[テキストドキュメント]として名前を「ssh」(拡張子も無し)とします。内容は空です。 これで、Raspberryを立ち上げた直後からSSHが使用可能です。

    *2ディスプレイが無い場合や、WiFiしか使えない機種の場合、 詳しくは こちら をご覧ください。

  3. VNCを有効にする

  4. $ sudo systemctl restart lightdm.service
    $ sudo systemctl restart vncserver-x11-serviced.service
    

    Windowsマシンから、グラフィカルにアクセスできるようにします。 (WindowsにRealVNC Viewerなどが必要です。)

  5. GPIOの⑧番⑩番ピンをTxD、RxDとして使えるようにする

  6. 「Pi3/Pi Zero WのGPIOでPi-HATと送受信する」を参考にして設定してください。

Nextionディスプレイの準備


  1. 先ず、GITHUB から からダウンロードしてください。ファイル名末尾に「_e」の付いているのはEnhanced TypeのNX3224K024_011用です。また、「2.4ud」となっているのが上下反転イメージです。

  2. *3イメージファイルを、適当なmicroSDにコピー(単なるコピーです。焼きません)して、電源の入っていないNextionにセットします。

  3. 赤のラインをRasberry Piの②ピンに、黒のラインを⑥ピンに挿して5Vを供給すると、イメージがNextionのメモリーに転送されます。 成功したら一旦電源を落としてNextionからmicroSDを外してください。

  4. *4上記の電源線以外に黄ラインを⑧ピンに、青ラインを⑩ピンに接続して、準備完了です。

  5. *3 「NEXTION EDITOR LTS」をITEADのサイトからダウンロードすると、 HMIファイルを編集したりtftファイルを作成したり出来ます。
    *4 詳しくはMMDVMノード用、ネットワークモニター Nextion 2.4 も参考にしてください。

dmonitor専用として使用する場合のD*SWITCHのインストール


    これも GITHUB からダウンロードします。(厳密にはクローンします。)

  1. 先ず、クローンするために次のコマンドでgitコマンドをインストールします。

  2. $ sudo apt install git
    

  3. 次に、gitコマンドを使ってGITHUBからクローンします。

  4. $ git clone https://github.com/ytodo/nextion_icom.git
    

  5. ダウンロードしたフォルダに入ってインストールコマンドを実行します。

  6. $ cd nextion_icom
    $ make install
    

    プログラムファイルや設定ファイルがそれぞれのフォルダーにインストールされます。
    nextionプログラム本体  :/usr/local/bin
    nextion.ini設定ファイル  :/etc/
    自動起動ファイル     :/etc/systemd/system
    また、自動起動ファイルはインストール時に必要な物は有効に、不要な物は無効に設定されます。その詳細な内容については、nextion_icomフォルダー内のMakefileを見てください。

  7. タッチパネル表示プログラム nextion の設定ファイル nextion.ini を編集します。

  8. $ sudo nano /etc/nextion.ini
    
      GNU nano 3.2                     /etc/nextion.ini
    ########################################################
    #                                                      #
    # dmonitor (Copyright(C) JARL D-STAR Committee )を   #
    # 使用する時純正のWEBではなくNextion Display にて   #
    # コントロールするようにするアプリです。               #
    #                                                      #
    #  名称: Nextion4dmonitorの環境設定ファイル            #
    #        2021.02.17                                    #
    #                                                      #
    ########################################################
    
    # ターミナルモード: 個人コール、アクセスポイントモード: クラブコール
    ### コールサインが8文字未満の場合、後ろにスペースを付け8文字にしてください。
    STATION=JE3HCZ D ---> ご自分のものに置き換えてください。
    
    # 初期接続リピータ(指定しない時は=の後を削除してください。)
    DEFAULT_RPT=JL3ZBS A
    
    # 初期接続リフレクタ(指定しない時は=の後を削除してください。)
    DEFAULT_REF=REF047 C
    
    # グリーン:2016 | イエロー:65504 | オレンジ:64512 ライトグレー:50712 レッド:63488
    # Nextion IDE で作成した色番号なら上記以外もOK
    CLOCK_COLOR=2016
    
    # リピータリスト書き込みタイミング調整(マイクロ秒/デフォルト10msec)
    ### 当方のテストではPi Zero: 30000 / Pi3: 35000
    SLEEPTIME=30000
    
    # デバッグモード(デフォルト:0/有効:1)
    DEBUG=0 ---> 簡易モード。詳しくログを表示したい時は1を設定してください。
    
    # Nextionの接続ポート(dmonitorイメージ: serial0 / その他 ttyAMA0、ttyUSB0...)
    PORT=serial0 ---> ターミナルモードの場合serial0ですがDVMEGA等では変わります。
    
    # 優先モード(MAIN:切替え画面 / DMON:D*MONITORと同じ / REF:Nextion_dstarと同じ)
    MODE=MAIN ---> dmonitor専用として切替えをしない場合は DMON に書き換えます
    

    それぞれの項目にある説明に従って編集してください。初期接続リフレクタの欄は後ほどircDDBGatewayをインストールした時に必要になります。 ここでは切替えのないdmonitor専用として設定しますので、リフレクタが指定されていても無視されます。


dmonitor用設定ファイルの編集


    dmonitor純正のWEBコントローラから設定済みの場合は、これらの編集作業は不要です。

  1. 先ず、dmonitor用設定ファイルを確認します。

  2. $ cd /var/www
    $ ls
    ConnectCall    dmonitor.conf   dvmega.conf       node.conf       rpt_mast.txt
    buff_hold.txt  dvap.conf       dvmega.conf.save  node.conf.save
    cgi-bin        dvap.conf.save  html              rig.type
    

    複数ファイルが有りますが .conf と言う拡張子の付いているのが設定ファイルです。今回はターミナルモードとして設定しますので必要なのは dmonitor.conf だけです。

  3. dmonitor.confを編集します。

  4. $ sudo nano dmonitor.conf
    
      GNU nano 3.2                      dmonitor.conf
    ICOM  ---> ターミナルモードの場合このままです。
    NONE  ---> dmonitor純正の液晶表示を使用する時以外はこのままです。
    XX0XX ---> nextion.iniの STATION= と合わせます。(JE3HCZ D)
    

  5. これでインストールが完了しましたので再起動します。

  6. $ sudo reboot
    

    今までのdmonitor専用、D*MONITORとほぼ同じ画面が表示されたら成功です。

=MEMO= D*MONITOR(dmonitor専用Nextionアプリ)として利用する場合は、これで完了です。

ircDDBGatewayとDStarRepeaterのインストールと設定


  1. ircDDBGatewayとDStarRepeaterをインストールします。

  2. 最新版 ircDDBGateway と DStarRepeater のインストール (Pi OS) を参照し、「OSの前準備」から続けてください。

  3. ircDDBGatewayの設定

  4. ircDDBGateway 初めての設定(2) を参照してください。

  5. DStarRepeaterの設定

  6. DStarRepeater 初めての設定(2) を参照してください。

  7. RemoteControlの設定

  8. ircDDBGatewayをインストールすると、remotecontrolとremotecontroldというアプリケーションが /usr/bin にインストールされています。 グラフィックモード(GUI)のTerminalで remotecontrol を立ち上げてリモート環境を設定します。

    $ sudo remotecontrol
    

    メインメニューの[Edit]→[Preferences]と選択すると右図のようなダイアログボックスが表示されます。

    AddressPortはデフォルト値ですので変更可能ですが、一台のRaspberryにircDDBGatewayとDStarRepeaterがインストールされている場合は127.0.0.1です。 ポートとパスワードは自由に設定できます。ただし、ポートを変更した場合、ircDDBGatewayの設定も合わす必要が有ります。

    保存して再度立ち上げコマンドを入力すると、コールサインの入ったコントロールパネルが表示されます。

    上記のコマンドを実行した場合、sudoが指定されているので管理者である/root/下に設定ファイルが置かれます。sudo を指定しないで実行すると/home/USER/下に置かれます。 事情によってどちらが使われても良いように、両方設定して置いた方が良いでしょう。設定ファイルをコピーしても構いません。

  9. /etc/nextion.iniの編集

  10. $ sudo nano /etc/nextion.ini
    
      GNU nano 3.2                    /etc/nextion.ini
       :
       :
    # 優先モード(MAIN:切替え画面 / DMON:D*MONITORと同じ / REF:Nextion_dstarと同じ)
    MODE=MAIN ---> MAINになっている事を確認してください。
    

Nextion用ソフトウェアのアップデート


$ cd nextion_icom
$ make update




Back



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

2021年11月28日日曜日

D-STAR ゲートウェイをRaspberry Piで構築

Back


最近ではRasberry Piの性能は向上し、充分にD-STARリピータのゲートウェイPCとしての機能を果たせる位置に来ました。

そこで、CentOS版PCに続いてRaspberry Pi用 Pi OS版のゲートウェイソフト群が開発されました。今回はそのインストール手順について記載したいと思います。

尚、今回のrpi-dsgwdはICOM社製ではなくJARL D-STAR委員会製のゲートウェイサービスソフトウェアです。

  • rpi-dsgwd、rpi-xchange rpi-dprs rpi-dstatus rpi-multi-forward rpi-decho は安田OM(7M3TJZ)/ JARL D-STAR委員会の著作物です。 インストール及び設定に関する実務についてのみ今後の参考のために記載します。また手順に変更があれば随時、変更・追加致します。(公開 2022.04.01)
  • CentOS版のEcho Server開発に伴い名称が"decho"となりました。(最終更新 2022.05.05
  • 新ゲートウェイシステム・フローチャートはこちら ➡ TODO Virtual Center
  • この記事に関するご意見・お問い合わせはこちらへお願いします。  ➡ D*Star Network FORUM


=MEMO= D-STAR委員会とAuthor安田OMの許可を得て、当方が JL3ZBS A でテスト中のものを元に手順化しプレ公開いたしました。 DPRSの機能など一部確認中の機能もありますが、CentOSも数年後に廃止になることも有り、今から代替用としてテストしてみてはいかがでしょうか。 あくまでD-STAR委員会としては未発表ですので、JARLへの問い合わせはできませんのでよろしくお願い致します。 只、公式発表は有りませんが安田OMのリリースノートはここからダウンロード出来ます。

準備する物

  • Raspberry Pi 4B
  • 現在テストサイトではRaspberry Pi 3Bでテスト中ですが、dmonitorでの接続が集中すると性能不足になるかも知れません。
    このキット等も便利と思います。Pi4 B 4GB スターター キット V4 オンライン教材付

  • USBタイプLANアダプタ
  • Raspberry PiにはWiFiがインプリメントされていますので、工夫すればWiFi(wlan0)とLAN(eth0)で構築する事も可能とは思いますが、 ここでは、USBタイプLANアダプタを使用して、eth0とeth1で構成します。

  • microSDカード16GB~


  • 専用ACアダプター
  • Rasberry Pi 4 はかなりの電圧・電流を必要とします。少なくとも5V強/3A程度はないと常に「電圧不足です」のメッセージが表示されます。


PiOSのインストールと事前設定

  1. microSDにPi OSイメージを焼く


  2. =MEMO= 現時点では、Raspberry Pi3/4 のみ対象ですが実務的にはPi4をお薦めします。 なお、PiOSは64bit版のみ対応です。 又、リモートでのルータ設定などを想定してデスクトップ簡易版を使用しています。

    Raspberry PiOSサイトより右図のイメージライタをダウンロードしインストールします。
    CHOOE OS]で推奨(デスクトップのみ入っている)版 PiOSを選択、[CHOOSE STORAGE]でmicroSDカードのドライブを選択して開始すればダウンロードしながら書き込んでくれます。

  3. SSHが使用できるようmicroSDに細工します。

  4. Windowsマシンに挿したままmicroSDのドライブを開きます。[新規作成(X)]で[テキスト ドキュメント]を選択し、 内容は何も書かずファイル名を拡張子も含めて「ssh」(つまり拡張子無し)のファイルを作ります。 これで、Raspberry Piを立ち上げた時、すぐにSSHが利用可能です。


    =MEMO=
    同様にして、D-STAR委員会のパッケージでは、このドライブ内に有るフォルダ rpi-GW 内に各種設定ファイル(xx.conf)がインストールされますので、 前もって編集又はバックアップファイルを貼り付ける事が出来ます。(編集は後述)




PiOS立ち上げ時の各種設定

  1. 電源投入直後の初期設定

  2. Welcome to the Raspberry Pi Desktop!

    Before you start using it, there are a few thingw to set up.

    Press 'Next' to get started.

    If you are using a Bluetooth keyboard or mouse, put them into
    pairing mode and wait for them to connect.

    IP: 192.168.11.10


    Next

    この作業ではRasberry Piに接続したディスプレイが必要です。 ディスプレイが無い場合や、SSHで接続した場合などは次項の「セキュリティを高める作業」をご参照ください。
    Set County

    Enter the details of your location. This is used to set the
    language, time zone, keyboard and other international settings.
     Japan
    Country:
     Japanese
    Languge:
     Tokyo
    Timezone:
    ☐Use english languge  ☐Use US keyboard


    Press 'Next' when you have made your selection.



    Next
    Back


    通常、図のとおり日本のロケイルを選択します。もしJISではなくASCII(US)キーボードを使用している場合は[Use US keyboard]にチェックしてください。
    Create User

    You need to create a user account to log in to your Raspberry
    Pi.

    The username can only contain lower-case letters, digits and
    hyphens, and must start with a letter
    Enter username:
    Enter password:
    Confirm password:
    ☑Hide characters


    Press 'Next' to create your account.

    Next
    Back


    今まで標準であった piとraspberry のような想像しやすいものは避けてください。使用できる文字は英子文字、数字とハイフンのみで、必ず英子文字から開始してください。
    また、チェックを外すとパスワードが表示されます。

    ここで、アカウントを設定しない限り、SSH設定を/bootファルダにしても、他のマシンからは接続できないようです。
    Set Up Screen

    On some monitors, the desktop is larger than the screen and
    the edges are cut off. You can adjust this here.
    Reduce the size of the desktop on this monitor

    Press 'Next' when the screen looks correct.









    Next
    Back


    デスクトップの方が、モニターのサイズより大きく、端がカットされていると思われる場合はスライドスイッチを右へ動かし手見てください。 戻せば元どおりの表示に戻ります。
    Select your WiFi network from the list

    On some monitors, the desktop is larger than the screen and
    the edges are cut off. You can adjust this here
    Press 'Next' when the screen looks correct.

    Next
    Skip
    Back


    この枠内に、WiFiの一覧が表示されます。設定するときは希望の一行をクリックして[Next]とするのですが、今回はケーブル接続のみで構築していますので[Skip]してください。
    Update Software

    The operation system and applications will now be cheched
    and updated if necessary. This may involve a large download.

    Press 'Next' to check and update software, or 'Skip' to continue
    without checking.








    Next
    Skip
    Back


    [Next]をクリックするとアップデートが実行されます。立ち上げ後通常どおり apt update; apt upgrade する場合は[Skip]してください。
    Setup Complete

    Your Raspberry Pi is now et up and ready to go.


    Press 'Restart' to restart your Pi so the new settings will take
    effect.





    Restart
    Back


    リスタートすると設定した環境が反映されて立ちあがります。


  3. セキュリティを高める作業


  4. =MEMO= 64ビット版のPiOSイメージは下記のような設定を、前もって問い合わせに答える形でセットアップされます。
    立ち上げ後で変更したりするときにご利用ください。⇨ 「環境設定」へスキップ

    =MEMO= ログインID(pi)、パスワード(Raspberry)共に全く違う物に変更することを強くお勧めします。方法については こちら⇨ をご参照ください。


    $ sudo raspi-config
    

    先ずパスワードの変更をしてください。

    ┌─────┤ Raspberry Pi Software Configuration Tool (raspi-config)├────┐
    │                                                                              │
    │       1 System Options       Configure system settings                       │
    │       2 Display Options      Configure display settings                      │
    │       3 Interface Options    Configure connections to peripherals            │
    │       4 Performance Options  Configure performance settings                  │
    │       5 Localisation Options Configure language and regional settings        │
    │       6 Advanced Options     Configure advanced settings                     │
    │       8 Update               Update this tool to the latest version          │
    │       9 About raspi-config   Information about this configuration tool       │
    │                                                                              │
    │                                                                              │
    │                <Select>                          <Finish>                    │
    │                                                                              │
    └───────────────────────────────────────┘
    
    <Select>,<Finish>を[Tab]で選択するか[Enter]で選択[Esc]で戻る

    パスワード変更を[S3]で終えたら、ユーザログインが必要になるよう設定する為[S5]を選択して次の画面に進んでください。

    ┌─────┤ Raspberry Pi Software Configuration Tool (raspi-config)├────┐
    │                                                                              │
    │       S1 Wireless LAN      Enter SSID and passphrase                         │
    │       S2 Audio             Select audio out through HDMI or 3.5mm jack       │
    │       S3 Password          Change password for the 'pi' user                 │
    │       S4 Hostname          Set name for this computer on a network           │
    │       S5 Boot / Auto Login Select boot into desktop or to command line       │
    │       S6 Network at Boot   Select wait for network connection on boot        │
    │       S7 Splash Screen     Choose graphical splash screen or text boot       │
    │       S8 Power LED         Set behaviour of power LED                        │
    │                                                                              │
    │                                                                              │
    │                <Select>                          <Finish>                    │
    │                                                                              │
    └───────────────────────────────────────┘
    

    ┌─────┤ Raspberry Pi Software Configuration Tool (raspi-config)├────┐
    │                                                                              │
    │     B1 Console           Text console, requiring user to login               │
    │     B2 Console Autologin Text console, automatically logged in as 'pi' user  │
    │     B3 Desktop           Desktop GUI, requiring user to login                │
    │     B4 Desktop Autologin Desktop GUI, automatically logged in as 'pi' user   │
    │                                                                              │
    │                                                                              │
    │                <Select>                          <Finish>                    │
    │                                                                              │
    └───────────────────────────────────────┘
    
    デスクトップを最初からインストールしていないPiOSを使って居る場合は[B1]を選択します。


  5. メモリー領域の拡張

  6. 6番の拡張オプションよりmicroSDカードの領域を最大限に拡げます。
    ┌─────┤ Raspberry Pi Software Configuration Tool (raspi-config)├────┐
    │                                                                              │
    │       1 System Options       Configure system settings                       │
    │       2 Display Options      Configure display settings                      │
    │       3 Interface Options    Configure connections to peripherals            │
    │       4 Performance Options  Configure performance settings                  │
    │       5 Localisation Options Configure language and regional settings        │
    │       6 Advanced Options     Configure advanced settings                     │
    │       8 Update               Update this tool to the latest version          │
    │       9 About raspi-config   Information about this configuration tool       │
    │                                                                              │
    │                                                                              │
    │                <Select>                          <Finish>                    │
    │                                                                              │
    └───────────────────────────────────────┘
    

    ┌─────┤ Raspberry Pi Software Configuration Tool (raspi-config)├────┐
    │                                                                              │
    │    A1 Expand Filesystem       Ensures that all of the SD card is available   │
    │    A2 GL Driver               Enable/disable experimental desktop GL driver  │
    │    A3 Compositor              Enable/disable xcompmgr composition manager    │
    │    A4 Network Interface Names Enable/disable predictable network i/f names   │
    │    A5 Network Proxy Settings  Configure network proxy settings               │
    │    A8 Glamor                  Enable/Disable glamor graphics acceleration    │
    │    A9 Wayland                 Enable experimental Wayland backend            │
    │                                                                              │
    │                                                                              │
    │                                                                              │
    │                <Select>                          <Finish>                    │
    │                                                                              │
    └───────────────────────────────────────┘
    

    最後に<Finish>を選択した後(各設定の途中でも・・)、「再起動しますか?」のメッセージが出たら[OK]してください。

    拡張されたかの確認は次のコマンドで可能です。

    $ df -h
    



環境設定

  1. ホスト名の変更

  2. $ sudo su -
    

    スーパーユーザ(管理者)になります。

    # nano /etc/hosts
    # nano /etc/hostname
    

    いずれのファイルもraspberryになっている部分をdstargwなど分かりやすいホスト名に変更してください。その他は(改行なども含めて)一切変更しないでください。


  3. SSHで使用するポートを変更する
  4. # nano /etc/ssh/sshd_config
    
      GNU nano 5.4                 /etc/ssh/sshd_config
      :
    #Port 22
       ↓
    Port 22222
    

    コメントアウトを外し、ポート番号を変更する(22222は一例)


  5. VNCで管理する場合の画面サイズを設定して置く

  6. # nano /boot/config.txt
    
      GNU nano 5.4                 /boot/config.txt
    # uncomment to force a console size. By default it will be display's size minus
    # overscan.
    framebuffer_width=1280
    framebuffer_height=960
    

    1280x720 1280x1024 1600x1200 など見やすいサイズに指定しておきます。

  7. IPアドレスを指定された固定アドレスに設定します。

  8. # nano /etc/dhcpcd.conf
    
      GNU nano 5.4                 /etc/dhcpcd.conf
        :
        :  
    ### eth0(Internet側) eth1(Controler側)のIPアドレス指定
    interface eth0
    static ip_address=10.0.xx.xx/8			#指定された固定アドレス
    static routers=10.0.yy.yy			#ルータのLAN側アドレス
    static domain_name_servers=10.0.yy.yy		#ルータのLAN側アドレス
      
    interface eth1
    static ip_address=172.16.0.20/24		#Gatewayやname serverは不要
      

  9. 最後にPiOSの更新を行って再起動します。

  10. # apt update && apt upgrade -y
    # reboot
    


アプリケーションのインストール


=MEMO= 最新版のリポジトリーでは、この項で述べるインストールに関して自動で実行するコマンドラインが公開されています。 今回の64ビット版からエコーサーバーが標準装備されました。
 $ sudo curl http://app.d-star.info/debian/bookworm64/rpi-GW/gw_setup | bash
このコマンドを実行した方は、3.各アプリケーションの環境設定へスキップしてください。

  1. aptインストールできるようにリポジトリを構成

  2. $ cd /etc/apt/sources.list.d
    $ sudo wget http://app.d-star.info/debian/bookworm64/rpi-GW/jarl-GW.list
    
    $ cd /var/tmp
    $ sudo wget http://app.d-star.info/debian/bookworm64/rpi-GW/jarl-pkg.key
    $ sudo apt-key add jarl-pkg.key
    $ cd
    

    この時、すでにjarl-GW.listが存在すると wgetする度に、jarl-GW(1).list, jarl-GW(2).list・・・のように上書きしないようにダウンロードされるので、 最新の状態にするためには jarl-GW.listのすべてのバージョンを削除して新たにダウンロードするか、番号の大きい物をjarl-GW.listにリネームしてください。


  3. インストールの実行

  4. $ sudo apt clean
    $ sudo apt update
    $ sudo apt install -y rpi-dsgwd rpi-dprs rpi-xchange rpi-dstatus rpi-multi-forward rpi-decho
    


  5. 各アプリケーションの環境設定

  6. $  sudo nano /boot/rpi-GW/rpi-dsgwd.conf
    
      GNU nano 5.4                 /boot/rpi-GW/rpi-dsgwd.conf
    #
    # rpi-dsgwd.conf
    # Configuration file for D-STAR GW-Server Daemon
    # (C) 2021 JARL D-STAR Committee Satoshi Yasuda, 7m3tjz
    #
    
    # --- Setting the following two parameters is mandatory. ---
    # Zone Repeater's Infomation
    ZR_CALLSIGN=[Repeater Callsign(モジュールA,B無し)]
    ZR_ADDR=127.0.0.1
    
    # --- 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
    GW_ZRPORT=20010
    
    ZR_ETHIFNAME=lo
    
    # DNS Server
    DNS_ADDR=8.8.8.8                #グーグル汎用DNS. 本来はDEFAULT_GWと同じ10.0.x.x
                                    #ですがネットワーク環境が変わっても訂正の必要が有りません。
    
    # GateWay
    GW_ETHIFNAME=eth0
    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_ADDR=d-prs01.d-star.info
    MGSV_PORT=30001
    MGSV_LOGADDR=trust.d-star.info
    MGSV_LOGPORT=30000
    
    # GW connection
    #CON_WAIT_INTERVAL=2
    #CON_REFRESH_INTERVAL=1
    #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
    LOG_HOLEPCH=1
    LOG_SOCKET=1
    
    # END dsgwd.conf
    

    $ sudo nano /boot/rpi-GW/rpi-xchange.conf
    

    xchangeとdprsにおけるリピータコールとモジュール名は指定不要になりました。

    また、これ以降の設定の内容でUPNP=0と有るのは、uPnPの機能は使用せず、手動でポートフォワードしているという意味です。 uPnPを使用する場合は、手動でのポートフォワードはせず、ルータのuPnPを有効にしてUPNP=1としてください。
      GNU nano 5.4                 /boot/rpi-GW/rpi-xchange.conf
    #
    #       Version V02.00 or later
    #       Satoshi Yasuda
    #       12 Aug. 2018
    #
    DEBUG=3
    ZR_NIC=eth1
    ZR_ADDR=172.16.0.1
    ZR_IN_PORT=20000
    ZR_OUT_PORT=20000
    GW_IN_PORT=20011
    GW_OUT_PORT=20010
    GW_NIC=lo
    MON_PORT=21000
    GW_ADDR=127.0.0.1
    
    FORWARD=127.0.0.1:50000:dprs
    FORWARD=127.0.0.1:50001:dstatus
    FORWARD=127.0.0.1:50002:multi_forward
    FORWARD=127.0.0.1:50003:decho
    
    HTTP_PORT=20201
    UPNP=0
    

    $  sudo nano /boot/rpi-GW/rpi-dprs.conf
    
      GNU nano 5.4                 /boot/rpi-GW/rpi-dprs.conf
    #
    #       Version V00.79 or later
    #       Satoshi Yasuda
    #       20 Aug. 2018
    #
    APRS_SERVER=d-prs.d-star.info:14580
    #APRS_SERVER=d-prs.d-star.info:8080:SUBMIT
    RADIO_ID=D
    SEND_INTERVAL=60
    AUTO_RELINK=1
    RETRY_COUNT=0
    BEACON_LAT=35.xxxx                 #リピータの緯度・経度を小数点表示で
    BEACON_LONG=136.xxxx
    BEACON_COMMENT=D-STAR -> APRS
    BEACON_INTERVAL=0
    #TRUST_SERVER=133.130.72.162:30001
    DEBUG=1
    MON_PORT=50000
    ACCEPT_TYPE=MIX
    

    $ sudo nano /boot/rpi-GW/rpi-dstatus.conf
    
      GNU nano 5.4                 /boot/rpi-GW/rpi-dstatus.conf
    #
    #       Version V00.79 or later
    #       Satoshi Yasuda
    #       10 Oct. 2015
    #
    DEBUG=1
    MON_PORT=50001
    STATUS=status.d-star.info:21050
    

    $ sudo nano /boot/rpi-GW/rpi-multi_forward.conf
    
      GNU nano 5.4                 /boot/rpi-GW/rpi-multi_forward.conf
    #
    #       Version V00.79 or later
    #       Satoshi Yasuda
    #       10 Oct. 2015
    #
    FORWARD_PORT=50002
    MULTI_CONNECT_PORT=51000
    STATUS=status.d-star.info:21051
    

    $ sudo nano /boot/rpi-GW/rpi-decho.conf
    
      GNU nano 5.4                 /boot/rpi-GW/rpi-decho.conf
    #
    #       Version V00.01 or later
    #       Satoshi Yasuda
    #       2022/04/29
    #
    FORWARD_PORT=50003
    ECHO_SERVER=JL3ZBS A:JL3ZBS Z  #各リピータコールサインに変更してください。
    ECHO_POSITION_SEND_INTERVAL=600
    
    
    エコーサーバのZについてはシステムで使用しているSGなどを使用しないでください。


    =MENO= エコーサーバのコールサイン(ここでは JL3ZBS Z)についてはゲート越えでのエコー要求に対して、エコー自体もゲート越えをしますので、 JARL D-STAR WEB 登録コールサインである必要が有ります。従って自動登録をするために、ハンディ機等にMyCallとして設定した上で一度だけ、いずれかの自動応答へアクセスしてください。 自動応答が返ってきたら暫く時間を空けて、自局のエコーサーバが他のリピータ経由(つまりゲート越え)で聞こえるか確認してください。
    ログファイルに関する設定

    dsgwd.log に関しては出力に関して少し設定が必要です。

    $ sudo nano /etc/rsyslog.conf
    
      GNU nano 5.4                 /etc/rsyslog.conf
          :
         :  末尾に追加  
    #
    # rpi-dsgwd.log
    #
    local0.*					/var/log/rpi-dsgwd.log
    
    $ sudo touch /var/log/rpi-dsgwd.log
    

    最初はログファイルが存在しないので、空のファイルを作成して書き込み準備をします。

    他のログファイルは、設定無しで /var/log 内に書き出されます。

    それぞれのプログラムを自動起動に設定

    すべてのプログラムを自動起動に設定し、一度リブートします。
    $ sudo systemctl enable rpi-dsgwd.service rpi-xchange.service rpi-dprs.service rpi-dstatus.service rpi-multi_forward.service rpi-decho.service
    $ sudo reboot
    

    再度立ち上がったら、次のコマンドで起動しているか確認します。起動していないものは表示されません。
    $ ps aux | grep rpi
    
    これで、すべての設定が完了しました。 しばらくすると、Hole Punch Listに表示されれば運用可能となります。

    Back




    73
    J E 3 H C Z / TODO@REF047C XLX047B