目次: 自宅サーバー
ADS-Bを受信できる環境があればFlightradar24のcontributorになれます。特典?として有料会員の機能を一部使えるようになりますし、やってみて損はないでしょう。
Raspberry Piを使っている場合は専用の環境が用意されています(Share your ADS-B data - Flightradar24)が、私が使っているSBCはRaspberry Piじゃないので手動でセットアップが必要です。まずはfr24feedをインストールします。
$ wget https://fr24.com/install.sh $ chmod 755 install.sh $ sudo ./install.sh (中略) 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 systemctl stop fr24feed To terminate - press Ctrl+C at any point Step 1.1 - Enter your email address (username@domain.tld) $:xxxx@xxxxxxxx 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, you can find it in your account on the website under "My data sharing". https://www.flightradar24.com/account/data-sharing Enter your sharing key or press ENTER/RETURN to continue. $: ★上記の通り、flightradar24のアカウント -> My data sharingからsharing keyを探して入力する、空欄にすると新たに払い出される Step 1.3 - Would you like to participate in MLAT calculations? (yes/no)$:no Step 3.A - Enter antenna's latitude (DD.DDDD) $:xx.xxxx ★緯度(日本なら25〜40くらい、東京なら35.xxxxになるはず) Step 3.B - Enter antenna's longitude (DDD.DDDD) $:xxx.xxxx ★経度(日本なら125〜145くらい、東京なら139.xxxxくらいになるはず) Step 3.C - Enter antenna's altitude above the sea level (in feet) $:xxx ★メートルじゃなくてフィートなので注意 Using latitude: xx.xxxx, longitude:xxx.xxxx, altitude: xxxft above sea level Validating email/location information...OK The closest airport found is ICAO:RJTT IATA:HND near Tokyo. Latitude: xx.xxxx Longitude: xxx.xxxx Country: Japan Flightradar24 may, if needed, use your email address to contact you regarding your data feed. Would you like to continue using these settings? Enter your choice (yes/no)$:yes Step 4.1 - Receiver selection: 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) Enter your receiver type (1-6)$:4 Step 4.2 - Please select connection type: 1 - Network connection 2 - USB directly to this computer Enter your connection type (1-2)$:1 Step 4.3A - Please enter your receiver's IP address/hostname $:localhost Step 4.3B - Please enter your receiver's data port number $: ★バグってるのかこの入力が飛ばされてしまって、変なポートが指定されるので後で修正する Step 5.1 - Would you like to enable RAW data feed on port 30334 (yes/*no*)$:no Step 5.2 - Would you like to enable Basestation data feed on port 30003 (yes/no)$:no Saving settings to /etc/fr24feed.ini...OK Settings saved, please restart the application by running the command(s) below to use new configuration! sudo systemctl restart fr24feed
インストールが終わると/etc/fr24feed.iniに設定ファイルができているはずです。host=""の項目がめちゃくちゃなポート番号になっているはずなので、localhost:30005に直します。バグってんのかね?……良くわかんないです。
receiver="beast-tcp"
fr24key="xxxxxxxxxxxxxxxx"
host="localhost:30005"
bs="no"
raw="no"
mlat="no"
mlat-without-gps="no"
設定ファイルを修正したらサービスを再起動します。
$ sudo systemctl restart fr24feed.service
$ systemctl status fr24feed.service
● fr24feed.service - Flightradar24 Decoder & Feeder
Loaded: loaded (/etc/systemd/system/fr24feed.service; enabled; preset: enabled)
Active: active (running) since Sun 2026-07-10 14:04:05 UTC; 4s ago
...
もしstatusで見たときにactive (running)になっていなければ何か設定が間違っています。
しばらく(10分くらい)経ってからFlightradar24のサイトのMy data sharing(リンク)を確認して、OnlineになっていればOKです。
個人的に修正したところのメモ。サービスの起動条件にdump1090のインストーラが含まれていて、毎回失敗して鬱陶しいので消しました。
[Unit]
Description=Flightradar24 Decoder & Feeder
After=network-online.target
[Service]
Type=simple
Restart=always
LimitCORE=infinity
#ExecStartPre=-/usr/lib/fr24/install_dump1090.sh ★これが毎回失敗してウザい
ExecStartPre=-/usr/lib/fr24/unregister_kernel_modules.sh
ExecStartPre=-/usr/lib/fr24/create_missing_directories.sh
ExecStartPre=/usr/bin/fr24feed --validate-config --config-file=/etc/fr24feed.ini
ExecStart=/usr/bin/fr24feed
User=fr24
Group=fr24
PermissionsStartOnly=true
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
あとcreateing_missing_directories.shも毎回失敗します。中身を見ると/var/log/fr24feedがないのにchownしようとするから失敗していました。とりあえずディレクトリを作るように書き換えて黙らせています。ディレクトリには特にログが置かれる様子もないし、バグってんのかね?
#!/bin/bash
# Sometimes Raspberry Pi /var/log and /run partitions are mounted as tmpfs
# Hence directories are lost after reboot and not all 3rdparty apps can
# handle this properly. Hence we have to provide a hack to create these dirs.
# Setting rwx permissions for now, TODO: set proper permissions
function create_dir_if_not_exists {
DIR=$1
PERMISSIONS=$2
if [ ! -e ${DIR} ]; then
mkdir -p ${DIR} || true
chmod -R ${PERMISSIONS} ${DIR} || true
fi
}
create_dir_if_not_exists "/run/dump1090-mutability" "a+rwx"
create_dir_if_not_exists "/run/fr24feed" "a+rx"
create_dir_if_not_exists "/var/log/lighttpd" "a+rwx"
create_dir_if_not_exists "/var/log/dirmngr" "a+rwx"
create_dir_if_not_exists "/var/log/fr24feed" "a+rwx" ★これを足した
touch /dev/shm/decoder.txt
chown -R fr24:fr24 /dev/shm/decoder.txt /run/fr24feed /var/log/fr24feed
Flightradar24のフィードバイナリはソースコードを公開していないようで、エラーが起きたら基本的にはお手上げです。ただしfr24feedサービスのエラーは、補助スクリプトがエラーを出していることも多いです。補助スクリプトは/usr/lib/fr24/にあるので、諦める前にスクリプトを眺めると何かわかるかもしれません。
この記事にコメントする
目次: ゲーム
Timberbornのトロフィーをコンプリートしました。アーリーアクセスの時にやって飽きた後、1.0にアップデートされたのですが、全くやっていませんでした。会社の人から結構システムが変わってますよ、と教えてもらったのでまたやってみました。トロフィーはアーリーの時はなかったので後から追加されたようです。
トロフィーに興味がある人に超大事な点を最初にお伝えしておきます。このゲームはマップも難易度縛りもありません。つまり自作マップや難易度EASYでもトロフィーが取れます。私は縛りがないことに気づくまで整地作業で20時間くらい無駄にしました……。
理由は簡単で、一部トロフィーは広大な平原&農地がないと辛い(例えば人口500、メープルブレッド消費1000など)ためです。既存マップでも達成は不可能じゃないと思いますが、邪魔なクソでかい山や丘をダイナマイトで爆破し続ける作業が本当につまらない。アーリーのときから地形を変えるのが本当に面倒くさかったので、1.0ではなんとかしてほしかったなあ。
色々変わっていましたが、一番変わった&面白くなったのは、
汚水期は水源の周りを自動化装置+水門+土地掘削することで、汚水を自動的にマップ外に流すように仕向けると完封できます。完封後は乾季と汚水期が大して変わらなくなって若干緊張感がなくなります。
汚水を完封すると難易度が大きく下がるので、こんなのヌルいぞ!完封できないようにしろ!と思う人も居そうですね。私は汚水対策が街づくりの中間達成点になるので、やり遂げる感あって面白かったです。完封までの不安定感、完封後の安心感のセットがなかなか良いバランスでした。
今後も何かしらアップデートされるかもしれませんが、もうアーリーも含めると相当やった(結果的には160時間くらいやってますね)のでたぶんもうやらんかなー……。
街づくりゲームにおいてお邪魔要素の存在は、良いか悪いかなんとも微妙なところです。刺激がほしい&お邪魔を克服したいって人、やりたいことを妨害するなうぜえって人は、たぶん考え方が相容れないので、万人に支持される設計は不可能でしょうね〜。
Dyson Sphere Programのダークフォグとの戦闘要素も一種のお邪魔要素でした。Dyson Sphere Programは戦闘要素のON/OFFが選べるようになっているところが秀逸でした。まあ難易度デザインより、後付けしたシステムだから従来のユーザー向けにON/OFFスイッチ付けただけかもしれませんけど。結果的に秀逸な難易度デザインだったのでヨシ!
この記事にコメントする
目次: 自宅サーバー
空を飛ぶ飛行機は離陸直後や着陸寸前でもない限り飛んでいる姿は見えませんが、現代の飛行機は大抵ADS-B(Automatic Dependent Surveilance-Broadcast)対応していて、どの飛行機がどこに居るか教えてくれます。地上局などが受信側で飛行機が送信側となり、送信側は1秒に1回くらいの間隔で自己位置を送っているそうです。
ADS-Bが使用する周波数帯は地上波テレビ(400MHz〜700MHzくらい)に近い1090MHzのUHF帯です。なので地デジ受信ができるSDR(Software Defined Radio)を使い、受信ソフトを実装すれば受信&復調できます。情報に暗号化や秘匿処理はないため誰でも受信して中身を見ることができる、割とおおらかなシステムです。
HWは復調RTL2838U、チューナーR820T搭載のUSBドングル(Nooelec NESDR Mini)にしました。Amazonで7,000円くらい。同じ復調ICが載っていればたぶん何でも良いです。母艦はROCK 5Bを使用します。
飛行機からの電波を受信するので、ドングル付属のアンテナは空が見える窓際などに置くと良いでしょう。
受信ソフトはいくつかあるっぽいですが、今回はreadsb(GitHubのソースコードリポジトリ)を使います。最初apt-getでreadsbをインストールしたら、RTL2838Uに対応していなくてエラーでした。ヘルプにrtlsdrを指定せよと書いてあるのに、指定するとエラーになります。なんだこりゃ?
$ readsb --device-type rtlsdr SDR type 'rtlsdr' not recognized; supported SDR types are: modesbeast gnshulc ifile none ERROR: Unknown device type:rtlsdr Error parsing the given command line parameters, check readsb --usage and readsb --help for valid parameters. invoked by: ./readsb --device-type rtlsdr
仕方ないのでソースコードからビルドして動作確認します。
$ git clone https://github.com/wiedehopf/readsb $ cd readsb $ make clean $ RTLSDR=yes make -j8 $ sudo ./readsb --device-type rtlsdr invoked by: ./readsb --device-type rtlsdr [2026-07-01 15:02:52.418 UTC] readsb starting up. readsb version: 3.16.14 wiedehopf git: v3.16-81-gb80c737 (committed: Mon May 4 20:10:25 2026 0000) autogain enabled, silent mode, suppressing gain changing messages lowestGain: 0.0 noiseLowThreshold: 34 noiseHighThreshold: 36 loudThreshold: 243 rtlsdr: using device #0: Generic RTL2832U OEM (Realtek, RTL2838UHIDIR, SN 00000001) Found Rafael Micro R820T tuner Allocating 16 zero-copy buffers $ sudo cp readsb /usr/bin/readsb
Debianのパッケージに含まれるバイナリ以外の便利なファイルたち(systemdやデーモンの設定/etc/default/readsb)はありがたく流用させてもらって、動かないバイナリだけ上書きしちゃいました。こういう雑なことをすると、将来的にapt upgradeしたタイミングで上書きされて動かなくなる可能性が高いので、ご注意ください。
受信機が置いてある座標を指定する必要があるみたいなので、/etc/default/readsbのDECODER_OPTIONSの先頭に--lat 35.xxxxx --lon 139.xxxxxを書き加えます。
DECODER_OPTIONS="--lat 35.xxxxx --lon 139.xxxxx --max-range 450 --write-json-every 1"
緯度と経度はGoogle Mapで自分の家をクリックするとURLに数字が出るので、その数字を使うといいでしょう。スマホのGPSアプリで調べるのも簡単で良いですね。
USBデバイスにアクセスできなくて怒られるときはudevの設定を足します。
# vim /etc/udev/rules.d/rtlsdr.rules # udevadm trigger
# RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"
元にした情報はreadsbと同じ作者が公開している便利スクリプト(GitHubのリポジトリ)にあります。ファイル名はosmocom-rtl-sdr.rulesです。
設定出来たらreadsbサービスを再起動しましょう。systemctl statusで見てエラーになっていなければOKです。
$ sudo systemctl restart readsb
ADS-Bを表示するにはviewadsbを使います。下記のような情報が一覧で表示されるはずです。表示例は別の日に計測した結果なので7/3の情報じゃないかもですが、こんな雰囲気ってことで。
Hex Mode Sqwk Flight Alt Spd Hdg Lat Long RSSI Msgs Ti | ──────────────────────────────────────────────────────────────────────────────── 861B8E S 3735 JAL35 9350 299 232 35.483 139.888 -13.2 134 0
今住んでいる場所が羽田空港の近くなこともあり、飛行機のラッシュ時(夕方とか)に起動したら大量の飛行機が表示されて驚きました。羽田空港って大変ですね……。
この記事にコメントする
目次: 自宅サーバー
以前(2015年5月8日の日記参照)、GPSモジュールからの時刻情報を使ってNTPサーバの時刻を合わせました。最近はntpdがntpsecであることが多く、設定方法が違うのでメモしておきます。
設定はとても簡単で、下記を/etc/ntpsec/ntp.confに書き加えてsudo systemctl restart ntpd.serviceでデーモンを再起動させるだけです。当然ですがgpsdも起動している必要があります。
refclock shm unit 0 maxpoll 4 time1 0.232 refid GPS
設定の意味は公式ドキュメント(Shared Memory Driver - ntpsecのドキュメント参照)にある通りです。
両方のデーモン(ntpsec, gpsd)の設定がうまくいっていれば、ntpq -pを実行した際に下記のようにrefidがGPSになっている行が出現するはずです。
remote refid st t when poll reach delay offset jitter
===============================================================================
+SHM(0) .GPS. 0 l 5 16 377 0.0000 8.7846 14.7606
私の環境だとjitterがかなり大きな値となり、インターネット越しのStratum 2のサーバーに負けてしまいました。悲しい。より正確な時刻合わせを行うならPPSを受信する方法もあるみたいですが、ROCK 5BでGPIO使うのは大変そうなのでPPSは諦め気味です。今使っているケースが金属製の密閉型のため、ROCK 5Bのボード上ピンヘッダにアクセスするのは容易ではないのです……。
この記事にコメントする
| < | 2026 | > | ||||
| << | < | 07 | > | >> | ||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| - | - | - | 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | - |
wiki
Linux JM
Java API
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年
2022年
2023年
2024年
2025年
2026年
過去日記について
アクセス統計
サーバ一覧
サイトの情報合計:
本日: