SSブログ

compass の Dire Wolf インストール準備 [Raspberry]

 compass の Dire Wolf インストール準備でトラブル発生。 でも脱出できた?

sudo apt-get update
が無事終了し、
sudo apt-get upgrade
を実行したところ、lightDM のパッケージで質問に N で答えたところ、LCD タッチパネルが真暗に。 (;_;)
で Windows PC に Tera Term をインストールし、ログインするとログインできた。

sudo apt-get upgrade が完了しているかを history で見ると
pi@compass:~ $ history | grep apt-get
15 sudo apt-get install fonts-vlgothic
19 sudo apt-get update
39 history | grep apt-get
pi@compass:~ $
どうやら完了していない。

実行中かを見てみると
pi@compass:~ $ ps aux | grep pi
message+ 430 0.0 0.3 5676 3236 ? Ss Oct19 0:02 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
nobody 447 0.0 0.1 2292 1464 ? Ss Oct19 0:00 /usr/sbin/thd --daemon --triggers /etc/triggerhappy/triggers.d/ --socket /var/run/thd.socket --pidfile /var/run/thd.pid --user nobody /dev/input/event0 /dev/input/event1 /dev/input/event2 /dev/input/event3
pi 663 0.0 0.3 4976 3328 ? Ss Oct19 0:00 /lib/systemd/systemd --user
pi 666 0.0 0.1 6768 1208 ? S Oct19 0:00 (sd-pam)
pi 669 0.0 1.2 51876 12232 ? Ssl Oct19 0:00 /usr/bin/lxsession -s LXDE-pi -e LXDE
pi 693 0.0 0.0 3696 220 ? Ss Oct19 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
pi 696 0.0 0.1 3692 1584 ? S Oct19 0:00 /usr/bin/dbus-launch --exit-with-session x-session-manager
pi 697 0.0 0.2 5624 2384 ? Ss Oct19 0:00 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
pi 703 0.0 0.5 30816 5492 ? Sl Oct19 0:00 /usr/lib/gvfs/gvfsd
pi 708 0.0 0.5 48520 5448 ? Sl Oct19 0:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
pi 718 0.0 1.2 20492 11556 ? S Oct19 0:00 openbox --config-file /home/pi/.config/openbox/lxde-pi-rc.xml
pi 721 0.0 0.9 29976 9076 ? Sl Oct19 0:00 lxpolkit
pi 723 0.1 2.4 99220 22908 ? Sl Oct19 0:10 lxpanel --profile LXDE-pi
pi 724 0.0 1.9 78156 18432 ? Sl Oct19 0:00 pcmanfm --desktop --profile LXDE-pi
pi 731 0.0 0.0 3696 220 ? Ss Oct19 0:00 /usr/bin/ssh-agent -s
pi 741 0.0 0.8 42776 7856 ? Sl Oct19 0:00 /usr/lib/gvfs/gvfs-udisks2-volume-monitor
pi 779 0.0 0.5 29868 5212 ? Sl Oct19 0:00 /usr/lib/gvfs/gvfs-goa-volume-monitor
pi 784 0.0 0.5 29792 5132 ? Sl Oct19 0:00 /usr/lib/gvfs/gvfs-mtp-volume-monitor
pi 790 0.0 0.5 30812 5288 ? Sl Oct19 0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
pi 798 0.0 0.6 42248 6472 ? Sl Oct19 0:00 /usr/lib/gvfs/gvfs-afc-volume-monitor
pi 811 0.0 0.4 6316 4180 tty1 S+ Oct19 0:00 -bash
pi 816 0.0 0.7 60200 7292 ? Sl Oct19 0:00 /usr/lib/gvfs/gvfsd-trash --spawner :1.1 /org/gtk/gvfs/exec_spaw/0
pi 829 0.0 0.6 29692 6368 ? Ssl Oct19 0:00 /usr/lib/menu-cache/menu-cached /tmp/.menu-cached-:0-pi
pi 879 0.0 0.0 0 0 ? Z Oct19 0:00 [sh] <defunct>
pi 961 0.1 1.9 46132 18292 ? Sl Oct19 0:07 lxterminal
pi 962 0.0 0.1 2348 1452 ? S Oct19 0:00 gnome-pty-helper
pi 963 0.0 0.4 6224 4220 pts/0 Ss+ Oct19 0:00 /bin/bash
pi 2054 0.0 0.0 0 0 ? Z Oct19 0:00 [sh] <defunct>
pi 2055 0.0 0.0 0 0 ? Z Oct19 0:00 [sh] <defunct>
ntp 2571 0.0 0.3 5776 3744 ? Ss Oct19 0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 106:111
root 5830 0.0 0.5 12076 5168 ? Ss Oct19 0:00 sshd: pi [priv]
pi 5916 0.0 0.3 12216 3200 ? S Oct19 0:00 sshd: pi@pts/1
pi 5918 0.0 0.4 6316 4336 pts/1 Ss Oct19 0:00 -bash
pi 9283 0.0 0.2 4740 2128 pts/1 R+ 00:24 0:00 ps aux
pi 9284 0.0 0.2 4280 1928 pts/1 S+ 00:24 0:00 grep --color=auto pi
pi@compass:~ $
defunct が気になるけど、どうやら実行していない。
という事は
sudo apt-get upgrade
は実行完了している?
再度、確認。
pi@compass:~ $ ps aux | grep apt-get
pi 9364 0.0 0.2 4276 2036 pts/1 S+ 00:25 0:00 grep --color=auto apt-get
pi@compass:~ $
たぶん
sudo apt-get upgrade
の実行は終わっているみたい。

意を決してリブートすると
pi@compass:~ $ sudo reboot
LCD タッチパネルの画面が表示された。 ヽ(^o^)丿

これで Dire Wolf がインストールできるかな?

raspbian の hostname 設定 (追記あり) [Raspberry]

 raspbian で正常に起動しているもう一つの SD カードで設定を見てみました。

pi@raspberrypi:~ $ cat /etc/hostname
raspberrypi

pi@raspberrypi:~ $ cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

127.0.1.1 raspberrypi
pi@raspberrypi:~ $

前回、compass でうまくいかなかった時の設定と比べると、
127.0.1.1 の記述場所が異なります。
これに合わせて再度挑戦して見ようと思います。

それとデスクトップで確認できるネットワークの状況です。
2016-10-19-105149_800x480_scrot.png
なぜか raspbian のブラウザ Chromium では上の行でだけデスクトップとネットワークの文字が表示されない。
カタカナが表示されないのはなぜだろう?

〔追記〕
compass 側でも同じ /etc/hosts の設定にしたらうまくいきました。
2016-10-19-124032_800x480_scrot.png
これで Dire Wolf のインストールへ進めます。

〔追記2〕 作業内容
① SD カードを初期化して、compass image file を書き込み
② ブートして LCD タッチパネルの設定を実行
③ /etc/hosts を上記にならって修正、リブートし、正常ブートを確認
④ UDRC-II の認識確認とレベル設定を行い、リブートして正常ブートを確認
⑤ Raspberry Pi Configration で Timezone、Keyborad、WiFi Country を設定
⑥ 日本語フォントのインストール
⑦ 再度、リブートして正常ブートを確認

UDRC-II install and boot for the first time (cont.) 追記あり [Raspberry]

 UDRC-II install and boot for the first time の続編です。

OS がブートしなくなったので、SD カードを初期化し、再度 OS を書き込んで立ち上げなおしました。
今度は
① LCD タッチパネルの設定を行い、表示をフレームに合わせる
② UDRC-II が認識されているかを確認
③ UDRC-II のレベル設定を実施
④ 日本語 Web サイトが読めるように日本語フォントをインストール
  sudo apt-get install fonts-vlgothic
⑤ Raspberry Pi Configuration で Timezone、Keyboard、Wifi country を設定。 Locale は英語のままです。
ここでリブートして問題なくブートする事を確認。

やはりホスト名の設定に問題があるようです。
ホスト名は compass に設定されていますが、/etc/hosts に記述されていません。
DHCP で割り当てられた IP アドレスに hostname を設定する方法が分かっていないので、このまま Dire Wolf のインストールに進もうと思います。

〔追記〕
続けて Dire Wolf のインストールに入ったが
sudo apt-get update
sudo apt-get upgrade
でエラーが発生。
やはり hostname の問題を解決しないとダメみたいです。
もう一枚の SD カードにある Raspbian の環境でネットワーク設定を確認してみます。

UDRC-II install and boot for the first time [Raspberry]

 OS の入った SD カードは用意できたので、UDRC-II を Raspberry Pi 3 の上に載せました。

UDRC-II をスタンドオフを使って Raspberry Pi 3 の上に固定しました。
SD カードをセットして電源を入れると OS がブートし、LCD タッチパネルにデスクトップが表示されます。
ターミナルを起動して、LCD タッチパネルの表示が上下逆さまになるのを直します。
sudo leafpad /boot/config.txt
の最後に
lcd_rotate=2
を追加し、リブートします。

リブートしたところで OS の素性を調べると
pi@compass:~ $ uname -a
Linux compass 4.4.10-v7+ #1 SMP Tue May 17 11:18:40 UTC 2016 armv7l GNU/Linux
pi@compass:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
これを見ると、compass は、Raspbian の派生のようです。

次に、UDRC-II が認識されているかを調べます。
pi@compass:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: udrc [udrc], device 0: Universal Digital Radio Controller tlv320aic32x4-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
UDRC-II は card 1 として認識されています。

指示通り、/etc/hosts を直します。 (あとあとこれがブートしなくなる原因だと思う)
pi@compass:~ $ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 compass <= この1行を追加
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

UDRC-II のレベル設定をします。 設定スクリプトは
pi@compass:~ $ curl -L -s https://goo.gl/7rXUFJ
#!/bin/bash

amixer -c udrc -s << EOF
# Set input and output levels to 0dB
sset 'ADC Level' -2.0dB
sset 'LO Driver Gain' 0dB
sset 'PCM' 0.0dB

# Turn on AFOUT
sset 'CM_L to Left Mixer Negative Resistor' '10 kOhm'
sset 'IN1_L to Left Mixer Positive Resistor' '10 kOhm'

# Turn on DISCOUT
sset 'CM_R to Right Mixer Negative Resistor' '10 kOhm'
sset 'IN1_R to Right Mixer Positive Resistor' '10 kOhm'

# Turn off unnecessary pins
sset 'IN1_L to Right Mixer Negative Resistor' 'Off'
sset 'IN1_R to Left Mixer Positive Resistor' 'Off'
sset 'IN2_L to Left Mixer Positive Resistor' 'Off'
sset 'IN2_L to Right Mixer Positive Resistor' 'Off'
sset 'IN2_R to Left Mixer Negative Resistor' 'Off'
sset 'IN2_R to Right Mixer Positive Resistor' 'Off'
sset 'IN3_L to Left Mixer Positive Resistor' 'Off'
sset 'IN3_L to Right Mixer Negative Resistor' 'Off'
sset 'IN3_R to Left Mixer Negative Resistor' 'Off'
sset 'IN3_R to Right Mixer Positive Resistor' 'Off'

sset 'Mic PGA' off
sset 'PGA Level' 0

# Disable and clear AGC
sset 'ADCFGA Right Mute' off
sset 'ADCFGA Left Mute' off
sset 'AGC Attack Time' 0
sset 'AGC Decay Time' 0
sset 'AGC Gain Hysteresis' 0
sset 'AGC Hysteresis' 0
sset 'AGC Max PGA' 0
sset 'AGC Noise Debounce' 0
sset 'AGC Noise Threshold' 0
sset 'AGC Signal Debounce' 0
sset 'AGC Target Level' 0
sset 'AGC Left' off
sset 'AGC Right' off

# Turn off High Power output
sset 'HP DAC' off
sset 'HP Driver Gain' 0
sset 'HPL Output Mixer L_DAC' off
sset 'HPR Output Mixer R_DAC' off
sset 'HPL Output Mixer IN1_L' off
sset 'HPR Output Mixer IN1_R' off

# Turn on the LO DAC
sset 'LO DAC' on

# Turn on AFIN
sset 'LOL Output Mixer L_DAC' on

# Turn on TONEIN
sset 'LOR Output Mixer R_DAC' on
alsactl save
EOF

これを実行すると
pi@compass:~ $ curl -L -s https://goo.gl/7rXUFJ | sudo sh
Simple mixer control 'ADC Level',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 64
Front Left: 20 [31%] [-2.00dB]
Front Right: 20 [31%] [-2.00dB]
Simple mixer control 'LO Driver Gain',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 35
Front Left: 6 [17%] [0.00dB]
Front Right: 6 [17%] [0.00dB]
Simple mixer control 'PCM',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 175
Mono:
Front Left: Playback 127 [73%] [0.00dB]
Front Right: Playback 127 [73%] [0.00dB]
Simple mixer control 'CM_L to Left Mixer Negative Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: '10 kOhm'
Simple mixer control 'IN1_L to Left Mixer Positive Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: '10 kOhm'
Simple mixer control 'CM_R to Right Mixer Negative Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: '10 kOhm'
Simple mixer control 'IN1_R to Right Mixer Positive Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: '10 kOhm'
Simple mixer control 'IN1_L to Right Mixer Negative Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN1_R to Left Mixer Positive Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN2_L to Left Mixer Positive Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN2_L to Right Mixer Positive Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN2_R to Left Mixer Negative Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN2_R to Right Mixer Positive Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN3_L to Left Mixer Positive Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN3_L to Right Mixer Negative Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN3_R to Left Mixer Negative Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'IN3_R to Right Mixer Positive Resistor',0
Capabilities: enum
Items: 'Off' '10 kOhm' '20 kOhm' '40 kOhm'
Item0: 'Off'
Simple mixer control 'Mic PGA',0
Capabilities: pswitch
Playback channels: Front Left - Front Right
Mono:
Front Left: Playback [off]
Front Right: Playback [off]
Simple mixer control 'PGA Level',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 95
Front Left: 0 [0%] [0.00dB]
Front Right: 0 [0%] [0.00dB]
Simple mixer control 'ADCFGA Right Mute',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'ADCFGA Left Mute',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'AGC Attack Time',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 31
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Decay Time',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 31
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Gain Hysteresis',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Hysteresis',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 3
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Max PGA',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 127
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Noise Debounce',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 31
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Noise Threshold',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 31
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Signal Debounce',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 15
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Target Level',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 7
Front Left: 0 [0%]
Front Right: 0 [0%]
Simple mixer control 'AGC Left',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'AGC Right',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'HP DAC',0
Capabilities: pswitch
Playback channels: Front Left - Front Right
Mono:
Front Left: Playback [off]
Front Right: Playback [off]
Simple mixer control 'HP Driver Gain',0
Capabilities: volume
Playback channels: Front Left - Front Right
Capture channels: Front Left - Front Right
Limits: 0 - 35
Front Left: 0 [0%] [-6.00dB]
Front Right: 0 [0%] [-6.00dB]
Simple mixer control 'HPL Output Mixer L_DAC',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'HPR Output Mixer R_DAC',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'HPL Output Mixer IN1_L',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'HPR Output Mixer IN1_R',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [off]
Simple mixer control 'LO DAC',0
Capabilities: pswitch
Playback channels: Front Left - Front Right
Mono:
Front Left: Playback [on]
Front Right: Playback [on]
Simple mixer control 'LOL Output Mixer L_DAC',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'LOR Output Mixer R_DAC',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]

ここで指示通りに
sudo halt
したらブートしません。 やっちゃいました。
おそらく /etc/hosts に追加した行が悪いのだと思うので、これを直したいのですが
家には Linux マシンが無いので、Windows PC で /etc/hosts を書き換えるか
ディスク・イメージから初期化するしかなさそうです。

Raspberry Pi のバックアップ [Raspberry]

 せっかくなので Raspbian をバックアップしてみます。

バックアップにはWin32DiskImager を使います。
① Win32DiskImager を起動してバックアップ先のファイル名を指定します
backup.jpg
② バックアップの実行
backup-2.jpg
100% になれば終了です。

Dire Wolf のインストール (失敗編) [Raspberry]

 今度は Dire Wolf のインストールをしてみます。

1. オーディオ・ライブラリの確認
pi@raspberrypi:~ $ apt-cache search libasound2-dev
libasound2-dev - shared library for ALSA applications -- development files
必要なライブラリは入っているようです。
なので改めてのインストールは飛ばそうかと。

2. Dire Wolf のインストール
https://github.com/wb2osz/direwolf/releases/
からソースファイルをダウンロードします。

ダウンロードした ZIP ファイルを展開します。
pi@raspberrypi:~ $ unzip ./Downloads/direwolf-1.3.zip
Archive: ./Downloads/direwolf-1.3.zip
209a858a6ae76d4b0f8108e98776460496fa00fb
creating: direwolf-1.3/
inflating: direwolf-1.3/.gitattributes
inflating: direwolf-1.3/.gitignore
inflating: direwolf-1.3/CHANGES.md
inflating: direwolf-1.3/LICENSE-dire-wolf.txt
inflating: direwolf-1.3/LICENSE-other.txt
inflating: direwolf-1.3/Makefile
inflating: direwolf-1.3/Makefile.linux
inflating: direwolf-1.3/Makefile.macosx
inflating: direwolf-1.3/Makefile.win
inflating: direwolf-1.3/README.md
inflating: direwolf-1.3/aclients.c
inflating: direwolf-1.3/aprs_tt.c
inflating: direwolf-1.3/aprs_tt.h
inflating: direwolf-1.3/atest.c
inflating: direwolf-1.3/audio.c
inflating: direwolf-1.3/audio.h
inflating: direwolf-1.3/audio_portaudio.c
inflating: direwolf-1.3/audio_stats.c
inflating: direwolf-1.3/audio_stats.h
inflating: direwolf-1.3/audio_win.c
inflating: direwolf-1.3/ax25_pad.c
inflating: direwolf-1.3/ax25_pad.h
inflating: direwolf-1.3/beacon.c
inflating: direwolf-1.3/beacon.h
inflating: direwolf-1.3/config.c
inflating: direwolf-1.3/config.h
inflating: direwolf-1.3/decode_aprs.c
inflating: direwolf-1.3/decode_aprs.h
inflating: direwolf-1.3/dedupe.c
inflating: direwolf-1.3/dedupe.h
inflating: direwolf-1.3/demod.c
inflating: direwolf-1.3/demod.h
inflating: direwolf-1.3/demod_9600.c
inflating: direwolf-1.3/demod_9600.h
inflating: direwolf-1.3/demod_afsk.c
inflating: direwolf-1.3/demod_afsk.h
inflating: direwolf-1.3/digipeater.c
inflating: direwolf-1.3/digipeater.h
inflating: direwolf-1.3/direwolf.c
inflating: direwolf-1.3/direwolf.h
inflating: direwolf-1.3/direwolf.spec
inflating: direwolf-1.3/direwolf.txt
inflating: direwolf-1.3/dlq.c
inflating: direwolf-1.3/dlq.h
creating: direwolf-1.3/doc/
inflating: direwolf-1.3/doc/A-Better-APRS-Packet-Demodulator-Part-1-1200-baud.pdf
inflating: direwolf-1.3/doc/A-Better-APRS-Packet-Demodulator-Part-2-9600-baud.pdf
inflating: direwolf-1.3/doc/A-Closer-Look-at-the-WA8LMF-TNC-Test-CD.pdf
inflating: direwolf-1.3/doc/APRS-Telemetry-Toolkit.pdf
inflating: direwolf-1.3/doc/APRStt-Implementation-Notes.pdf
inflating: direwolf-1.3/doc/APRStt-Listening-Example.pdf
inflating: direwolf-1.3/doc/APRStt-interface-for-SARTrack.pdf
inflating: direwolf-1.3/doc/README.md
inflating: direwolf-1.3/doc/Raspberry-Pi-APRS-Tracker.pdf
inflating: direwolf-1.3/doc/Raspberry-Pi-APRS.pdf
inflating: direwolf-1.3/doc/Raspberry-Pi-SDR-IGate.pdf
inflating: direwolf-1.3/doc/User-Guide.pdf
inflating: direwolf-1.3/doc/WA8LMF-TNC-Test-CD-Results.pdf
inflating: direwolf-1.3/dsp.c
inflating: direwolf-1.3/dsp.h
inflating: direwolf-1.3/dtime_now.c
extracting: direwolf-1.3/dtime_now.h
inflating: direwolf-1.3/dtmf.c
inflating: direwolf-1.3/dtmf.h
inflating: direwolf-1.3/dw-icon.ico
extracting: direwolf-1.3/dw-icon.png
inflating: direwolf-1.3/dw-icon.rc
inflating: direwolf-1.3/dw-start.sh
inflating: direwolf-1.3/dwespeak.bat
extracting: direwolf-1.3/dwespeak.sh
inflating: direwolf-1.3/dwgps.c
inflating: direwolf-1.3/dwgps.h
inflating: direwolf-1.3/dwgpsd.c
inflating: direwolf-1.3/dwgpsd.h
inflating: direwolf-1.3/dwgpsnmea.c
inflating: direwolf-1.3/dwgpsnmea.h
inflating: direwolf-1.3/encode_aprs.c
inflating: direwolf-1.3/encode_aprs.h
inflating: direwolf-1.3/fcs_calc.c
inflating: direwolf-1.3/fcs_calc.h
inflating: direwolf-1.3/fsk_demod_agc.h
inflating: direwolf-1.3/fsk_demod_state.h
inflating: direwolf-1.3/fsk_filters.h
inflating: direwolf-1.3/fsk_gen_filter.h
inflating: direwolf-1.3/gen_packets.c
inflating: direwolf-1.3/gen_tone.c
inflating: direwolf-1.3/gen_tone.h
inflating: direwolf-1.3/generic.conf
creating: direwolf-1.3/geotranz/
inflating: direwolf-1.3/geotranz/README-FIRST.txt
inflating: direwolf-1.3/geotranz/error_string.c
inflating: direwolf-1.3/geotranz/error_string.h
inflating: direwolf-1.3/geotranz/mgrs.c
inflating: direwolf-1.3/geotranz/mgrs.h
inflating: direwolf-1.3/geotranz/polarst.c
inflating: direwolf-1.3/geotranz/polarst.h
inflating: direwolf-1.3/geotranz/readme.txt
inflating: direwolf-1.3/geotranz/releasenotes.txt
inflating: direwolf-1.3/geotranz/tranmerc.c
inflating: direwolf-1.3/geotranz/tranmerc.h
inflating: direwolf-1.3/geotranz/ups.c
inflating: direwolf-1.3/geotranz/ups.h
inflating: direwolf-1.3/geotranz/usng.c
inflating: direwolf-1.3/geotranz/usng.h
inflating: direwolf-1.3/geotranz/utm.c
inflating: direwolf-1.3/geotranz/utm.h
inflating: direwolf-1.3/grm_sym.h
inflating: direwolf-1.3/hdlc_rec.c
inflating: direwolf-1.3/hdlc_rec.h
inflating: direwolf-1.3/hdlc_rec2.c
inflating: direwolf-1.3/hdlc_rec2.h
inflating: direwolf-1.3/hdlc_send.c
inflating: direwolf-1.3/hdlc_send.h
inflating: direwolf-1.3/igate.c
inflating: direwolf-1.3/igate.h
inflating: direwolf-1.3/kiss.c
inflating: direwolf-1.3/kiss.h
inflating: direwolf-1.3/kiss_frame.c
inflating: direwolf-1.3/kiss_frame.h
inflating: direwolf-1.3/kissnet.c
inflating: direwolf-1.3/kissnet.h
inflating: direwolf-1.3/latlong.c
inflating: direwolf-1.3/latlong.h
inflating: direwolf-1.3/ll2utm.c
inflating: direwolf-1.3/log.c
inflating: direwolf-1.3/log.h
inflating: direwolf-1.3/log2gpx.c
creating: direwolf-1.3/man1/
inflating: direwolf-1.3/man1/aclients.1
inflating: direwolf-1.3/man1/atest.1
inflating: direwolf-1.3/man1/decode_aprs.1
inflating: direwolf-1.3/man1/direwolf.1
inflating: direwolf-1.3/man1/gen_packets.1
inflating: direwolf-1.3/man1/ll2utm.1
inflating: direwolf-1.3/man1/log2gpx.1
inflating: direwolf-1.3/man1/text2tt.1
inflating: direwolf-1.3/man1/tt2text.1
inflating: direwolf-1.3/man1/utm2ll.1
inflating: direwolf-1.3/mgn_icon.h
creating: direwolf-1.3/misc/
inflating: direwolf-1.3/misc/README-dire-wolf.txt
inflating: direwolf-1.3/misc/strcasestr.c
inflating: direwolf-1.3/misc/strlcat.c
inflating: direwolf-1.3/misc/strlcpy.c
inflating: direwolf-1.3/misc/strsep.c
inflating: direwolf-1.3/misc/strtok_r.c
inflating: direwolf-1.3/morse.c
inflating: direwolf-1.3/morse.h
inflating: direwolf-1.3/multi_modem.c
inflating: direwolf-1.3/multi_modem.h
inflating: direwolf-1.3/nmea.c
inflating: direwolf-1.3/nmea.h
inflating: direwolf-1.3/pfilter.c
inflating: direwolf-1.3/pfilter.h
inflating: direwolf-1.3/ptt.c
inflating: direwolf-1.3/ptt.h
inflating: direwolf-1.3/rdq.c
inflating: direwolf-1.3/rdq.h
inflating: direwolf-1.3/recv.c
inflating: direwolf-1.3/recv.h
inflating: direwolf-1.3/redecode.c
inflating: direwolf-1.3/redecode.h
creating: direwolf-1.3/regex/
inflating: direwolf-1.3/regex/COPYING
inflating: direwolf-1.3/regex/INSTALL
inflating: direwolf-1.3/regex/LICENSES
extracting: direwolf-1.3/regex/NEWS
extracting: direwolf-1.3/regex/README
inflating: direwolf-1.3/regex/README-dire-wolf.txt
inflating: direwolf-1.3/regex/re_comp.h
inflating: direwolf-1.3/regex/regcomp.c
inflating: direwolf-1.3/regex/regex.c
inflating: direwolf-1.3/regex/regex.h
inflating: direwolf-1.3/regex/regex_internal.c
inflating: direwolf-1.3/regex/regex_internal.h
inflating: direwolf-1.3/regex/regexec.c
inflating: direwolf-1.3/rpack.h
inflating: direwolf-1.3/rrbb.c
inflating: direwolf-1.3/rrbb.h
inflating: direwolf-1.3/sdr.conf
inflating: direwolf-1.3/search_sdks.sh
inflating: direwolf-1.3/serial_port.c
inflating: direwolf-1.3/serial_port.h
inflating: direwolf-1.3/server.c
inflating: direwolf-1.3/server.h
inflating: direwolf-1.3/symbols-new.txt
inflating: direwolf-1.3/symbols.c
inflating: direwolf-1.3/symbols.h
inflating: direwolf-1.3/symbolsX.txt
creating: direwolf-1.3/telemetry-toolkit/
inflating: direwolf-1.3/telemetry-toolkit/telem-balloon.conf
inflating: direwolf-1.3/telemetry-toolkit/telem-balloon.pl
inflating: direwolf-1.3/telemetry-toolkit/telem-bits.pl
inflating: direwolf-1.3/telemetry-toolkit/telem-data.pl
inflating: direwolf-1.3/telemetry-toolkit/telem-data91.pl
inflating: direwolf-1.3/telemetry-toolkit/telem-eqns.pl
inflating: direwolf-1.3/telemetry-toolkit/telem-m0xer-3.txt
inflating: direwolf-1.3/telemetry-toolkit/telem-parm.pl
inflating: direwolf-1.3/telemetry-toolkit/telem-seq.sh
inflating: direwolf-1.3/telemetry-toolkit/telem-unit.pl
inflating: direwolf-1.3/telemetry-toolkit/telem-volts.conf
inflating: direwolf-1.3/telemetry-toolkit/telem-volts.py
inflating: direwolf-1.3/telemetry.c
inflating: direwolf-1.3/telemetry.h
inflating: direwolf-1.3/textcolor.c
inflating: direwolf-1.3/textcolor.h
inflating: direwolf-1.3/tocalls.txt
inflating: direwolf-1.3/tq.c
inflating: direwolf-1.3/tq.h
inflating: direwolf-1.3/tt_text.c
inflating: direwolf-1.3/tt_text.h
inflating: direwolf-1.3/tt_user.c
inflating: direwolf-1.3/tt_user.h
inflating: direwolf-1.3/ttcalc.c
extracting: direwolf-1.3/tune.h
inflating: direwolf-1.3/utm2ll.c
inflating: direwolf-1.3/version.h
inflating: direwolf-1.3/walk96.c
inflating: direwolf-1.3/xid.c
inflating: direwolf-1.3/xmit.c
inflating: direwolf-1.3/xmit.h

では make してみます。
pi@raspberrypi:~/direwolf-1.3 $ make
gcc -O3 -pthread -Igeotranz -ffast-math -mfpu=neon -DUSE_ALSA -c -o direwolf.o direwolf.c
gcc -O3 -pthread -Igeotranz -ffast-math -mfpu=neon -DUSE_ALSA -c -o config.o config.c
gcc -O3 -pthread -Igeotranz -ffast-math -mfpu=neon -DUSE_ALSA -c -o recv.o recv.c
gcc -O3 -pthread -Igeotranz -ffast-math -mfpu=neon -DUSE_ALSA -o gen_fff -DGEN_FFF demod_afsk.c dsp.c textcolor.c -lm -lpthread -lrt -lasound
/usr/bin/ld: -lasound が見つかりません
collect2: error: ld returned 1 exit status
Makefile.linux:257: recipe for target 'fsk_fast_filter.h' failed
make: *** [fsk_fast_filter.h] Error 1
やはりエラーが出ます。
どうやら asound というオーディオのライブラリが見つからないようです。
え~、そんな事あるのという感じでググっていますが、参考になるところが見つかりません。
やはり Raspberry Pi のオーディオまわりを勉強しないとエラー回避の道は遠いかもしれません。

仕方ないので UDRC-II のインストールへトライしてみます。

Raspbian への Dire Wolf インストール事前準備 [Raspberry]

 Dire Wolf のインストール前に幾つかの確認事項があります。

1. Raspbian のバージョン確認
lsb_release を使ってバージョンを確認します。
pi@raspberrypi:/usr/bin $ ./lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
pi@raspberrypi:/usr/bin $
新しい jessie が入っています。

2. gcc バージョンの確認
次に gcc がハードウェア浮動小数点演算をサポートしているかを確認します。
pi@raspberrypi:~ $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.9/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Raspbian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 4.9.2 (Raspbian 4.9.2-10)
pi@raspberrypi:~ $
--with-fpu=vfp --with-float=hard
の行があるのでサポートされています。

3. 次に OS、Firmware のアップデート
sudo apt-get update をして
sudo apt-get upgrade をすると
設定ファイル '/etc/lightdm/lightdm.conf'
==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
==> パッケージ配布元が更新版を提供しています。
ここはNで変更なしでパスして
再度
pi@raspberrypi:~ $ sudo apt-get upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています ... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
をやって、
こちらのコマンドも実行してみた。(慣れてないので違いは不明)
pi@raspberrypi:~ $ sudo apt-get dist-upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています ... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
次にこれを実行。ファームウェアがアップデートされるらしい。
sudo rpi-update
pi@raspberrypi:~ $ sudo rpi-update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** Performing self-update
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12022 100 12022 0 0 14526 0 --:--:-- --:--:-- --:--:-- 14519
*** Relaunching after update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
*** We're running for the first time
*** Backing up files (this will take a few minutes)
*** Backing up firmware
*** Backing up modules 4.4.21-v7+
This update bumps to rpi-4.4.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=144087
##############################################################
*** Downloading specific firmware revision (this will take a few minutes)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 168 0 168 0 0 211 0 --:--:-- --:--:-- --:--:-- 211
100 51.7M 100 51.7M 0 0 283k 0 0:03:06 0:03:06 --:--:-- 171k
*** Updating firmware
*** Updating kernel modules
*** depmod 4.4.23+
*** depmod 4.4.23-v7+
*** Updating VideoCore libraries
*** Using HardFP libraries
*** Updating SDK
*** Running ldconfig
*** Storing current firmware revision
*** Deleting downloaded files
*** Syncing changes to disk
*** If no errors appeared, your firmware was successfully updated to 840a496a84e9e76ee3aef42918eecac06bd7f610
*** A reboot is needed to activate the new firmware
sudo reboot
でリブートします。

次に悪さをするパッケージ pulseaudio の削除です。
pi@raspberrypi:~ $ sudo apt-get remove --purge pulseaudio
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
pulseaudio* pulseaudio-module-bluetooth* pulseaudio-module-x11*
アップグレード: 0 個、新規インストール: 0 個、削除: 3 個、保留: 0 個。
この操作後に 4,969 kB のディスク容量が解放されます。
続行しますか? [Y/n] Y
(データベースを読み込んでいます ... 現在 121303 個のファイルとディレクトリがインストールされています。)
pulseaudio-module-x11 (5.0-13) を削除しています ...
pulseaudio-module-bluetooth (5.0-13) を削除しています ...
pulseaudio (5.0-13) を削除しています ...
pulseaudio (5.0-13) の設定ファイルを削除しています ...
man-db (2.7.0.2-5) のトリガを処理しています ...
libc-bin (2.19-18+deb8u6) のトリガを処理しています ...
pi@raspberrypi:~ $ sudo apt-get autoremove
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
libwebrtc-audio-processing-0 rtkit
アップグレード: 0 個、新規インストール: 0 個、削除: 2 個、保留: 0 個。
この操作後に 268 kB のディスク容量が解放されます。
続行しますか? [Y/n] Y
(データベースを読み込んでいます ... 現在 121084 個のファイルとディレクトリがインストールされています。)
libwebrtc-audio-processing-0:armhf (0.1-3) を削除しています ...
rtkit (0.11-2) を削除しています ...
libc-bin (2.19-18+deb8u6) のトリガを処理しています ...
man-db (2.7.0.2-5) のトリガを処理しています ...
dbus (1.8.20-0+deb8u1) のトリガを処理しています ...

ここまでで事前準備は終了です。
次はいよいよ Dire Wolf のインストールです。

ちなみにこの記事は Raspberry Pi 3 から書いています。
日本語入力も快適です。ただし、キーボードが JIS で違和感ありですが。
(普段の PC は ASCII ライクな英語キーボードです)
スクリーンショットも scrot というコマンドで撮れています。

UDRC-II が届いた [Raspberry]

 今日、UDRC-II が届きました。

DSC06142.JPG
でも、
Dire Wolf のサイトを見ていると UDRC-II の為に特殊な OS をインストールしなくても普通の Raspbian でも使えそうです。
そこで
① 今の Raspbian で Dire Wolf をインストールし、手持ちの USB オーディオ・アダプターが使えるか試す
② 使えたら、ハンディ機で受信した 9600bps のパケットがデコードできるかを確認する
③ 次に、エンコードしたパケットを VOX 制御で送信し、FT2D などでデコードできるかを確認する
  VOX 制御がうまくない場合は GPIO のポートで PTT 制御を行う
④ Xastir をインストールし、連携して動くことを確認する
⑤ UDRC-II をインストールして使ってみる
と方針変更します。
②まではケーブル接続だけで行けますが、③ではハードウェアが必要です。
これはブレッドボードで対応する予定です。

UDRC-II はどこまで来たかな [Raspberry]

 NW Digital Radio に発注した UDRC-II がどこまで来たかを調べてみました。

USPS Product & Tracking Information を見ると
Your item departed our USPS facility in SAN FRANCISCO, CA 94128 on October 9, 2016 at 10:42 pm. The item is currently in transit to the destination.
とありますから、9日にサンフランシスコを出ているようです。
日本には2~3日で来ている筈なのですが、まだ通関には届いていないようです。
来週くらいには届くかな。
それまでに Raspberry Pi 3 側の準備をしておかねば。

Raspberry Pi 3 と LCD タッチパネルを動かした [Raspberry]

 Raspberry Pi 3 と LCD タッチパネルが届いたので動かしてみました。

まず、Amazon で買ったものは
1.Raspberry Pi 3 Model B
2.Transcend microSDHCカード 32GB Class10
3.Raspberry Pi スターターパック (Pi3用Standard)
4.Raspberry Pi Official 7" Touch Screen LCD+フレーム
5.2台同時充電対応(Y字)ケーブル・2.4A出力対応
です。

まず、Raspberry Pi 3 の動作確認として、スターターパックの microSD を使って起動してみると、いきなり Raspbian が立ち上がります。
おおと思って、
$ sudo apt-get update
$ sudo apt-get upgrade
を行うといきなり disk full のエラー発生。 なんじゃそれと思い、
しかたなく、microSD を SD フォーマッターでフォーマット。
初心者としてまっとうな NOOBS をダウンロードしてコピー。
ここからは定石に従って HDMI に PC のモニターを繋いで NOOBS を起動。
Raspbian が起動したので、update、upgrade を実行。
日本語環境を入れて、Raspberry Pi Configration を実行。
立ち上がったところで WiFi を設定。 これでネットワーク・ケーブルにさようなら。
ディスプレイを LCD タッチパネルに繋ぎ変えてリブート。
LCD タッチパネルでデスクトップが動いています。
でも、絵が上下逆さま。
$ sudo leafpad /boot/config.txt
で、最下行に
lcd_rotate=2
を追加。
リブートすると、やっとまともなデスクトップの登場。
$ sudo apt-get install matchbox-keyboard
でタッチパネル用キーボードの追加。
これは緊急時用ですな。 普段は USB マウスとキーボードかな。
Bluetooth もあるので、キーボードとマウスもワイヤレス化しよう。

ここまで来たので、次は2.の microSDHC カードに UDRC-II をサポートする Compass Linux と direwolf をインストールして、タッチパネルと UDRC-II を使えるようにしたい。
UDRC-II が付く前に、これと OpenTracker USB を繋いでみよう。

フレームを付けたところ
DSC06133.JPG
正面から
DSC06135.JPG
横から
DSC06136.JPG
DSI のコネクタ
DSC06137.JPG
HDMI モニターで設定中
DSC06138.JPG
LCD タッチパネルで設定中
DSC06139.JPG
ブラウザーの画像
DSC06140.JPG
ターミナルとタッチ・キーボード
DSC06141.JPG

Raspberry Pi 3 の本を買いました [Raspberry]

 Raspberry Pi 3 の本を買いました。





なんで急に Raspberry Pi 3 かと言うと、NW Digital Radio から発売さている UDRC というオーディオ・インターフェースを使って、Software TNC を実行し、APRS の表示をタッチパネル LCD に出したいからです。
Compass Linux と direwolf を使うとできるようです。
direwolf の説明には
Dire Wolf is a software "soundcard" modem/TNC and APRS encoder/decoder. It can be used stand-alone to observe APRS traffic, as a digipeater, APRStt gateway, or Internet Gateway (IGate).
It can also be used as a virtual TNC for other applications such as APRSIS32, UI-View32, Xastir, APRS-TW, YAAC, UISS, Linux AX25, SARTrack, RMS Express, and many others.
とあります。
この Dire Wolf は、300、1200、9600 baud をサポートしているので、高価な TNC を買わなくても 9600 baud が使えます。
Raspberry Pi 3 で Xastir を動かし、VX-3 などの小型ハンディ機を付ければ、常時起動していても電気代を気にせずに動かせます。