JR6PUE HOME PAGE

Raspi4にUbuntu20.04LTS+JTDX-rc150+CQRLOG2.4.0+TQSLをインストール


 

 Raspi4+Raspbianで、とりあえずJTDXとCQRLOGが動くのは確認しましたが、JTDXとかのデザインが
UbuntuMATEに比べてきれいじゃないので、Raspi3B+JTDXV2.1.0-rc148をUbuntuMATE上で動かしていました。
 先日、JTDXがrc-149になって、バイリンガル版となって日本語表示になったので意気揚々とコンパイルしてみました。
しかし、これまで使えていたのになにをやっても音声が出ません。
自分のコンパイル方法が悪いのかとも思い、公開されているバイナリーパッケージでも同じ状況。
rc-148にすると全然問題ありません。

 5月の連休中は、新型コロナウイルスの影響でSTAY HOME期間だったこともあり毎日、毎日、バージョンアップする
JTDXのソースを使いながら改善されていることを願って試しましたが、何をやってもダメでした。
ちなみに、PC版でIC-7300のCAT制御だと何ら問題なくrc-149は動きます。もちろん、最新版のrc150も大丈夫。

 もう、よくわかりません。そんなことをやってたらUbuntu20.04LTSが4月23日に公開されていることを知りました。
 RasPi4でも動く。ということで、Pi4でやってみようとチャレンジしてみました。
  Pi4の強みは、メモリーが4GBだということで64bit OSが問題なく対応しているということです。
 
今回、Pi4で32bitと64bitの両方で動作を確認しました。

なお、Pi3Bを利用する場合場合は、32bit版のUbuntu20.04LTSを利用するか、
64bit版を動かす場合は、SWAPファイル領域を1GBくらい確保してあげるといいと思います。(方法は後述)

ということで、Raspi4にUbuntu20.04LTSをインストールしてJTDX、CQRLOG、TQSLを動かしてみます。

1.ubuntu20.04LTS (64bit)をインストール

 (1)OSをダウンロード 
    まずは、Ubuntuの公式ページからRaspi4用のubuntu20.04LTS(server)をダウンロードします。


  インストールにあたっては、Raspi用の情報では非常に詳しく解説していただいているラズパイダさんのHP
 とてもに参考になります。

  Pi4では、64bitを選択

  Pi3で使う場合は、基本は32bitを選択
  ただし、64bit版も動きます。もし使う場合は、本体のメモリが1GBしかないので
  SWAPメモリを1GB程度確保しておきます。拡大するには、OSをインストールしてから下記方法でできます。
  なお、Pi4で64bit版を動かす場合は必要ありません。
  また、Pi3で32bit版を動かすときも、特に必要ありません。

【SWAP領域 1GB 確保方法】
   $ sudo fallocate -l 1g /swapfile
   $ sudo chmod 600 /swapfile
         $ sudo mkswap /swapfile
         $ echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
         $ sudo swapon -a

(2)ログイン
ubuntu20.04LTSは、ユーザは、初期設定はubuntu パスワードもubuntu
最初の起動でパスワードの変更を求められます。

とにかく、SDカードにイメージを焼いて起動したらしばらくしてSSH関係の公開鍵の表示がでますので
それまで待ちましょう。ID入力を求められますがとりあえず1分くらいかな待ちます。
SSHの公開鍵が画面に表示がでたら
再度、LOGIN IDを入れて再開。
ID ubuntu
pw  ubuntu

そのあと、新しいパスワードへ変更します
current password:
これがでたら、今のパスワードは何かということです。
ubuntu を入れて、その後、新しいパスワードを入力します。

お決まりの

sudo apt update
sudo apt upgrade

そして、とりあえず、ネットツールをインストール
sudo apt install net-tools
ifconfigコマンドでラズパイに割り振られたIPアドレスを確認
あとは、SSHで接続して対応した方がやりやすいです。

(3)DESKTOPをインストール
現段階では、Ubuntu20.04LTSは、Server版で公開されていますのでDesktopはあとからインストールします。

公式サイトでは、この3種類が対応していると提示されています。

xubuntu
lubuntu
kubuntu

ラズパイダさんのHPによると、lubuntuは、バグがひどいとのことでした。
私は、Ubuntu MATEを使いたいと思ったのですが、公式サイトでは、まだ、raspiがサポートされていません。
どうしても使いたかったので、 ubuntu-mate-desktopをインストールしてみました。
一応、動きますが、どうも、少し不安定な気がしたので、現時点で公式にサポートされているxubuntuを
再インストールしました。

sudo apt install xubuntu-desktop

20分ほどかかります。気長に待ちます。
とりあず、再起動。
sudo reboot

(4)デスクトップにログイン


デスクトップ画面が出ます。
ログインが画面が出るので、ユーザがubuntuを確認してマウスでクリック
すると、右斜め下に白丸の中に黒いマークがついたものが出てきます。これがわかるまでだいぶ悩みました。(^^;
Ubuntu19.10の表示と変わっているんです。
ラズパイダーさんが紹介してくれているのと違ったのでしばらく悩みました。

右斜め下に白丸の中に黒いマークを、マウスでクリック

すると、初期設定でデスクトップがubuntuになっているのを確認します。
xubuntu をいれたので、xubuntuだろうと思われると思いますが、正式対応と言いながら
突然、画面がフリーズしたりして不安定でしたので、オリジナルのubuntuーdesktopを使うことにします。
ubuntuのデスクトップ画面は、慣れないとちょっと使いづらいです。ま、慣れだと思います。
あとは、Passwordをいれたら入力
起動したら背景画像以外何もなくてびっくり!
左上にアクティビティーとあるところをクリックするとサイドバーが出ます。
一番下にある、○が9個ある部分をクリックするとアプリケーションが表示されます。
一番下にある、すべてというところをクリックすると使えるアプリケーションがすべて表示されます。
3画面ほどあるので、設定を探して日本語や時間をJSTにします。


(5)初期設定
@既知のバグ修正
a.起動した際の1行目にでる「could not get clk: -517″ 」のエラーは、以下の記述で回避可能です。


sudo nano /boot/firmware/usercfg.txt
dtparam=spi=off

b./etc/resolv.confのnameserver: 127.0.0.53になる。
私は、DHCPでラズパイにIPアドレスは割り振ってもらっています。
本来は、自分のネットワークのルーターアドレスになるはずです。

cat /etc/resolv.conf
ubuntu@ubuntu:~$ cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0
ubuntu@ubuntu:~$

となっていますので、下記操作を行います。

ubuntu@ubuntu:~$ sudo rm -f /etc/resolv.conf
ubuntu@ubuntu:~$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo: ホスト ubuntu の名前解決ができません: 名前解決に一時的に失敗しました

*sudoを使うと上記メッセージが出ます。調べてみると、/etc/hostsと/etc/hostnameに
違いが生じているとのことです。何かした覚えはありませんが、とりあえず、/etc/hostnameを
修正しておきます。
sudo nano /etc/hostname
ubuntu  <−を削除して保存して再起動
ubuntu@ubuntu:~$ sudo reboot

再起動して、cat /etc/resolv.confで確認してください。

Aディスプレーが自動サスペンドモードになるのを解除

設定で電源ー>自動サスペンド オフ
ブランクスクリーン しない
に設定。これをしておかないと、コンパイルしている途中にすぐに画面が消えたりしてびっくりします。
しかし、設定していても、時々画面が消える時があります。これは、バグなんでしょうね。
画面左上のアクティビティーをクリックすると画面が再度表示されますのでご安心を!

B日本語設定とディスプレー背景画像変更


お好みで。背景なんかで画像も変えたほうがいいのですが、
あまり、良い、背景画像がubuntuには用意されていないです。
ここらあたりから背景画像をダウンロードして使うと良いと思います。
結構きれいな風景画像などが用意されています。



日本語入力は、ここらあたりを参考にしてください。
無理に、日本語環境にしなくてもJTDXの日本語表示は使えます。
なお、日本語環境をインストールした最初の起動画面時に/home/ubuntuディレクトリー以下を
日本語名に変更するかとでますが、英語表示のほうが便利です。
変更しないほうがいいと思います。

2.CQRLOG  Hamlib  JTDX  TQSLをインストール

(1)コンパイルに必要なソフトをインストール
sudo apt-get install build-essential cmake automake libtool gfortran pkg-config \
asciidoc asciidoctor qttools5-dev qttools5-dev-tools qt5-default qtmultimedia5-dev \
libqt5serialport5-dev libudev-dev fftw3 libfftw3-dev cmake git libhamlib-dev libhamlib-utils \
portaudio19-dev libqt5multimedia5-plugins coderay dialog libsamplerate0-dev python3-pip python3-tk \
python3-dev python3-numpy python3-setuptools python3-dev subversion texinfo libfreetype6-dev \
libgtk-3-dev libgtk2.0-dev libjpeg-dev liblcms2-dev libtiff5-dev libwebp-dev tcl8.6-dev tk8.6-dev \
libusb-dev libusb-1.0-0-dev .imagetk libgfortran4

(2)CQRLOGをインストール
@事前準備

Raspbianでインストールした時の方法でCQRLOG2.4.0のインストールができませんでした。
ようは、Raspbianでインストールした時もそうだったのですが、サーバに接続できずにログが
作成できない現象が続いたのです。Raspbian+Pi4の時は、パッケージでCQRLOGをインストールして
上書きインストールで回避していたのですが、今回は、この手法は通じませんでした。

とにかく、原因を究明するまで何時間かかったことか。半ば、あきらめかけそうになりましたが
ここが参考になります
libmysqlclient.so ライブラリーをシンボリックリンクさせるのと、さらに、32bitと62bitでは、
そのシンボリンクリンクの書き方が違うんです。さすがに、まいりました。(^^;

まずは、コンパイルに必要なソフトをインストール

sudo apt-get install lcl*2.0 lazarus*2.0 fp*3.0.4 fpc*3.0.4 libssl-dev git build-essential libmariadbclient-dev

自分でわかっているとは思いますが、次に、uname -a で、入れたOSのbitを確認

ubuntu@ubuntu:~$ uname -a
Linux ubuntu 5.4.0-1008-raspi #8-Ubuntu SMP Wed Apr 8 11:13:06 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
私の場合は、 aarch64 GNU/Linuxなので64bit

#64bitの場合
sudo ln -s /usr/lib/aarch64-linux-gnu/libmariadbclient.so /usr/lib/libmysqlclient.so    

#32bit
sudo ln -s /usr/lib/arm-linux-gnueabihf/libmariadbclient.so /usr/lib/libmysqlclient.so  

もし、シンボリンクリンクの記載を間違えたらこれで削除してあらためてやり直してください。
削除 
sudo unlink /usr/lib/libmysqlclient.so

Aコンパイル&インストール

cd Downloads
git clone https://github.com/ok2cqr/cqrlog.git
cd cqrlog
make

cqrlog.lpr(84) Warning: (9034) "crtbegin.o" not found, this will probably cau
cqrlog.lpr(84) Warning: (9034) "crtend.o" not found, this will probably cause
(1008) 96384 lines compiled, 42.5 sec
(1021) 23 warning(s) issued
strip src/cqrlog
gzip tools/cqrlog.1 -c > tools/cqrlog.1.gz
ubuntu@ubuntu:~/Downloads/cqrlog$

こういうメッセージがでますが、ちゃんとmakeできています。

sudo make install

そして、最後に、データベースソフトmariadb-serverをインストールします。

sudo apt install mariadb-server

これまで、UbuntuMATEやRaspbianでコンパイルしてきた方法とは、だいぶ変更しないと
成功しませんでした。簡単に書いていますが、苦労のたまものです。(^^;
CQRLOGの私の現在の設定は次の通りです。

(3)Hamlibをインストール
JTDXのINSTALLテキストを読むとコンパイルオプションが記載されています。
使用する無線機がCATで制御できる場合は、そのとおりで問題ありません。
PC版UbuntuのJTDX−rc150とIC-7300 CAT制御の場合は何ら問題ありませんでした。
raspberry版のJTDX rc-150でも問題ないと思います。(実験していません)

DX-SR9は、CAT制御が用意されていません。これまで、シリアル制御で送受信を行っていました。
rc-148までは、何ら問題なく動作していたのですがrc−149になってからうまくいかなくなりました。
受信は大丈夫ですが、送信の時に音が出ない現象が発生しました。
最近、JTDXのメーリングリストに私と同じ現象が発生して困っているとWの局から相談があっていました。
やっときた、と思って翻訳機能で読み続けると、どうも、JTDXはCATを使うことが前提みたいです。
つまりは、コンパイルオプションは、それが基本なんでしょうね。
作者のMM0HVU局によるとJTDX側ではなくてHamlib側だろうとのコメント。とはいうものの、JTDXが何らかの
機能を使うとしているのでトラブるのでしょうけどね。
そのうちに解消されるのを願っているみたいなコメントです。(^^;

ということで、私は、シリアルでの制御をやめて、DX-SR9の設定にあるデータ-VOX機能を使うことにしました。



DX-SR9のデータVOX機能とは、パソコンとソフトウェアを使用してFAX,RTTY,SSTV,PSK31,FT8などの
データーモードを運用するときの、内蔵インターフェース回路を使うときの設定となっています。
サウンドブラスターのOUT端子からの信号を無線機の裏側にあるMOD端子というところへ市販の3.5mmステレオプラグ
オーディオケーブルでつなぐだけです。
いつも思うけど、アルインコのDX-SR9は、デジタル通信をしたい場合などコストパフォーマンスは最高です。
7万円くらいで新品のHF無線機(100W/50W)が買えますからね。AH-4もインターフェースを作らなくても
使えますしね。素晴らしい無線機と思います。
ラズパイとSR9は手作り感満載で遊べるので、私はあまりIC-7300を動かさないんですよね。(^^;

さて、コンパイルオプションは、CATを使う場合と使わない場合と両方記載しておきます。。

cd ~
mkdir ~/hamlib-prefix
cd ~/hamlib-prefix
git clone git://github.com/jtdx-project/jtdxhamlib src
cd src
./bootstrap
mkdir ../build
cd ../build
../src/configure --prefix=$HOME/hamlib-prefix

結果は、この通りです。


CAT機能を使ってJTDXを利用する場合のコンパイルオプションは
下記をお使いください。(JTDXコンパイルは、以下のオプションが推奨されています)

../src/configure --prefix=$HOME/hamlib-prefix \
--disable-shared --enable-static \
--without-cxx-binding --disable-winradio \
CFLAGS="-g -O2 -fdata-sections -ffunction-sections" \
LDFLAGS="-Wl,--gc-sections"



make
make install-strip

ここで、sudo make installを使わないのは、
configure --prefix=$HOME/hamlib-prefix オプションで自分のホームディレクトリー以下の
hamlib-prefix ディレクトリーにインストールするためです。
また、このオプションでmake insutallすることで必要なlib(ライブラリー)も$HOME/hamlib-prefix 以下に
インストールされますので/etc/ld.so.confの中にインストールされるディレクトリーを記載する必要があります。

sudo nano /etc/ld.so.conf
nclude /etc/ld.so.conf.d/*.conf
/home/ubuntu/hamlib-prefix/lib   #ここにコンパイルしたライブラリのパスを追加

保存

次のコマンドで設定を反映させます。
sudo ldconfig

次のコマンドで、ライブラリーファイルを認識していることが確認できます。
sudo ldconfig -p  | grep libham*

表示結果です。


JTDX推奨のコンパイルオプションの場合は、/etc/ld.so.confに追加する必要がありません。
結果は、次の通り。



バージョンアップする場合は、インストールしたディレクトリーをmvコマンドで名称変更して同じように
再コンパイルします。
mv hamlib-prefix hamlib-prefixbak

(9)JTDX-rc150をインストール
Hamlibもそうですが、gitコマンドを利用してインストール作業を進めると、その時点の
最新版のソースファイルがダウンロードされます。(2020.05.16現在の最新版)
どうしても違うバージョンが欲しい場合は、gitで公開されているページにブラウザでアクセスしてソースファイルを
ダウンロードしてコンパイル作業をする必要があります。

mkdir -p ~/jtdx-prefix/build
cd ~/jtdx-prefix
git clone git://github.com/jtdx-project/jtdx src

cd ~/jtdx-prefix/build
cmake -D CMAKE_PREFIX_PATH=~/hamlib-prefix \
 -D CMAKE_INSTALL_PREFIX=~/jtdx-prefix ../src
cmake --build .
cmake --build . --target install

JTDXの私の設定は次の通りです。

バージョンアップする場合は、インストールしたディレクトリーをmvコマンドで名称変更して同じように
再コンパイルします。
mv jtdx-prefix jtdx-prefixbak

(10)trustedqsl(TQSL)をインストール

LOTWを利用するのに欠かせないTQSLをインストールします。
すでに、LOTWに登録が終っており2台目以降のPCの設定が前提です。
詳細は、私のホームページならここに記載しています。

最初からコンパイルしてp12ファイルを読み込んでも、うまく読み込んでくれませんでした。
このため、先に、ubntuのtrusedqslをインストールしてp12ファイルを読み込みtqslが
使える状況にします。
32bit版のUbuntu2004LTSの時は、うまく言った記憶が(^^;あったのですが、
とりあえず、以下の作業で対応できました。

@コンパイル事前準備
cd ~
sudo apt-get install trustedqsl

trustedqsl 2.5.1-1buildがインストールされます。
2020.05.13現在の最新版はtrustedqsl 2.5.3です

p12ファイルを読み込んで、必要事項を設定します。
設定が終了したらソフトを終了。

sudo apt autoremove trustedqsl

設定ファイルを残してアンインストールしておきます。

Aコンパイル準備
この作業は、64bit版は時間がかかりました。
32bit版の時は、wxWidgets-3.0.5のインストールが必要ではなかった気がします。(^^;

sudo apt install libffi-dev python-dev build-essential
sudo apt install lmdb-utils liblmdb-dev
sudo apt install libdb-dev libcurl4-openssl-dev
sudo apt install libwxbase3.0-0v5 libwxgtk3.0-gtk3-0v5 expat

cd ~/Downloads
wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.5/wxWidgets-3.0.5.tar.bz2

tar jxf wxWidgets-3.0.5.tar.bz2
cd wxWidgets-3.0.5
./configure --with-gtk
make
だいぶ時間がかかります。40分ちょっともかかりました。コーヒーでも飲みながら、のんびり待ちましょう。


sudo make install
sudo cp wx-config /usr/local/bin
sudo chmod 755 /usr/local/bin/wx-config

cd ~/Downloads
ターミナル画面に下記メッセージがでるので
Gtk-Message: Failed to load module "canberra-gtk-module"
先に下記をインストールしておく
sudo apt-get install libcanberra-gtk-module

Atqsl-2.5.4をコンパイル
このHPを作成しているときは、tqsl-2.5.3.tar.gzが最新版だったので、2.5.3をインストールしていたのですが
今朝、5月17日に確認したら3時間前に2.5.4が公開されていました。TQSL起動時に新しいバージョンがありますと
言われたので下記の内容で新しい2.5.4バージョンのソースをダウンロードして上書きインストールしました。
問題なく動きましたので、次回からのバージョンアップもソースファイル名の変更でバージョンアップできると思います。
(2020.05.17)

cd ~/Downloads

wget http://www.arrl.org/files/file/LoTW%20Instructions/tqsl-2.5.4.tar.gz

tar zxvf tqsl-2.5.4.tar.gz

cd tqsl-2.5.4
cmake .


make
sudo make install

/usr/local/bin/tqsl

警告が出ます。
このコンピュータは、ログ提出の時に署名するためのコールサイン証明書がインストールされて
いません。コールサイン証明書を今、リクエストしますか。

初めてでなければ、必ず「いいえ」を押してください。

CQRLOGとの連携は、/usr/local/binですので変更してください。


コンパイルしてうまくいかなかったときは、下記操作でインストールしたものを削除

sudo rm -r /usr/local/share/TrustedQSL
cd /usr/local/lib/
sudo rm *.h
sudo rm /usr/local/bin/tqsl

で、再度、コンパイル作業をしてインストール
ダウンロードからやり直していいですが、下記でも再コンパイルはできます。

cd tqsl-2.5.4
make clean
make
sudo make install

(11)JTDXと起動アイコンを作成
コンパイルしたJTDXとTQSLのアイコンを作成します。
UbuntuMATEでは、アイコンの画像を設定するのは簡単だったのですが
Ubuntuは、ちょっと手間でした。
私が、以前、紹介した方法では、アイコンをクリックすると信用できないランチャですという警告が
出ていました。とにかく、起動するで起動できていたのでそんなもののかと思っていましたが
今回、理由がわかりました。
デスクトップアイコンの実行権が設定されていなかったことが原因です。

@JTDXアイコン
起動用アイコンを作成
アイコンのマークは、スクリーンショットなどでJTDXオリジナルマークなど好きなのを
取り込んで小さなJPGファイルを作っておきました。
保存は、/home/ubuntu//Picture/icon/tqsl.jpgとして置きました。
なお、このファイルがなくなると設定したアイコンの画面が白くなります。
あくまで取り込むのではなくリンクして画像を見ているようです。

下記、nano JTDX.desktopで重要なのは2か所です。
Exec=/home/ubuntu/jtdx-prefix/bin/jtdx  #フルパスでJTDXをコマンド起動できるように記載
Icon=/home/ubuntu/Pictures/icon/jtdx.jpg #アイコン画像のファイルをフルパスで記載
これは、どこに置いてあっても問題ありません。
サイズは、そんなに大きくする必要はありません。スクリーンショットで取り込んで、さらに、切り取ったので
5から10KBくらいです。以下のアイコン画像を保存して使ってもいいかもです。(^^;


cd Desktop

nano JTDX.desktop

[Desktop Entry]
GenericName=JTDX appli
Name=JTDX
Comment=JTDX Software
Exec=/home/ubuntu/jtdx-prefix/bin/jtdx
Terminal=false
Type=Application
Categories=Network;WebBrowser;
Icon=/home/ubuntu/Pictures/icon/jtdx.jpg
Name[ja]=JTDX.desktop

保存

sudo chmod 775 JTDX.desktop

実行ファイルにします。
そして、~/.local/share/applications/JTDX.desktopにJTDX.desktopファイルを
コピーします。

sudo cp JTDX.desktop ~/.local/share/applications/JTDX.desktop

ubuntuは、このままでは、何も表示されませんが再起動するとメニューに表示されます。\(^o^)/

ATQSLアイコン


基本、JTDXアイコンと同じ考え方です。

cd Desktop

nano TQSL.desktop

[Desktop Entry]
GenericName=TQSL appli
Name=TQSL
Comment=TQSL Software
Exec=/usr/local/bin/tqsl
Terminal=false
Type=Application
Categories=Network;WebBrowser;
Icon=/home/ubuntu/Pictures/icon/tqsl.jpg
Name[ja]=TQSL.desktop

保存

sudo chmod 775 TQSL.desktop

実行ファイルにします。
そして、~/.local/share/applications/TQSL.desktopにTQSL.desktopファイルを
コピーします。

sudo cp TQSL.desktop ~/.local/share/applications/TQSL.desktop
sudo rebot



やっとRaspberry Pi4が本格運用できる環境になりました。
wsjtxも、6月には久しぶりのバージョンアップが予定されています。
シリアル通信経由での送信系トラブルが無いことを祈っていますが、
JTDXに慣れるともうwsjtxには、戻れない気がします。

今回、運用に耐える環境になるまで相当な時間がかかりましたが、Stay Homeだったので
集中してやりました。
これまで、何気なくコンパイルしていたことの意味がだいぶ理解できました。

Ubuntuもいいですが、Ubuntu MATEが早くRapberry pi4に対応してくれるのを
心待ちにしておこうかな。(2020.05.16)