2017年9月23日土曜日

Raspberry Pi 3 を ADS-B レシーバーにして、Flightradar24 の Business Plan を無料で利用

■ Flightradar24 とは

民間航空機の現在位置をリアルタイムに表示してくれる航空ファンにはとてもありがたいアプリです。
2017/09/23 現在、プランが下記の 4 種類あって、料金に応じて機能が増えていきます。
Business Plan は、なんと $499.99/year ! 円換算で 55,000 円 なので、趣味の予算を大幅にオーバーです。
(レンズ買えるやん)

この料金表の下の方に、
「ADS-B データを Flightradar24 に定期的に共有する人は、無料のビジネス契約 (Business Plan) を利用できます。」
とあります。

さらに辿っていくと Raspberry Pi 3 (以下 ラズパイ) と ADS-B レシーバー (USB ドングル) でやるやり方が書いてあったので、早速、機材を調達。
手順を以下にまとめます。
(一部、Linux PC での手順を書いてますが、Windows PC でも同様のことができます)

1. Amazon で、ラズパイ と ADS-B レシーバを購入

品名価格
【国内正規代理店版】 RS Raspberry Pi 3 Starter Kit 16GB V7 (JP 日本製)8,100 円
Radioddity S1 ミニ レシーバー 受信機 デジタル USB RTL-SDR ADS-B セット
RTL2832U & R820T2 チューナー MCX 入力 ソフトウェア ポータブル DVB-T+DAB+FM ブラック
1,780 円

ADS-B レシーバーは、R820T2 で検索して購入できるものを選べば良いです。

2. ラズパイ用イメージをダウンロード (fr24-raspberry-pi-latest.img.zip) して、解凍

BUILD YOUR OWN のリンクから fr24-raspberry-pi-latest.img.zip をダウンロードして解凍。

$ unzip fr24-raspberry-pi-latest.img.zip

3. Etcher を使ってイメージを SD カードに書き込む

Etcher をダウンロードして解凍。
Linux (Ubuntu) 版は、回答すると AppImage 形式になってます。

$ unzip etcher-1.1.2-linux-x86_64.zip

Etcher を起動してイメージを SD カードに書き込み。
"Select image" = fr24-raspberry-pi-1.0.18-9.img
"Select drive" = SD カードのドライブ
"Flash!"
の順に設定してやれば OK。

$ ./etcher-1.1.2-x86_64.AppImage

4. ラズパイ起動

ラズパイに micro SD カードと ADS-B USB ドングルを差し込んで電源 ON。
IP アドレスは、DHCP で設定されます。

5. 同一ネットワーク上の PC からラズパイを検索

SHARE YOUR DATA のリンクから、
"Activate Raspberry Pi" をクリック。

こんな風に見つけてくれます。

Activate をクリックすると、設置場所の設定画面が出てくるので、場所を選んで "Verify Application" をクリック。
登録しているメールアドレス宛に sharing key が届きます。

6. ラズパイにログインして FR24 Decoder/Feeder を設定

ラズパイに ssh でログインして、FR24 Decoder/Feeder を設定します。

$ ssh pi@192.168.10.14        (IP アドレスは、ラズパイに設定されている IP アドレス)
pi@192.168.10.14's password   (パスワードは raspberry)

ログイン名とパスワードは、ここに書いてあります。

設定用スクリプトを実行。

# sudo bash -c "$(wget -O - http://repo.feed.flightradar24.com/install_fr24_rpi.sh)"

converted 'http://repo.feed.flightradar24.com/install_fr24_rpi.sh' (ANSI_X3.4-1968) -> 'http://repo.feed
.flightradar24.com/install_fr24_rpi.sh' (UTF-8)
--2017-09-22 22:39:17--  http://repo.feed.flightradar24.com/install_fr24_rpi.sh
Resolving repo.feed.flightradar24.com (repo.feed.flightradar24.com)... 52.216.162.165
Connecting to repo.feed.flightradar24.com (repo.feed.flightradar24.com)|52.216.162.165|:80... connected.

HTTP request sent, awaiting response... 200 OK
Length: 921 [text/x-sh]
Saving to: 'STDOUT'

-                         100%[=======================================>]     921  --.-KB/s   in 0s     

2017-09-22 22:39:17 (23.3 MB/s) - written to stdout [921/921]

gpg: requesting key XXXXXXXX from hkp server pgp.mit.edu
gpg: key XXXXXXXX: "Flightradar24 " 1 new user ID
gpg: key XXXXXXXX: "Flightradar24 " 1 new signature
gpg: Total number processed: 1
gpg:           new user IDs: 1
gpg:         new signatures: 1
OK
Hit http://repo.feed.flightradar24.com flightradar24 InRelease
Get:1 http://mirrordirector.raspbian.org jessie InRelease [14.9 kB]                                    
Get:2 http://archive.raspberrypi.org jessie InRelease [22.9 kB]
Hit http://repo.feed.flightradar24.com flightradar24/raspberrypi-stable armhf Packages       
Get:3 http://mirrordirector.raspbian.org jessie/main armhf Packages [9535 kB]                
Get:4 http://archive.raspberrypi.org jessie/main armhf Packages [170 kB]          
Ign http://repo.feed.flightradar24.com flightradar24/raspberrypi-stable Translation-en 
Get:5 http://archive.raspberrypi.org jessie/ui armhf Packages [58.9 kB]                                
Ign http://archive.raspberrypi.org jessie/main Translation-en                                          
Ign http://archive.raspberrypi.org jessie/ui Translation-en                                            
Get:6 http://mirrordirector.raspbian.org jessie/contrib armhf Packages [43.3 kB]                       
Get:7 http://mirrordirector.raspbian.org jessie/non-free armhf Packages [84.2 kB]                      
Get:8 http://mirrordirector.raspbian.org jessie/rpi armhf Packages [1356 B]                            
Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en                                   
Ign http://mirrordirector.raspbian.org jessie/main Translation-en                                      
Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en                                  
Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en                                       
Fetched 9931 kB in 19s (502 kB/s)                                                                      
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
fr24feed is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 74 not upgraded.
______  _  _         _      _                    _              _____    ___ 
|  ___|| |(_)       | |    | |                  | |            / __  \  /   |
| |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
|  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
| |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
\_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
               __/ |                                                         
              |___/                                                          
[main][i]FR24 Feeder/Decoder
[main][i]Version: 1.0.18-9/generic
[main][i]Built on Apr 20 2017 09:25:30 (T201704200925/Linux/static_arm)
[main][i]Copyright 2012-2017 Flightradar24 AB
[main][i]http://flightradar24.com
[main][i]DNS mode: PING

Welcome to the FR24 Decoder/Feeder sign up wizard!

Before you continue please make sure that:

 1 - Your ADS-B receiver is connected to this computer or is accessible over network
 2 - You know your antenna's latitude/longitude up to 4 decimal points and the altitude in feet
 3 - You have a working email address that will be used to contact you
 4 - fr24feed service is stopped. If not, please run: sudo service fr24feed stop

To terminate - press Ctrl+C at any point


Step 1.1 - Enter your email address (username@domain.tld)
$:●Flightradar24 に登録しているメールアドレスを入力

Step 1.2 - If you used to feed FR24 with ADS-B data before enter your sharing key.
If you don't remember your sharing key, pelase use the retrival form:
http://feed.flightradar24.com/forgotten_key.php

Otherwise leave this field empty and continue.
$:●メールで送られてきた sharing key を入力

Verifying sharing key...OK



Step 1.3 - Would you like to participate in MLAT calculations? (yes/no)$:● yes を入力

IMPORTANT: For MLAT calculations the antenna's location should be entered very precise!

Step 3.A - Enter antenna's latitude (DD.DDDD)
$:●設置場所の Latitude を入力

Step 3.B - Enter antenna's longitude (DDD.DDDD)
$:●設置場所の Longitude を入力

Step 3.C - Enter antenna's altitude above the sea level (in feet)
$:●設置場所の Altitude を入力

Using latitude: XX.XXXX, longitude: XXX.XXXX, altitude: XXft above sea level

Step 4.1 - Receiver selection (in order to run MLAT please use DVB-T stick with dump1090 utility bundled
 with fr24feed):

 1 - DVBT Stick (USB)
 -----------------------------------------------------
 2 - SBS1/SBS1er (USB/Network)
 3 - SBS3 (USB/Network)
 4 - ModeS Beast (USB/Network)
 5 - AVR Compatible (DVBT over network, etc)
 6 - microADSB (USB/Network)
 7 - SBSx via Basestation (localhost:30006)


Enter your receiver type (1-7)$:● 1 を入力
Checking for dump1090...FOUND

Step 4.3 - Enter your additional dump1090 arguments or leave empty
$:●何も入力せずに Enter

Step 5.1 - Would you like to enable RAW data feed on port 30002 (yes/no)$:● yes を入力

Step 5.2 - Would you like to enable Basestation data feed on port 30003 (yes/no)$:● yes を入力

Step 6A - Please select desired logfile mode:
 0 -  Disabled
 1 -  48 hour, 24h rotation
 2 -  72 hour, 24h rotation
Select logfile mode (0-2)$:● 2 を入力

Step 6B - Please enter desired logfile path (/var/log):
$:●何も入力せずに Enter

Submitting form data...OK

Congratulations! You are now registered and ready to share ADS-D data with Flightradar24.
+ Your radar id is T-RJFFXX, please include it in all email communication with us.
+ Please make sure to start sharing data within the next 3 days as otherwise your ID/KEY will be deleted
.

Thank you for supporting Flightradar24! We hope that you will enjoy our Premium services that will be av
ailable to you when you become an active feeder.

To start sending data now please execute:
sudo service fr24feed start

Saving settings to /etc/fr24feed.ini...OK
Settings saved, please run "sudo service fr24feed restart" to use new configuration.
Installation and configuration completed!

7. 最後に、fr24feed を再起動

$ sudo service fr24feed restart

8. 確認

しばらくして、Flightradar24 に再ログインすると、Business Plan に変わります。

"MY DATA SHARING" のリンクから状態を確認できます。

たまに Offline になるので、設置場所を変えました。
変えたあとは Online 状態が安定。

ラズパイの 8574 番ポートに http でアクセスすると、FR24 Feeder Status を確認できます。

http://192.168.10.14:8574/    (IP アドレスは、ラズパイの IP アドレスを指定)

● Flightradar24, business plan, Raspberry Pi 3, ラズパイ, ADS-B, レシーバ

2017年9月17日日曜日

Ubuntu smartmontools で、S.M.A.R.T. 対応 HDD/SSD を監視

HDD/SSD は突然壊れる。たまに痛い目にあいます (>_<)。
こないだなんか会社のサーバが、、、。それはいいか (笑)
その予兆を捉えるために smartmontools で HDD/SSD を監視します。
Ubuntu 17.04 で確認。

1. smartmontools をインストール

# apt install smartmontools

2. HDD/SSD を検索

家のノート PC なので、1 個。

# smartctl --scan
/dev/sda -d scsi # /dev/sda, SCSI device

3. S.M.A.R.T. 対応かどうか確認

SMART Support is の行を確認。

# smartctl -i /dev/sda

smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.10.0-33-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     SandForce Driven SSDs
Device Model:     KINGSTON SV300S37A240G
Serial Number:    50026B72550366E7
LU WWN Device Id: 5 0026b7 2550366e7
Firmware Version: 600ABBF0
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS, ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Sun Sep 17 18:06:22 2017 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

4. smartd の起動設定

# vi /etc/default/smartmontools

start_smartd=yes をコメントアウト

● smartmontools, HDD, SSD, 監視, チェック, smartctl

2017年9月15日金曜日

Ubuntu サスペンドから復帰後に無線 LAN が復帰しないときの対処法

Ubuntu をノート PC に入れて使っているのですが、サスペンドから復帰後に無線 LAN が復帰しないことがあります。
その対処法。
Ubuntu 17.04 で確認。

# vi /etc/pm/sleep.d/wakenet.sh

(下記を記入)
#/bin/sh
case "{$1}" in
  thaw|resume)
    nmcli n on
    ;;
  *)
    ;;
esac

実行権を追加。

# chmod 755 /etc/pm/sleep.d/wakenet.sh

■参考
http://qiita.com/plageoj/items/3e1af6fc0855d1c50e64
https://ubuntuforums.org/showthread.php?t=2218043&p=13000035#post13000035

● Ubuntu, 無線, Wi-Fi, LAN, サスペンド, suspend, 復帰しない, 繋がらない, 切断, 使えない, 接続, 自動, 復帰, nmcli

2017年3月26日日曜日

Ubuntu マウスのスピードを変更する

Ubuntu PC 用にエレコムのトラックボールマウス M-XT3DRBK を購入。
トラックボールを使うときには、マウスのスピードを落としたいけど、システム設定に設定がない。
dconf-editor で設定する必要があります。
Ubuntu 16.10 で確認。

まずは、dconf-editor をインストール。

# apt install dconf-editor

そして起動。

$ dconf-editor

org -> gnome -> desktop -> peripherals -> mouse と進んでいき、speed のところで調整。
-1 - 1 の範囲で設定。-0.6 ぐらいにするとちょうど良かった。


● Ubuntu, マウス, mouse, スピード, speed, 調整, 遅く, slow, トラックボール

2017年1月7日土曜日

Ubuntu キーバインドを Emacs 風に変更する

Ubuntu のキーバインドを Emacs 風に変更する方法。
Ubuntu 16.10 で確認。

1. gnome-tweak-tool をインストール

このツール、なくならないで欲しい。

# apt install gnome-tweak-tool

2. キーボードとマウスの設定を変更

キーテーマを Emacs に変更。

● Ubuntu, key, キーバインド, Emacs, 変更

2016年12月16日金曜日

Ubuntu 機 Dell Inspiron 14 5000 シリーズ ( 5459 ) の BIOS アップデート方法

Ubuntu 機の Dell Inspiron 14 5000 シリーズ (5459) で、BIOS をアップデートした時の話。
Dell のサイトで 2016 年 12 月 8 日にリリースされた BIOS をダウンロード。
ファイル形式が Windows/DOS になってるので、ちょっと困る。
Windows の入った HDD は、早々に SSD に換装済み。アップデートできんのか?
起動時するときに、たまに無線 LAN のデバイスが無いと言われるので、アップデートに期待してたんやけど、、、。

ちょっとググってみると BIOS のメニューから USB メモリとかでアップデートできそうな気配。
早速 USB (micro SD) に BIOS ファイル (Windows/DOS .exe 形式) をコピー。


PC に挿して、BIOS 起動。起動時に F12 キーで Boot Menu 表示。


BIOS Flash Update を選択。


.exe ファイルを選択。


ファイル選択後、Begin Flash Update を選択するときは、AC アダプタがつながってないと選択できないようになってます。
良くできてるなぁと感心。


AC アダプタを挿して、


アップデート開始。
2 分ぐらいで完了。
最近の Dell PC は、だいたい同じ手順でいけるのでは?

● Dell, Inspiron, Ubuntu, BIOS, Windows 無い, アップデート, update, 5459

2016年11月5日土曜日

Windows10 スタートメニューが表示されない不具合の復旧方法

しょっちゅう、これにハマるので復旧方法をメモしておく。
( これだから、Windows は嫌い )

1. スタートメニューを右クリック → コマンドプロンプト(管理者) を開く

2. あとは下記コマンドを順番に実行

全部やると、数分から数十分かかる。

dism /online /cleanup-image /restorehealth
sfc /scannow
powershell
Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like “*SystemApps*”} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}

3. PC 再起動

参考: windows10のスタートメニューが開けない・表示されない不具合解決方法 | windows操作まとめ

● Windows10, スタートメニュー, 出ない, 表示, されない, 復旧

2016年11月3日木曜日

Linux でメモリ破壊を見つけるときに有効な方法のメモ randomize_va_space, ALSR

デバッグ時に苦悩、懊悩するのが、メモリ破壊系。
SIGSEGV で core を吐かせる前にやっておくべき設定のメモ。
この記事に何度助けられたことか。

参考: メモリ破壊の現場を見つけるTips - nariのぶろぐ

プログラム実行時のアドレスを固定。
これやったあとも原因の特定に時間がかかってしまうんだが…。
ASLR とか、この記事読んで初めて知った。

# echo 0 > /proc/sys/kernel/randomize_va_space

あと、バッファオーバーフロー系は、gcc のコンパイルオプション (下記) で対応。

参考: IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御

-fstack-protector-all

● Linux, プログラム, 実行, program, run, アドレス, address, 固定, fix, randomize_va_space, デバッグ, debug, メモリ, 破壊, memory

2016年9月4日日曜日

Wireshark の表示言語変更 日本語 (Japanese) → 英語 (English)

Windows で、Wireshark の表示言語を日本語から英語に変更する手順のメモ。
日本語の表示だとわかりにくい! と思う人は結構いるはず。
Windows7 および Windows10, Wireshark-2.0.5 で確認。

メニューの 編集 → 設定 を選択。

外観 の中の 言語 で English を選択。

日本語出るようになったのいつからだ!?

● Wireshark, ワイヤーシャーク, 日本語, 英語, 表示, メニュー, Japanese, English

2016年7月31日日曜日

Raspberry Pi 3 (Ubuntu MATE) : USB シリアルコンソール端末にする

■ USB シリアル変換基板

Raspberry Pi 3 を USB シリアルコンソール端末に改造。
まずは、USB シリアル変換基板を調達。
変換基板は、SWITCH SCIENCE絶縁 USB シリアル変換基板 がオススメ。
USB の形状は、mini-B になります。
ちょっと高いけど、PC と Raspberry Pi の両方を不意の過電流から守れると考えれば安いもんです。
ジャンパワイヤ (メス-メス) も合わせて調達。

■ GPIO の割り当て確認

http://pinout.xyz/ で GPIO の割り当てを確認。

Pin #Name
025v Power
04Ground
06BCM 14 (UART Transmit) TXD
08BCM 15 (UART Receive) RXD

■ 仮組み

仮組みしてみる。配線は、こんな感じ。

■ 配線四つ編み

四つ編み開始~。
編んどいたほうが扱いやすい。

ピン配置と合わせないといけないので、ヨリ方は調整しながら進める。
5 回ぐらいやり直した (汗)。

よしよし。

■ ケース格納

蓋開けっ放しってのも使いづらいので、HDMI ケーブルの横を 5 mm 角ほど切り込み加工。
カッターナイフで、ちょっとずつ削ればいけます。
一気にやろうとすると、汚くなる可能性あり ( ツゲを彫るより簡単 )。

HDMI コネクタとフレキのコネクタの間を通す。

横のカバーを付ける。

上蓋をはめて完成。

■ UART 設定

UART0 でコンソールを使えるようにするために、コアクロックを 250MHz に変更。

# vi /boot/config.txt

(下記を追記)
core_freq=250

上記は一時対応なので、ちゃんと設定したい場合は下記を参照。
http://qiita.com/yamamotomanabu/items/33b6cf0d450051d33d41

■ 参考
http://qiita.com/komeda-shinji/items/03546ae1014c6b4edc92
http://qiita.com/yamamotomanabu/items/33b6cf0d450051d33d41

■ 2016/11/07 追記

UART コンソールで vi 等を起動した場合、画面サイズが 80x24 ぐらいになってしまう。
stty コマンドで変更可能。
~/.bashrc とかに下記を書いておけば、104x40 とかに変更できる。
一時的に変更したければ、直接実行しても良い。

$ vi ~/.bashrc

(下記を追加)
stty rows 40 cols 104

■ 2017/09/13 追記

apt update/upgrade を実行すると、UART が使えなくなった。
config.txt に下記を設定 (追加) すれば解決。
kernel 4.4.9 以降? UART が DISABLE になっているようだ。2017/09/13 時点で、4.4.38 だった。

# /boot/config.txt

(下記を追加)
enable_uart=1

■参考
https://raspberrypi.stackexchange.com/questions/45570/how-do-i-make-serial-work-on-the-raspberry-pi3

● Raspberry Pi 3, Ubuntu MATE, UART, USB, シリアル, serial, コンソール, console, 変換, コネクタ, mini-B, stty, rows, cols, 画面, サイズ, screen, size