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の最新版は、
ここに置かれています。
注意:J
TDXのバージョンが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