JR6PUE HOME PAGE

SvxLink15.11にバージョンアップ


台風16号の影響で今日は朝から大雨です。2016.09.17(土)
時間もあるしOSも最新版に変更して、SvxLinkを最新版の15.11にバージョンアップしました。

インストールしたOSバージョンは、RASPBIAN JESSIE
Full desktop image based on Debian Jessie
Version:May 2016
Release date:2016-05-27
Kernel version:4.4

OSのインストール方法は、この辺りをご覧ください。なお、Svxlinkだけを使うので、日本語環境も入れていません。
また、必要ないので自動起動でX-windowが起動しないようにしてください。

X-windowのMenuボタンのRaspberry Pi Configureation -> Sysytem -> Boot -> TO CLIのラジオボタンをクリック



(日本語環境をインストールした別のマシンで表示)

12.SvxLinkを14.08から最新版の15.11に変更しました。
インストール方法については、変更箇所を含めて14.08インストール編を加除して記載しています。
まずは、関連ライブラリーなど必要なソフトををインストールします。

  sudo apt-get install subversion libsigc++-2.0-dev g++ make libsigc++-1.2-dev libgsm1-dev libpopt-dev tcl8.5-dev libgcrypt-dev libspeex-dev libopus-dev libasound2-dev alsa-utils

   15.11にする場合は、下記もインストールしてください。(前述のものと同じものもありますが、気にせず行きましょう。)

     sudo apt-get install cmake libsigc++-2.0-dev libasound2-dev libpopt-dev libgcrypt11-dev tk-dev libgsm1-dev libspeex-dev libopus-dev groff

   qtelをインストール
  sudo apt-get install libqt4-dev

SvxLink 15.11をダウンロードします。(2016.09.17現在の最新版)

cd /home/pi
sudo wget https://github.com/sm0svx/svxlink/archive/15.11.tar.gz
sudo tar xvf 15.11.tar.gz

*上記方法でダウンロードするとファイルサイズが小さくて解凍できないことがあります。
 今回、https://github.com/sm0svx/svxlink/archive/15.11.tar.gzこのコマンドを一度実行してからsudo wgetを入れて
 sudo wget https://github.com/sm0svx/svxlink/archive/15.11.tar.gzとしたら14.5MBのファイルをダウンロードできました。

13.15.11には、makefile.cfgは無くなっています。14.08時に使用したコンパイル時のオプションは不要です。というか、使えないです。


                        
14.以下のコマンドでSvxLinkをコンパイルとインストールを行う。

sudo adduser svxlink

この時、パスワード等を聞かれますのでパスワードは入力ください。あとは、リターン連打で大丈夫です。

cd /home/pi/svxlink-15.11/src
sudo mkdir build
cd build
sudo  cmake ..

【注意】このコマンドでcmakeすると/usr/local/etc/svxlink/以下にファイルが配置されます。
cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var ..
オプションを使うとそれまでの/etc/svxlink/以下に配置されます。お好みで。

sudo  make
sudo  make doc
sudo  make install
sudo ldconfig

15.以下のコマンドでサウンドパッケージをダウンロードしてインストールする。
cd /home/pi
sudo wget https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/tag/14.08/svxlink-sounds-en_US-heather-16k-13.12.tar.bz2
      cd /usr/local/share/svxlink/sounds    
      sudo tar xvf /home/pi/svxlink-sounds-en_US-heather-16k-13.12.tar.bz2
      sudo ln -s en_US-heather-16k en_US

*ここでも、オリジナルのファイルがダウンロードできずにどうしてもraspberry pi上で解凍でき無い可能性があります。
 その時は、一度Windowsマシンでダウンロード、解凍、再度圧縮してraspberry piマシンに送り込んで下さい。
 https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/tag/14.08/svxlink-sounds-en_US-heather-16k-13.12.tar.bz2
 だけを一度実行して、その後、sudo wgetを頭につけてダウンロードするとうまくいくこともあります。

16./usr/local/etc/svxlink/の中のsvxlink.confと/usr/local/etc/svxlink/svxlink.dの中のModuleEchoLink.confを修正する。

  (1)svxlink.confの修正ポイント

    @SimplexLogic
      ・MODULESをModuleEchoLinkのみとする
      ・CALLSIGNを修正する
      ・SHORT_IDENT_INTERVAL=30 30分に一回コールサインをアナウンス。
                          何故か、6エリアの数字は読み上げてくれない。(; _ ;)
      ・LONG_IDENT_INTERVAL=60   60分に一回システム状況をアナウンス。
      ・RGR_SOUND_DELAY=-1  (スタンバイピーを止める)
      ・REPORT_CTCSS=77.0 (お好みのトーン周波数を設定)

    詳細は、ここを確認下さい。
    
    ARx1
      ・AUDIO_DEV=alsa:plughw:1
       (デフォルトでは0の内蔵サウンドとなっているが、内蔵サウンドではキャプチャーが
        出来ないため、1のUSB-SOUNDにすること)
      ・SQL_DET=SERIAL
       (デフォルトではVOXになっている)
      ・CTCSS_FQ=77.0 (お好みのトーン周波数を設定 ただし、Rx Txとも同じ)
          ・SERIAL_PORT=/dev/ttyUSB0
       (デフォルトでは/dev/ttyS0となっているが、Raspberry PIにはSerial Portがないので、
        USB-Serialを使うため、このように変更すること)
          ・ SQL_DELAY=100 (スケルチ動作に少し時間差を持たせました)
     
    BTx1
      ・AUDIO_DEV=alsa:plughw:1
       (デフォルトでは0の内蔵サウンドとなっている。キャプチャーと合わせるために
        1のUSB-SOUNDにすること)
      ・PTT_PORT=/dev/ttyUSB0
       (デフォルトでは/dev/ttyS0となっているが、Raspberry PIにはSerial Portがないので、
        USB-Serialを使うため、このように変更すること)
          ・PTT_PIN=DTRRTS  #がはずれているか確認
           ・PTT_TYPE=NONEを
             PTT_TYPE=SerialPinへ変更

 (2)ModuleEchoLink.confの修正ポイント

    ・TIMEOUT=60を、先頭に#を付けてコメントアウト
    ・SERVERS=asia.echolink.orgに変更
    ・CALLSIGN、PASSWORD、SYSOPNAME、LOCATIONを適宜変更*Echolinkに登録したときのパスワード。
    ・MAX_QSOSとMAX_CONNECTIONSをともに1に変更(マルチコネクト禁止)
    ・LINK_IDLE_TIMEOUTの先頭に#を付けてコメントアウト
    ・AUTOCON_ECHOLINK_ID=??????とする(??????は自動接続したいNODEのNODE No)
    ・AUTOCON_TIME=300(自動接続チェックのインターバルを秒で入力)

17./home/piの中に、svxというファイル名でシェルスクリプト(下記内容)を作成

#!/bin/sh
#Start/stop/restart svxlink server.

#Start svxlink server:
svxlink_start() {
echo "Starting svxlink server"
svxlink --logfile=log --daemon
}

#Stop svxlink server:
svxlink_stop() {
echo "Stopping svxlink server"
killall svxlink
}

#Restart svxlink server:
svxlink_restart() {
svxlink_stop
sleep 3
svxlink_start
}

case "$1" in
'start')
svxlink_start
;;
'stop')
svxlink_stop
;;
'restart')
svxlink_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
#

    svxに実行権を付ける。
    $sudo chmod a+x svx

18.コンソールから"svxlink"と入力して、svxlinkの動作確認を行う。
   単体の動作確認で問題がなければ、17で作成したシェルスクリプトの動作確認を行う。

   $sudo sh ./svx startでsvxlinkが起動し、logファイルにログが作成される
   $sudo sh ./svx stopでsvxlinkを停止
   $sudo sh ./svx restartでsvxlinkを再起動

19./home/piの中に、svxsというファイル名でシェルスクリプトを作成。内容は下記の通り
   #!/bin/sh
   cd /home/pi
   svxlink --logfile=log --daemon

    svxsに実行権をつける
  $sudo chmod a+x svxs

20./etc/rc.localの中に、下記の行を追加する。(qtelを使う場合は設定しない)

   #Starting svxlink-server
   su - pi password -c 'sh /home/pi/svxs'         passwordは4のAで設定したもの
    
   これをexit0の上に追加する。

起動時にlogが開けないと言うエラーがでます。
/home/pi/logが
-rw-r--r-- 1 root   root      1117 Sep 18 18:12 logとなっています。
$sudo chgrp pi log
$sudo chown pi log
-rw-r--r-- 1 pi   pi      1117 Sep 18 18:12  log
無事に自動起動もできました。




起動後のlogを見ると、最初はecholink serverのIPアドレスがDNSで引けないみたいなエラーログが出ます。
14.08の時は、出なかったのですが???です。いろいろ試してみましたが、ModuleEchoLink.confで設定した
5分後の自動コネクトAUTOCON_TIME=300(自動接続チェックのインターバルを秒で入力)では正常につながります。
その後は、問題なくつながっていますのでsvxlinkを最初に起動した場合、5分後から使えるという事で良しとしました。

Starting logic: SimplexLogic
Loading RX: Rx1
Loading TX: Tx1
Loading module "ModuleEchoLink" into logic "SimplexLogic"
Found /usr/local/lib/svxlink/ModuleEchoLink.so
Module EchoLink v1.3.2 starting...
SimplexLogic: Event handler script successfully loaded.
*** ERROR: No IP addresses were returned for the EchoLink directory server DNS query
*** ERROR: EchoLink directory server DNS lookup failed
EchoLink directory status changed to ?

起動したときのタイミングなのか分かりませんが、どうしても起動時の1回目だけエラーメッセージが出ます。



後は、5分おきのAUTOCON_TIME=300で接続が確認されています。接続状況のlog記録は、300秒ごとではなく
ランダムに記録されているようです。これも良くわからないけど。

21.ERROR解決 (Rapberry pi OS jessieの起動シーケンス特有の問題でした) H28.09.20
 *** ERROR: No IP addresses were returned for the EchoLink directory server DNS query
 *** ERROR: EchoLink directory server DNS lookup failed
 
 悩みに悩んだこの問題。どうも、ネットワーク確立のタイミングの問題の気がしてきた。
 google先生に、「Rappberry pi」「jessie」 「ネットワーク確立」などの言葉で検索すると
 /etc/rc.localが起動シーケンスの最後より少し手前で実行されるようになっているとありました。
 起動処理にsystemdが採用された影響だとの事です。rc.localは、これからはあまり使わないでと
 いう事らしい。rc.localの起動を遅らせる方法もあるけど根本的な解決ではありません。

 解決方法を調べると意外と簡単。

 コマンドラインから
 sudo raspi-configで設定画面を起動します。

 4.Waite for Network Boot を選択してYesします。(ネットワークが起動してから起動を完了とする)







X-window画面で設定するなら
X-windowのMenuボタンのRaspberry Pi Configureation -> Sysytem ->



 「Network at Boot」という項目があります。この「Wait for network」にチェックを入れて再起動。
 すると、Raspberry piのネットワークへの接続が完了してから起動が完了するようになります。

再起動後、logファイルを確認してみます。


お見事。解決です。 !(^^)!

Raspberry pi3は、Wifiが内蔵されて、jessieは、それに対応しています。
Wifiがつながるまで待っていると、OSの起動が遅く感じることがあると思います。
そんなことにならないように、デフォルトは、ネットワーク環境が接続しなくても起動完了をさせるのでしょうね。

やはり、OSやソフトなどをバージョンアップすると、いろいろ仕様が変更されるので、
前のままの設定で動かなくなることがあります。

こんな時は、やはり自分の設定が悪いと思う方があたり前です。そして、わけがわからなくなりお手上げとなります。
今回は、2日で解決の糸口が見えて良かった、良かった。

相談にのっていただいた、JA4FHVさんにも感謝です。

22.サウンドブラスタの調整は、14.08と同じ数字に設定しました。設定方法は、こちらです。