JR6PUE HOME PAGE

Raspberry pi3 Ubuntu MATEでJTDX17.9とWSJT-X1.8.0-rc2とCQRLOG2.1.0を動かす

  

  台風18号が九州方面に向かってきています。今週末の予定がきれいになくなったのでホームページを整備すべく
  昨日から確認作業を兼ねて取りまとめました。(2017.09.17)
  
  先日、Raspbian JessieでWSJT-XとCQRLOGを動かしましたが、JTDXにも挑戦してみました。
  JTDXは、Linux版のバイナリ―ファイルはありますがラズパイ用のarmfのバイナリはありません。
  なければ作ろうと思って挑戦したのですがかなりハードルが高く(私だけかもしれませんが)試行錯誤の
  時間がかかりました。Jessieでもあと一歩まではいきますがその先を超えることが出来ず、ネット上で
  Ubuntu MATEでは動作報告が上がっていますのでOSもラズパイ用のUbuntu MATEで挑戦しました。

  まずは、ネット上のホームページを参考にしようと調べてみました。
  JK2OKX HARUくんのひとりごとページは、大変参考になります。
     ただ、私は、ひとつひとつ解説がないとなかなか理解できないので、あと一歩のところで解決の糸口が
  つかめない部分がありました。ただ、動くという確信があるのは大変ありがたい情報でした。
  さらに、selatanのブログも参考になりました。さらに、N0KEG局のページも参考になります。
  また、YahooグループのJTDXのグループにも登録し情報を得ることにしました。
   https://groups.yahoo.com/neo/groups/JTDX/info

  これだけ情報があれば簡単だろうとたかをくくりましたが、それが甘かった。
  この情報をまとめるには、延べ時間で数日を要することになりました。(^^;

  それでは、いきましょう。

1.Ubuntu MATEをいれます
  ここからダウンロードしてSDカードに書き込みます。
  
  SDカードに書き込みが終了し、起動したら先ずはSSHが使えるようにします。

  (1)SSHを使えるようにする
    sudo apt-get install raspi-config
       これは、入っていると思いますが念のため。

    sudo raspi-config

    メニュー3から"Interfacing Options" を選択
    P2 SSHを選択し、Enable

    raspi-configを終了します。

    これで、SSHで接続できますのでSSHで操作をしました。
    特に、ラズパイのUbuntu MATEに標準でインストールされているFire Foxは、バグがあるようで動きません。
    ブラウザをいれれば良いのですがそれは後回しです。あとで、クロームでも入れたいと思います。
    そういう意味でも、Windows側でSSHを使って作業した方が何かと便利です。
 
 (2)お決まりの初期設定

    sudo apt-get update
    sudo apt-get upgrade

 (3)できればimg保存作業を!
  必須ではありませんが、これからの作業を失敗しても早期に回復できるように、imgを保存しておくと
  最初からやりなおすより時間を節約できます。
  私は、何回やり直したことか。でも、間違わなければ以下の作業は問題ないはずです。
  その分、私が失敗して整理しました。(^^;

2.JTSDKをインストール

  JTSDKは、WSJT-X等をコンパイルするツールです。まずは、これをインストールする必要があります。
  これが使えるようになると、WSJT-Xのrc版がバイナリ―なって公開されるのを待つことなく自分で
  作業できるようになります。

  まずは、お約束。
  私のホームディレクトリーは、/home/dhiroです。これは、各自の環境に合わせて下さい。
  さらに、これは業界の決まり事ですが、〜はホームディレクトリーのことです。(^^;

 (1)ダウンロード
   本日時点(2017.09.16)でのJTSDKのLinux版の最新版をダウンロードします。
   
   その前にホームディレクトリにjtsdkのディレクトリーを作成します。
   これを忘れるとコンパイルの時にソフトからディレクトリーが無いと怒られます。
   
   mkdir jtsdk
   
   cd ダウンロード
   wget https://sourceforge.net/projects/jtsdk/files/linux/2.0.0/jtsdk-nix-2.0.22.tar.gz

   tar -zxvf jtsdk-nix-2.0.22.tar.gz
 
  (2)コンパイルに必要なライブラリー類をインストール
   
   cd jtsdk-nix-2.0.22

sudo apt-get install automake asciidoc asciidoctor coderay clang-3.5 \
cmake dialog g++ gettext gfortran git libudev-dev libusb-dev libusb-1.0-0-dev \
libfftw3-dev libhamlib-dev libhamlib-utils libqt5multimedia5-plugins \
libqt5serialport5-dev libqt5opengl5-dev libsamplerate0-dev libtool libusb-dev \
libxml2-utils pkg-config portaudio19-dev python3-pil python3-pil.imagetk \
python3-tk python3-dev python3-numpy python3-pip python3-setuptools \
python3-dev qtbase5-dev qtmultimedia5-dev subversion texinfo xmlto \
libfreetype6-dev libjpeg-dev liblcms2-dev libtiff5-dev libwebp-dev libwebpmux1 \
mime-support tcl8.6-dev tk8.6-dev zlib1g-dev

  しばらく時間がかかります。根気よく待ちましょう!

  (3)インストール
    
   ./autogen.sh
   make
   sudo make install



3.JTSDKでHAMLIB-3とWSJT-Xをインストール

  先ほどインストールが完了したJTSDKを使って作業します。
  まずは、HAMLIB-3をインストール。これは、WSJT-Xをコンパイルするのに必要ですので最初に作業します。

  ターミナル画面からコマンドで作業すると画面が大きくてきれいです。

  jtsdk

 

HAMLIB-3を選択してコンパイルを開始

WSJT-Xをpackege化します

 各種HP上には、JTSDKからWSJT-XをインストールしてJTDXをコンパイルする作業が紹介されていました。
 いろいろやってみましたが、結局コンパイルができませんでした。

 という事で違う方法でJTDXが作成できることが分かりましたのでpackegeを作ってインストールすると
 メニューにWSJTXのリストが出るようになります。



/home/dhiro/jtsdk/wsjtx以下にファイルができます。

注:(2017.09.30)
  外気温度もだいぶ下がってきました。室内温度もだいぶ下がっていますが、コンパイル作業は、
  CPU温度が80度を超える場合があります。
  ここに書かれた通りの作業をしていてもパッケージ完成終了間際の98%付近で、完全フリーズ
    することがあるかもしれません。

  熱暴走が原因なのかは、わかりませんが、たまにそのような現象が発生する事もあるようです。
  その時は、コンパイル作業の間をあけてCPU温度が下がるの待って作業を進めるのも1つの対策です。
  ハングアップした場合は、再度、パッケージ化作業から進めると残りのコンパイルを行って
  作業終了となったとの報告もいただきました。

  それ以前に、ラズパイCPUには、ヒートシンクを取り付けての作業をお勧めします。

コンパイル失敗原因判明(2017.10.29)
  これまで何度となく悩まされたコンパイル終了直前のシステムハングアップですが、WSJTX1.8.0の正式リリース版を
 コンパイルするときにその原因を突き止めました。
  SWAP領域の不足が原因です。
  Raspberry pi3は、メモリーを1GB搭載しておりますがコンパイルの最終場面ではそれを超えるファイル量をメモリーで
 扱うようです。

  これを解決するには、Gpatedを利用してSDカードにSWAP領域を確保して作業する必要があります。

 オリジナルでは、SWAP領域が確保されていないのでこのあと固まります。


SWAP領域をGpatedを利用して確保してコンパイルすると無事終了
なお、Linux SWAPについては、ここの方法2.Linux-swap領域を使うが大変参考になりました。


GpatedでSDカードを確認するとSwap領域がありません。


GpatedでSwap領域を確保しました。領域確保サイズは、ご自分の必要量を確保してください。
なお、SDカードをコピーするときに全体のサイズを小さくしておくと他のSDカードにコピーするときに役立ちます。


  CPU 温度は、次のコマンドで確認できますし、80度を超えると画面の右上に温度計マークが出て
  CPUの温度上昇の注意を喚起します。

  vcgencmd measure_temp
 


sudo dpkg -i wsjtx_1.8.0-rc2_armhf.deb

インストールすると、メニューにWSJTXが出てきます。



4.JTDXをインストール

(1)Install Hamlib
  Hamlibは、先ほどJTSDKでインストールしているのですがJTDXをインストールするのにHamlibのソース等が
 必要になります。
 あらためてHamlibをコンパイルします。

 cd ~
 mkdir ~/hamlib-prefix
 cd ~/hamlib-prefix
 git clone git://git.code.sf.net/u/bsomervi/hamlib src
 cd src
 git checkout integration
 mkdir ../build

 次は、コンパイル作業になるのですがインターネットで紹介されているのには、autogen.shを使うようになっています。
 何をしてもautogen.shは現れませんでした。



 だいぶ困っていたのですが、唯一バイナリにそれらしい名前があるのに気づきました。
 ダメもとです。やってみると、良く知るconfigureコマンドが現れました。

 ./bootstrap



 ./configure
 make
 sudo make install

(2)JTDXをインストール

 cd /home/dhiro/ダウンロード
 wget http://www.qrz.lt/ly3bg/JTDX/17.9/src_JTDX_v17.9.zip
 unzip src_JTDX_v17.9.zip

 cd ~
 mkdir JTDX
 cd JTDX
 mkdir build
 mkdir install
 mkdir src

 JTDX17.9のソース(wsjtxディレクトリーがソース類です)を下記の操作で/home/dhiro/JTDX/src以下に
 コピーします。

 cp -r -a /home/dhiro/ダウンロード/wsjtx /home/dhiro/JTDX/src/wsjtx

 cd build

cmake -D CMAKE_PREFIX_PATH=~/hamlib-prefix /usr/lib/arm-linuxgnueabihf -D CMAKE_INSTALL_PREFIX=~/JTDX /install ../src/wsjtx

 cmake --build . --target install

これで、JTDXが/home/dhiro/JTDX/binにwsjtxとしてインストールされます。



wsjtxのリンクを作成してデスクトップに張り付けるとJTDXの起動がしやすくなります。



(3)CALL3.txt

 src_JTDX_v17.9.zipを解凍すると一緒に入っています。
 ホームフォルダに .local から share → WSJT-X と開けてそこにコピー
.localは、隠しフォルダーです。表示(V)から隠しファイルを表示するとして作業をしてください。

 なお、CALL3.txtの最新版は、ここに置かれています。



注意:JTDXのバージョンが18.0になってからファイル名とディレクトリー名もJTDXに変更になっています。
     ホームフォルダに .local から share → JTDXと開けてそこにコピーします。



JTDXのHint ボタンを押している時、 CALL3.txt を助けにデコードされたデータは右端にアスタリスク * が付きます。
詳しくは、ここにHintボタンの説明と合わせて詳しく解説されています



(3)ttyUSBが使えるようにしてください。
  USB接続でPTTを直接制御するインターフェースを使い、送信するためには必要です。
 私は、アドニス電機のAK−RPC1を使いました。
 IC-7300やFT-991など、USBで無線機を直接制御する場合は、この作業は必要ありません。
 詳細は、ひとつ前のページに記載しています。

 ls -l /dev/ttyUSB0
 lsusb

 sudo vi /etc/udev/rules.d/60-usbser.rules

 KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001",GROUP="uucp", MODE="0666"

 記入して保存(赤い数字番号は、私の環境です。)

 再起動してください。

5.CQRLOGをインストール
 raspberry jessiへのインストールと違って意外と簡単でした。(^^;

 (1)MySQLをインストール

 sudo apt-get install libaio1 libdbd-mysql-perl libdbi-perl libhamlib-utils libhamlib2 libhtml-template-perl libnetpbm10 libssl-dev libssl-doc libterm-readkey-perl python2.7-libxml2 trustedqsl xplanet xplanet-images

 sudo apt-get install libmysqlclient-dev mysql-client mysql-common mysql-server

 途中で、MySQLのroot時のpasswordも入力してください。



 sudo systemctl disable mysql
 sudo systemctl stop mysql

これもひとつ前のページに詳細は、記載しています。確認してください。
ここからこのファイルをWindowsマシンでダウンロードしてラズパイ側に持ってくるのが簡単です。
CQRLOGのバイナリ―ファイルがDropboxに保存されているのでwgetコマンドでダウンロードできません。
コピーを~/ダウンロードにします。

 cd ダウンロード

 sudo dpkg -i cqrlog_2.1.0-1_armhf.deb

 CQRLOGを起動し、connectをすると必要なファイルをダウンロードした後にLog001にアクセスできるようになります。

 ここらあたりの説明もひとつ前のページを見て下さい。

 以下がラズパイでJTDXとCQRLOGが動いてる様子です。



こちらは、WSJT-X-rc2とCQRLOGです。



なんとかRaspberry pi3でJTDXとCQRLOGがリンクして動作するようにできました。\(^o^)/

残念ながらAlarmeJTは、ラズパイでは動きません。なぜなら、バイナリーしか公開されていません。
つまり、PCで動かすしかありません。(^^; 
一応、PC版のUbuntu MATE 16.0.4をインストールしてAlarmeJTを動かしていますが、ここまで動けばラズパイ環境でも
そんなに困りません。

CQRLOGは、DXCCなどのサーバにアクセスして登録している局については詳細な情報を表示してくれます。
さすがに、JTAleartのように音声でのお知らせ機能などありませんのでますます今の環境でも良いかなと感じています。
ただ、CPU能力の差はやはり感じますので本格的に運用するならPCかな?
でも、使えないことはないです。逆にいうと十分使えると思います。

いろいろな環境でソフトを切り替えて行うとLOGを1本化するのは課題です。これは、今後の課題。
 (2017.09.17)

【参考】
コンパイルするときに以下のコマンドで監視するとCPUの温度などが確認できます。
特に、今回のような作業はCPU温度が81度くらいまで上がります。
ぜひとも、CPUにヒートシンクをつけてください。N0KEG局は、ヒートシンクが無いラズパイは、4コアで
コンパイルしないようにと書いています。

JTSDKでコンパイルする場合は、optionメニューでコンパイルするコアの数を変えることができます。

私も何度もコンパイル時に、CPU温度が80度を超えてラズパイも右上に温度計マークが出て温度が高いよと
注意を促されました。
もうすぐ終わるという99%くらいで固まっていましたので、これは、熱暴走だろうと思い、扇風機で冷やしましたが、
熱暴走でのコンパイル失敗ではありませんでした。もともと、それらの組み合わせでは出来ないみたい。(^^;

CPU 温度
vcgencmd measure_temp

電圧
vcgencmd measure_volts

CPU(arm),GPUのメモリ使用量
vcgencmd get_mem arm