#author("2024-06-02T07:42:03+09:00","","")
#author("2024-06-02T07:42:42+09:00","","")
&ref(S_PB030551.jpg);~
&size(20){&color(white,blue){JE7JCX};};です。~
~
***ここから巣立っていった局 [#p84347bb]
-青森県青森市 JE7UPL-10~
~
***前書き [#uc30a9c1]
APRSのiGate局を日本全国に増やしていきたいので、当局が日本で一番優しいと思われる[[ラズベリーパイ3:https://ja.wikipedia.org/wiki/Raspberry_Pi]]+RTL-SDRドングル+[[DireWolf:https://github.com/wb2osz/direwolf]]で構築する受信専用iGate局の設定マニュアルを書いてみました。~
なお、内容を改善する為内容は随時加筆しますので、その点はご了承お願いします。~
~
RTL-SDRというアプリが144.66MHzを受信して音声データーを取得、[[DireWolf:https://github.com/wb2osz/direwolf]]というアプリがその音声データーからパケットデーターへ変換(デコード)し、その内容APRSのサーバーへ送信するという構成で実現されていると思っています。(違ってたらごめんなさい!)~
尚、DireWolfの説明書きには1200bps/9600bps対応って書いていますが、当局は1200bpsしか試したことはありませんので、その旨ご理解をお願いします。)
~
これを行うにあたっては、ラズベリーパイ3がインストール出来て初期設定が終わった段階から始める内容で書いています。なので、[[Linux:https://www.sejuku.net/blog/4948]]から始まり、[[bash:https://www.sejuku.net/blog/54333]]((Windowsでいうコマンドプロンプト))だとか[[vim:https://qiita.com/JpnLavender/items/fabcc79b4ab0d52e1f6d]]((Windowsでいう高機能版メモ帳、ファイルの開き方など操作方法はここでは割愛します。vimだけでこのページが終わってしまうほど高機能です。))が多少使えないと、この内容はチンプンカンプンだと思います。~
当局はLinuxについては全くの独学です。~
現在会社では[[CentOS7:https://www.centos.org/]]のサーバー上でPHP+MySQLでのデーターベースサーバー運用や、自宅では同CentOS7のサーバー上で、ブログの公開やキャシュサーバー、メールサーバーの運用をしています。~
サーバーにはモニタはつながってなくて、すべてWin機からリモートアクセスメンテナンスをしています。~
&color(red){頑張ればなんとかなるモノです。覚えはじめの頃は変なコマンド打ってサーバーが起動できなくなったりとか、そんなんばっかりでした。まぁそれでも死ぬわけではないし、ハードが壊れるわけでないし。};~
では頑張って始めましょー!~
***必要なモノ [#jb0d0bad]
・[[ラズベリーパイ3:https://ja.wikipedia.org/wiki/Raspberry_Pi]] 本体~
・マイクロSDカード 16GBとか32GBとか。おそらくiGateやるだけなら16GBで大丈夫かと。~
・ACアダプタ ラズベリーパイ3用~
・ケースとヒートシンク 基板むき出しだと、金属物落としたらパチッてなって終わりますので。~
・USBマウスとキーボード ラズベリーパイ3用ではなくてもWindowsPCから一時借用でもOK~
・HDMIケーブルかDVI→HDMI変換コネクタか、VGA→HDMI変換コネクタ~
将来的にはマウスもキーボードもHDMI変換も使わなくなりますが。~
・SDRドングル RTL2832Uとか書かれていれば動くと思います。~
・アンテナ変換コネクタ 当局はM型コネクタをBNC型コネクタに変換後MCX-P/BNC-J変換ケーブルでUSBドングルにアンテナを接続しています。~
・PC用モニタ~
・WindowsPC あれば良いですね。設定その他が楽になります。~
・LAN環境 無線LANでも有線LANでも構わないです。安定するなら有線LANでしょうけど、アンテナの位置による同軸ケーブルの制約を受ける可能性とかを考えると、やはり無線LANのほうがラズベリーパイ3の置場と取り回しが便利になると思います。~
~
一番手っ取り早いのは、アマゾンなどから一式セットになったスターターキットを買うのが良いと思います。私も最初はそうしました。~
2台目は本体とケースを別々に買って。~
その時のケースは金属ケースにして、ちょっとおしゃれ!になんて思いまして。~
***Linuxにおけるユーザーの考え方 [#q5a170f1]
Linuxでは、OSの管理全般はアドミニストレータと呼ばれるユーザーID"[[root:https://eng-entrance.com/linux-root]]"と、一般ユーザー(IDは任意)、に分けられます。~
一般ユーザーはOSの動作そのものにまつわるモノは一切手出しできないと考えてください。~
なので、一般ユーザーはラズベリーパイ3の/home/pi以外のディレクトリは操作できない、それ以外の例えば/etc以下のファイルを操作する場合は、"root"でログインするか"[[sudo:https://www.atmarkit.co.jp/ait/articles/1611/28/news036.html]]"で管理者権限でコマンドを実行する必要があります。~
この説明書きでは管理者権限で、とか、一般ユーザーでとか、あるいはコマンドの先頭に"#"が書かれていれば管理者権限、"$"が書かれていれば一般ユーザーで実行していると考えてください。~
***最初に [#p85c37da]
普通にOSをインストールする。~
→これはネットを調べると、いくらでも例題が出てきます。[[ググった結果はここをクリック。:https://www.google.com/search?newwindow=1&client=firefox-b-d&sxsrf=ACYBGNQPVVEnwnCHBrCmIxVxo26P1ZKrNQ%3A1572856210256&ei=kuG_XZegD7-Nr7wPqoeDyAQ&q=%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A43%E3%80%80%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&oq=%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A43%E3%80%80%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&gs_l=psy-ab.3..0j0i30l2j0i8i30l5.92501.108198..110678...6.0..0.165.1587.9j6......0....1..gws-wiz.......0i67j0i4j0i131i4j0i4i30.klEsg4MfqHc&ved=0ahUKEwiXscf9kdDlAhW_xosBHarDAEkQ4dUDCAo&uact=5]]~
***初期設定[#j649db57]
・言語設定から、タイムゾーンやキーボードやWiFi地域設定とかです。~
インターフェースで[[ssh:https://www.kagoya.jp/howto/rentalserver/ssh/]]を使う設定を忘れないでください。忘れても常にラズベリーパイ3の画面を見て設定する方は結構ですが、普通はラズベリーパイ3には電源と受信用アンテナの同軸ケーブルだけがつながり、残りの全ての設定をリモートから操作するのが一般的だと思います。~
・ユーザーrootとユーザーpiのパスワード設定はしておいてください。また設定したパスワードは忘れないようにメモをしておいてください。~
***管理者権限の設定 [#ub9f2e3c]
管理者にならないと何も始まらないとので、まずは管理者権限を設定します。~
管理者権限とは、例えばユーザー名suでログインできる状況だとか、特権ユーザー、スーパーユーザーだとかという内容です。~
具体的にはsuのパスワードは初期で空なのでそれを設定します。~
ツールバーのLXTerminal(以降ターミナルとかシェルと表現します。)を起動し、プロンプトが表示されたら~
$passwd root「Enter」~
を行うと、パスワードを聞かれるので同じパスワードを二回入力します。~
以降、設定を弄る場合、ソフトウェアをインストールする場合は、スーパーユーザーで作業をします。~
一般ユーザーで作業していて、権限がないというエラーが表示されたら、スーパーユーザーになるということで大丈夫だと思います。~
~
***WiFi設定 [#c83d3e3d]
管理者権限((rootでログインしvim wpa_supplicant.confを実行するか、一般ユーザーでsudo vim wpa_supplicant.confを実行))で~
~
/etc/wpa_supplicant.confに下記を追加。~
ターミナル上でのコマンドは、~
#vim /etc/wpa_supplicant/wpa_supplicant.conf~
です。&color(white,red){書く前に[i]を押して挿入モードにしないと文章が打てません。挿入モードを抜けるときは[esc]を押します。vimの基本中の基本なので忘れないでください。下に出てくるcrontabの編集時も[i]を押さないと編集できません。編集が終わって保存終了するときは、[esc][w][q][enter]です。};~
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev~
update_config=1~
country=JP~
~
network={~
ssid="BuffaloG"&color(white,red){←あなたの無線ルーターのSSIDを書いてください。};~
psk="XXXXXXXXXXXXX"&color(white,red){←ここはあなたのルーターにアクセスするためのpskキーを書いてください。};~
key_mgmt=WPA-PSK~
}~
~
下はvimで開いたwpa_supplicant.confです。pskキーは都合ぼかしています。~
&ref(20191103-001.JPG);
***LANのIP固定設定 [#s8014c5c]
ipを固定しないと、例えばWindowsPCからssh((Linux系OSのリモートアクセスの一つの方法です。))でアクセスするとき毎回ラズベリーパイ3のipを調べるとかしないといけないので管理者権限で/etc/dhcpcd.confファイルに下記を追加します。~
interface wlan0~
static ip_address=192.168.11.11/24&color(white,red){←付与したいipを書きます。/24も書いてください。};~
static routers=192.168.11.1&color(white,red){←無線ルーターのipアドレスを書きます。};~
static domain_name_servers=192.168.11.1&color(white,red){←無線ルーターのipアドレスを書きます。};~
これでWindowsPCからssh接続ができるようになりました。~
下の画像は/etc/dhcpcd.confをvimで開いた画像です。~
&ref(20191103-002.JPG);~
その後ターミナル上で管理者権限でrebootします。~
#reboot[ENTER]~
***RTL-SDRアプリのインストール [#o78577b2]
ターミナル上で一般ユーザー"pi"で~
$sudo apt-get install rtl-sdr~
を実行します。~
***RTL-SDRの設定 [#uc16c4b4]
管理者権限で/etc/modprobe.d/rtlsdr-blacklist.conf に以下を記入します。~
blacklist dvb_usb_rtl28xxu~
blacklist rtl2830~
blacklist dvb_usb_v2~
blacklist dvb_core~
~
ターミナル上で管理者権限でrebootします。~
#reboot[ENTER]~
***SDRドングルのテスト [#k093d2c1]
USBにSDRドングルを刺します。~
その後ターミナルから下記を打ち、テストを実施します。~
ここは一般ユーザー"pi2"でもOKです。~
$ rtl_test -t~
下記のメッセージが出れば認識されています。~
Found 1 device(s):~
0: Realtek, RTL2838UHIDIR, SN: 00000001~
Using device 0: Generic RTL2832U OEM~
Found Rafael Micro R820T tuner~
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8
33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
Sampling at 2048000 S/s.~
No E4000 tuner found, aborting~
***DireWolfのインストール~ [#v8b2fd5d]
ターミナル上からのapt-get install direwolfのインストールでは、バージョンの古い方がインストールされるかもしれないので、gitでcloneし手動インストールします。~
ターミナル上一般ユーザー"pi"で~
$cd /home/pi~
$git clone https://www.github.com/wb2osz/direwolf~
$cd direwolf~
$make~
そうしたら~
Makefile.linux:270: *** /usr/include/alsa/asoundlib.h does not exist.  Install it with "sudo apt-get install libasound2-dev" or "sudo yum install alsa-lib-devel" .  中止.~
とasoundlib.hファイルが無いと怒られたので、~
ターミナル上で~
$sudo apt-get install libasound2-dev します。~
もう一回make~
今度はいきました。~
以降は管理者権限で~
#sudo make install~
つぎは~
#make install-conf~
その次は~
#make install-rpi~
です。~
~
***/home/pi/sdr.confの編集 [#e46ad1ca]
その次に/home/pi/sdr.confにコールサイン、APRSサーバーログインコードを書きます。~
ターミナル上で一般ユーザー"pi"でcd /home/piして~
$vim sdr.conf
します。
以下は私のsdr.confです。~
#~
# Sample configuration for SDR read-only IGate.~
#~
# We might not have an audio output device so set to null.~
# We will override the input half on the command line.~
ADEVICE null null~
CHANNEL 0~
MYCALL JE7JCX-10~
# First you need to specify the name of a Tier 2 server.~
# The current preferred way is to use one of these regional rotate addresses:~
#	noam.aprs2.net 		- for North America~
#	soam.aprs2.net		- for South America~
#	euro.aprs2.net		- for Europe and Africa~
#	asia.aprs2.net 		- for Asia~
#	aunz.aprs2.net		- for Oceania~
IGSERVER sapporo.aprs2.net&color(white,red){←ネットを調べて近い場所のサーバーを書いてください。};~
~
# You also need to specify your login name and passcode.~
# Contact the author if you can't figure out how to generate the passcode.~
~
IGLOGIN JE7JCX-10 XXXXX&color(white,red){←XXXXXには自分のパスコードを書いてください。};~
~
# That's all you need for a receive only IGate which relays~
# messages from the local radio channel to the global servers.~
下はvimで開いたsdr.confの画像です。~
&ref(20191103-005.JPG);
***direwolf.confの設定 [#j45151b0]
その次は/home/pi/direwolf.confの編集です。~
ターミナル上一般ユーザー権限で~
vim direwolf.conf
で編集します。
私の場合書くのは~
MYCALL JE7JCX-10~
IGLOGIN JE7JCX-10 XXXXX~
OBEACON sendto=IG DELAY=0:10 EVERY=30:00 OBJNAME=JE7JCX-10 SYMBOL=\& overlay=I lat=40^17.54N long=140^49.76E comment="RaspberryPi3 RX-Only iGate 144.66MHz 1.2kbps OP:Nara"~
だけです。~
***dw-start.shの編集 [#p78680be]
/home/pi/dw-start.shを編集します。ターミナル上一般ユーザーでvim dw-start.shで編集できます。書く内容は下記だけです。~
rtl_fm -f 144.66M -p 20 -o 4 - 2>/var/log/direwolf/rtl_fm.log | direwolf -c /home/pi/direwolf.conf -t 0 -n 1 -r 24000 -b 16 - 2> /var/log/direwolf/error.log 1>/var/log/direwolf/output.log &~
上の文章は、direwolfの実行と、ログファイル((2は異常時の意味でerror.logに、1は正常時でoutput.logに書き出すという意味。))に書き出す設定を書いています。~
vim上でdw-start.shを開いた画像です。色はついていますが、書いていることは同じです。~
&ref(20191103-003.JPG);
***dw-start.shの実行 [#ybafbd34]
一般ユーザー権限でcd /home/pi/でsh dw-start.shを実行~
***エラー対応 [#g2318803]
ログファイルが作れないと言うエラーが出るので、ターミナル上管理者権限で~
mkdir /var/log/direwolfする。~
chown pi:pi /var/log/direwolfします。~
chmod 777 /var/log/direwolfします。~
その次にターミナル上で~
cd /var/log/direwwolfします。~
ターミナル上でtouch error.logします。~
ターミナル上でtouch output.logします。~
***rc.localの編集 [#v963b25e]
ターミナル上から管理者権限で/etc/rc.localをvimで編集します。~
#vim /etc/rc.local~
/bin/sh /home/pi/dw-start.shを行頭の#が連続して終わったあたりに記入します。~
下の画像はvimでrc.localを開いた画像です。~
&ref(20191103-004.JPG);~
***再起動 [#q794b9fa]
管理者権限でリブートします。
#reboot~
***direwolfの起動確認 [#g00f1f42]
一般ユーザーでログインし、ターミナル上でps aux | grep direwolfで起動しているか確認します。~
root       542 11.4  0.5 123396  5516 ?        Sl   20:13  18:51 direwolf -c /home/pi/direwolf.conf -t 0 -n 1 -r 24000 -b 16 -~
と表示が出ていれば起動に成功しています。~
***APRSのサーバーにログイン成功、パケットを送れているか確認します。 [#lb3937d2]
APRSサーバーのステータスを確認し、JE7JCX-10がログインしているか確認します。~
WindowsPCのブラウザで~
http://211.132.61.243:14501/
を確認し、JE7JCX-10が表示されていることを確認します。~
そのまま動かして、ちゃんとサーバーへPBEACONを出しているか、aprs.fiのグラフで確認します。~
***実パケット受信確認 [#w2920ac7]
APRSハンディトランシーバーか、APRSモービル機で近所を歩き走ってちゃんと受信パケットをサーバーに送っているか確認します。~
http://aprs.fiで軌跡が表示されるかどうかを見ます。~
~
&ref(20191103capture.JPG);
~
~
下の画像は、DireWolfの受信パケット出力のログです。~
/var/log/direwolf/output.logです。~
管理者権限でターミナルから~
#cat /var/log/direwolf/output.log~
を打つことで見ることが出来ます。~
&ref(20191107_capture.JPG);
~
***ログファイルサイズ0化設定 [#b60e9c9f]
なにげにラズベリーパイ3のログファイルがどんどん増えていくので、一定期間で消す設定をします。~
編集するファイルは~
/root/log_del.shです。&color(white,red){←名前はなんでも良いです。};~
管理者権限で~
#vim /root/log_del.sh~
書く内容は、~
 #!/bin/bash
 : > /var/log/Xorg.o.log
 : > /var/log/Xorg.0.log
 : > /var/log/auth.log
 : > /var/log/boot.log
 : > /var/log/btmp
 : > /var/log/daemon.log
 : > /var/log/cron.log
 : > /var/log/debug.log
 : > /var/log/debug
 : > /var/log/dmesg
 : > /var/log/dpkg.log
 : > /var/log/kern.log
 : > /var/log/last.log
 : > /var/log/lastlog
 : > /var/log/messages.log
 : > /var/log/messages
 : > /var/log/syslog
 : > /var/log/user.log
 : > /var/log/wtmp.log
 : > /var/log/wtmp
 : > /var/log/alternatives.
 rm -f /var/log/*.gz
 rm -f /var/log/*.1
 rm -f /var/log/*.2
~
これをcrontabに書いて、実行するとログファイルサイズは0になります。~
下の画像はvimでlog_del.shを開いた画像です。下から3行のrm なんちゃらを書く前の画面です。~
これで、ログディレクトリが結構綺麗になります。あとは、時々/var/logを見てみて、必要に応じて消去あるいはファイルサイズをゼロにする対象ファイルを追記願います。~
&ref(20191112_capture01.JPG);~
編集が終わったら念のため管理者権限で、~
#chmod +x log_del.sh~
を行い、実行権限を付与してください。~
~
crontabの編集は~
#crontab -e~
で開いたファイルの最終行に下記を追加してください。~
05 00 * * 0 /bin/sh /root/log_del.sh~
書いたら、[esc][:][w][q][enter]で保存終了してください。~
書いた内容は日曜日の0時5分に/root/log_del.shのファイルを実行するという意味です。~
その後、~
#systemctl restart cron[return]~
で追加した最下行の設定が読み込まれます。~

***WiFi切断対策 [#f8aa25d7]
ラズベリーパイ3はWifiが切れるという巷の噂があるので、5分おきにルーターへアクセスし、切断しないような対策を講じます。編集するファイルは~
/home/pi/reconne_wifi.sh
です。~
$vim /home/pi/reconne_wifi.sh~
中身は~
#!/bin/sh~
ping -c 1 192.168.11.X&color(white,red){←このipは各自のルーターのipで適選変えてください。};~
test $? -eq 1 && sudo /etc/ifplugd/action.d/action_wpa wlan0 up~
~
編集が終わったら、
chmod +x reconne_wifi.sh~
を実行し、実行権限を付与してください。~
今度はそのファイルを5分おきに実行するため、ターミナル管理者権限で~
#crontab -e~
をタイプしcronファイルの編集を行います。
下記の1行を追加します。~
※/5 * * * * sh /home/pi/reconne_wifi.sh 1&2 >> /var/log/cron.log~
5分おきに実行し、結果を/var/log/cron.logに書き出す設定です。~
ターミナル上管理者権限でcrontab -lしてちゃんと保存されているのが確認できたら、~
管理者権限で
#systemctl stop cron~
#systemctl start cron~
あるいは、~
#systemctl reload cron~
で設定のリロードでもOKかと思います。~
***ためになりそうなリンク [#ha269e4e]
-[[ラズベリーパイ日本語フォーラム:https://www.raspberrypi.org/forums/viewforum.php?f=82]]~
~
-----
できましたー!これでOKでーす!受信専用iGateが完成です。おまけに、ここまでの苦悩を乗り越えれれば、Linuxユーザーの中入りを果たしていることと思います。
~
&color(red){&size(20){晩酌しながら、これを打つのは大変でした。。。(涙)日本のアマチュア無線家でAPRSに興味のある局長さんがいらっしゃいましたら、これで安価なiGate設置をお願いします。ここまでで1万円かかっていませんので。};};&heart;
~
-----
&size(20){&color(white,blue){質問問合せ等は「valkyrieあっと10324.dip.jp」までお願いします。};};~
&size(20){&color(white,blue){あっとは「@」に変えて送信をお願いします。};};~
~
あるいは[[ここをクリック>valkyrie@103.0t0.jp]]してもメールを送信できます。~
~
-----
***コメントがあればどーぞ! [#d855cda5]
- 本人です。テスト書き込みです。 -- [[JE7JCX]] &new{2020-01-12 (日) 11:34:38};
- なかなかに素晴らしい。送信も出来たらいいのだけれど、受信機だから仕方ないね -- [[JN4OQT]] &new{2020-04-17 (金) 23:32:57};
- コメントありがとうございます。そうですねぇ。でも逆に無線機TNCを使わないので、コスパがいいとも思っています。日本全国まだまだデジやiGateが少ないので、どんどん増やしたいと思っています。 -- [[JE7JCX]] &new{2020-04-26 (日) 11:46:25};
- Open-source -- [[Neil McClure]] &new{2023-04-22 (土) 17:03:58};


#comment
-----
2019年11月3日記 JE7JCX~

~
~
~
[[ラズベリーパイ3]]~
[[アマチュア無線]]~
[[TopPage]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS