エントリー

カテゴリー「本サーバ関連」の検索結果は以下のとおりです。

ページ移動

NOAA用サーバをADS-B受信で利用する

先日からサーバのメンテナンスを実施

整理してWEBサーバはメールサーバを含むサーバ,NOAA受信で利用していた外部サーバを(おかしな名称なので)室外サーバに変更,室外サーバは夜間休止とした

利用しなくなった室外サーバにはRTL-SDRが接続されているので,まずはADS-B受信で利用してみる

ADS-B受信のマップ表示にはVirtualRadarを利用,公開はリバースプロキシで対応することにした

20251124_fig1.png

WEBサーバ

セキュリティ確保のため直接アクセスとしないでWEBサーバ経由とする

Apache2のリバースプロキシを設定

参考:https://rainbow-engine.com/apache-reverseproxy-howto/https://rainbow-engine.com/apache-reverseproxy-https/

モジュールの有効化

a2enmod (モジュール名),a2dismod (モジュール名):モジュール名は複数指定可能

# a2enmod proxy_http         
# a2enmod proxy_balancer
# a2enmod proxy
# a2enmod lbmethod_byrequests # 必要ない?

設定ファイルに追加

# vi sites-available/000-default.conf

ProxyRequests Off # リバースのみはOff,フォワードも使うならOn
ProxyPreserveHost On        # 元のホスト名を保持する設定のことだが,これがあると動作しない
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass /vrs/ http://(サーバ)/
ProxyPassReverse /vrs/ http://(サーバ)/

最終的に「VirtualRadar」「dump1090」用に2つProxyPassを作成

注)ProxyPasのバックエンドのURL(上記では(サーバ)の部分)にドメインを付けるとポート指定が無視されるようだ(拙者の環境が悪いのかな?)

Apache2を再起動

# systemctl restart apache2
室外サーバ

アンテナは解体も簡単ではないので,しばらく接続中のNOAA用で試行して,ADS-B受信の設定が落ち着いたら変更する

Virtual Radar Serverのセットアップ

参考:https://www.virtualradarserver.co.uk/mono.aspx

Linux用といってもmonoで動作させるのでWindows版と同じ

(monoのインストール)

$ sudo apt-get install mono-complete

(VirtualRadarServerのインストール)

$ cd
$ wget http://www.virtualradarserver.co.uk/Files/VirtualRadar.tar.gz
$ wget http://www.virtualradarserver.co.uk/Files/VirtualRadar.exe.config.tar.gz
$ cd /srv
$ sudo mkdir vrs
$ cd vrs
$ sudo tar -zxvf ~/VirtualRadar.tar.gz
$ sudo tar -xvf ~/VirtualRadar.exe.config.tar.gz

最初の1回admin,password付きで起動

$ mono VirtualRadar.exe -nogui -createAdmin:admin -password:password
Local address: http://127.0.0.1:8080/VirtualRadar
Network address: http://・・・:8080/VirtualRadar

2回目以降
$ mono VirtualRadar.exe -nogui

ブラウザでアクセスして確認(画面生成のためか少し接続時間が掛かる)→ まだ受信していないので航空機は無い

システム起動時自動起動させる

(スクリプト作製)
$ cat vrs.sh
#!/bin/sh
#
mono /srv/vrs/VirtualRadar.exe -nogui
$

(vrs.shを/etc/rc.localに登録)
$ cat /etc/rc.local
/srv/lbin/vrs.sh 1>&2&

dump1090のインストール(ADS-B受信用だが,マップ表示も可能)

$ sudo apt search dump1090
ソート中... 完了
全文検索... 完了
dump1090-mutability/jammy 1.15~20180310.4a16df3+dfsg-8 arm64
ADS-B Ground Station System for RTL-SDR

$ sudo apt install dump1090-mutability

$ sudo vi /etc/default/dump1090-mutability

(特に変更の必要ないがWebサーバなしでインストールしていると以下のようにnoとなっているかも)

START_DUMP1090="no"
MAP表示(試行)
  • VirtualRadar
  • dump1090-mutability
参考

以下が今後追加で参考になりそう(ありがたい)

 

httpsでのアクセス不良

BlogアクセスをSSL対応したのだが,証明書が更新されておらずアクセスすると「危ないよ」が表示された

どうやら/var/logに空きが無くなって証明書の更新(自動)がエラーになっていたようだ

Armbianは初期設定で/var/logがram(つまりメモリディスク)に割り当てられるようになっていて,μSDで運用するのなら嬉しい機能なのではあるがlogの必要サイズに注意しておかないといけないことを忘れていた

参考までに)https://mattintosh-note.jp/entry/20200419/1587229262

Apacheのログなど残したいので利用せずにして再起動

$ sudo zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram1 lzo-rle 50M 28.5M 6.8M 8M 4 /var/log
/dev/zram0 lzo-rle 234.7M 21M 6.6M 8M 4 [SWAP]

$ sudo vi /etc/default/armbian-ramlog
・・・
ENABLED=false
・・・
$ sudo shutdown -r now

(再起動後)

$ sudo zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lzo-rle 234.7M 21M 6.6M 8M 4 [SWAP]
$

偶には外部からアクセスしてみないと判らないことがあるな

システムメンテナンス

Webサーバのメンテナンスを実施

パッケージアップグレード
$ sudo apt update

$ sudo apt upgrade

$ shutdown -r now

ss20250510_001.png

ログローテート
$ sudo vi /etc/logrotate.conf
# see "man logrotate" for details

# global options do not affect preceding include directives

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
#rotate 4
rotate 36 ← 変更

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext ← 変更

# uncomment this if you want your log files compressed
compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# system-specific logs may also be configured here.

apache2の調整してなかったので設定

$ sudo vi /etc/logrotate.d/apache2
/var/log/apache2/*.log {
monthly #was daily
missingok
rotate 36 #was 14
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
prerotate
# if [ -d /etc/logrotate.d/httpd-prerotate ]; then
# run-parts /etc/logrotate.d/httpd-prerotate
# fi
endscript
postrotate
systemctl reload apache2 > /dev/null 2>&1
# if pgrep -f ^/usr/sbin/apache2 > /dev/null; then
# invoke-rc.d apache2 reload 2>&1 | logger -t apache2.logrotate
# fi
endscript
}

syslogなど他はデフォルトで問題ない

注)現在のlogrotateはserviceとして登録されるが実行後は停止する(タイマーで起動)

ログローテートの設定ファイルは,後ろに#でコメントを記述できない(上記の赤色部はミス)

$ logrotate -dv /etc/logrotate.d/apache2

で,記述をデバックできる(-d で処理はされない)

※)問題があったので修正

UPSのチェック

バッテリー電圧の確認

IMG_20250510_143209.jpg

問題ないようだ

CPU温度

ついでにCPU温度を表示するコマンドを作成

#!/bin/sh
#
for CORE in 0 1 2 3
do
    if [ -r "/sys/class/thermal/thermal_zone$CORE" ]
    then
        echo "CPU-$CORE: \c"
        echo "scale=1;`cat /sys/class/thermal/thermal_zone$CORE/temp` / 1000" | bc -l
    fi
done

exit 0

4COREまで存在すれば表示

 

Cubieboard2をDLNAサーバで復活させる

昨年ディスククラッシュでWebサーバを止めてしまったCubieboard2,ボード自体は問題ないのでサブPCの交換したSSD480GBを使ってDLNAサーバにする

IMG_20250506_102432.jpg

取り外しボード上の埃を清掃

IMG_20250506_104939.jpg

長年利用したboot用の8GBのμSDカードは使えるだろうか?と全WriteでSDフォーマットする

ss20250506_001.png

問題なさそうなのでOSをセットアップ

既に専用OSであるCubianは更新されていないのでArmbianを使う

ss20250506_002.png

「Armbian_community_25.5.0-trunk.370_Cubieboard2_bookworm_current_6.12.20_minimal.img」

ミニマムバージョンをDL(こちら)してμSDカードに書き込む

ss20250506_003.png

μSDカードをセットして起動

IMG_20250506_145954.jpg

armbianのデフォルトユーザーはroot,パスワードは1234

最初のログインでrootのパスワード変更とリモートからログイン可能なユーザ登録(後でarmbian-configからrootログインをネット経由禁止にする)

拙者はIDを1001に統一したいのでユーザ登録せずBREAKして統一グループとユーザを作成

# addgroup ...

# adduser ...

sudoを使えるようにする

# gpasswd -a hoge sudo
ユーザ「hoge」をグループ「sudo」に追加

SSD480GBをルートにして起動させるためルートディレクトリの変更

$ sudo nand-sata-install

ss20250506_004.png

ss20250506_005.png

画面に沿って進めていけばsda(SSDなら)にシステムがコピーされboot可能になる

完了後,reboot

ss20250506_008.png

$ sudo apt update
・・・
$ sudo apt upgrade
・・・
$

カーネルがアップされたので,reboot

armbian-configにて日本モードにする(TM,UTFなど)

DLNAサーバのセットアップ(参考サイト

$ sudo apt-get install minidlna

$ cat /var/log/minidlna/minidlna.log
minidlna.c:1126: warn: Starting MiniDLNA version 1.3.0.
minidlna.c:393: warn: Creating new database at /var/cache/minidlna/files.db
minidlna.c:1186: warn: HTTP listening on port 8200
scanner.c:730: warn: /var/lib/minidlna を検索中
scanner.c:819: warn: /var/lib/minidlna (0 ファイル) の検索終了!
playlist.c:135: warn: Parsing playlists...
playlist.c:269: warn: Finished parsing playlists.
monitor.c:222: warn: WARNING: Inotify max_user_watches [8610] is low or close to
the number of used watches [2] and I do not have permission to increase this limit.
Please do so manually by writing a higher value into /proc/sys/fs/inotify/max_user_watches.

$ sudo sysctl fs.inotify.max_user_watches
$ sudo echo "fs.inotify.max_user_watches = 86100" > /etc/sysctl.d/minidlna.conf
$ sudo sysctl -p /etc/sysctl.d/minidlna.conf

$ sudo apt install vim

$ sudo vi /etc/minidlna.conf

メディアディレクトリの変更
#media_dir=/var/lib/minidlna
media_dir=/svr/minidlna

$ sudo service minidlna restart

ネット関係のコマンドが何も入ってない

$ sudo apt network-manager

$ sudo apt install net-tools → iproute2に移行して非推奨(ifconfigはip)

$ sudo apt install dnsutils (nslookup等)

メディアをWindowsから操作するためsambaをセットアップ

$ sudo apt install samba

$ sudo vi /etc/samba/smb.conf

[minidlna]
path = /srv/minidlna
public = yes
writeable = yes
create mode = 0666
directory mode = 0777
allow trusted domains = yes

$ sudo service smbd restart

cubieboard2をdlnaでアクセス可能にしてVLC,MediaPlayerで確認

簡単な情報として,MiniDLNA statusを,「http://dlna:8200/」で参照可能

DLNAサーバはWindowsネットワークアイコンにも表示される

(追加:2025.5.8)

元ケースを修正して収めた

IMG_20250507_173926.jpg

  • UPSを取り除いた
  • 12V電源が無くなったので5V FANに交換
  • FAN制御を基板化
  • CPUボード,SSDのケース内配置を変更

FAN制御のためのGPIO

直接制御ではなくコマンドで対応する(NOAAサーバ構築時調査済

既に必要なコマンド類は導入されていたので,一般ユーザでもGPIOを利用できるようにする
$ sudo chmod 666 /dev/gpio*

起動時にパーミッションを変更
$ sudo vi /etc/rc.local

$ sudo gpiodetect
gpiochip0 [1c20800.pinctrl] (288 lines)
gpiochip1 [axp20x-gpio] (4 lines)

$ cat /sys/kernel/debug/pinctrl/1c20800.pinctrl/pins
registered pins: 175
pin 0 (PA0) 0:1c20800.pinctrl
pin 1 (PA1) 1:1c20800.pinctrl
pin 2 (PA2) 2:1c20800.pinctrl
pin 3 (PA3) 3:1c20800.pinctrl
pin 4 (PA4) 4:1c20800.pinctrl
pin 5 (PA5) 5:1c20800.pinctrl
pin 6 (PA6) 6:1c20800.pinctrl
(略)
pin 192 (PG0) 192:1c20800.pinctrl
pin 193 (PG1) 193:1c20800.pinctrl <- PG1 = 193
pin 194 (PG2) 194:1c20800.pinctrl
pin 195 (PG3) 195:1c20800.pinctrl
(略)
pin 275 (PI19) 275:1c20800.pinctrl
pin 276 (PI20) 276:1c20800.pinctrl
pin 277 (PI21) 277:1c20800.pinctrl
$

同じPG1を使用(前回

(PG1:5pin目,GND:10pin目)

$ gpioset gpiochip0 193=0 #OFF 0V
$ gpioset gpiochip0 193=1 #ON 3.3V out

制御プログラムは前回を元に調整

ページ移動

ユーティリティ

検索

エントリー検索フォーム
キーワード

新着コメント

Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/16 from 権限がありません
Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/15 from admin
Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/14 from 権限がありません
Re:NOAA受信システム復旧
2025/06/11 from admin
Re:NOAA受信システム復旧
2025/06/11 from とおりすがり

過去ログ

Feed