2020年1月12日日曜日

Raspberry Pi 4 + Ubuntu Server 19.10 で Wi-Fi の設定をする

Raspberry Pi 4 に Ubuntu Server 19.10 をインストールして Wi-Fi のセットアップ中。
/etc/network/interfaces で設定するんじゃないのね。

/etc/netplan/50-cloud-init.yaml で設定。SSID と SSID-PASSWORD は適当に修正。

# vi /etc/netplan/50-cloud-init.yaml

(下記設定を追加。network: と version: 2 の間)
    wifis:
        wlan0:
            dhcp4: true
            optional: true
            access-points:
                SSID:
                    password: SSID-PASSWORD

設定を反映するのは netplan コマンドで。

# netplan apply

● raspberry pi 4, raspi4, ubuntu, server, 19.10, wi-fi, Wi-Fi, interfaces, netplan, wlan0, 無線 LAN

2020年1月8日水曜日

Samba over SSH (Windows10 Proxy 経由で Samba アクセス)

Proxy サーバ経由で SSH 接続して、Samba サーバにアクセスする手順のメモ。
確認環境: Samba サーバ = Ubuntu 16.04、クライアント = Windows10

まず、概要を説明すると、下記のようになる。
Windows でループバック I/F (10.255.255.1/24) を作成して、
10.255.255.1:445 -> 10.255.255.1:44445 に port proxy して、
Proxy サーバ経由で SSH 接続するときに、ポートフォワード設定をしておいて、
10.255.255.1:44445 -> XX.XX.XX.XX:445 にアクセス。

0. サーバ側設定

サーバ PC (Ubuntu 16.04) では、Samba, SSH サーバ が起動していることが前提 (構築手順等の説明省略)。
あと、proxy サーバ経由でその PC にアクセスできること。

1. ループバックアダプタ追加

まず、Windows PC にループバックアダプタを追加する。
デバイスマネージャを開いて、"操作" -> "レガシハードウェアの追加"。

ハードウェアの追加ウィザードの開始。

一覧から選択したハードウェアをインストールする。

ネットワークアダプター。

Microsoft KM-TEST Loopback Adapter。



わかりやすいように名前を "Loopback" に変えておく。

Loopback のプロパティを開き、Microsoft ネットワーク用ファイルとプリンター共有 のチェックを外す。

インターネット プロトコル バージョン 4 (TCP/IPv4) を開いて、固定 IP アドレスを設定。
IP アドレス = 10.255.255.1
サブネット マスク = 255.255.255.0

詳細設定 -> WINS、NetBIOS over TCP/IP を無効にする。

2. portproxy の設定

管理者権限で、コマンドプロンプトを起動する。
SMB ドライバ (サービス) がすでに起動している場合は、下記を実行する。
(自分の PC では必要なかった)

> sc config smb start= demand

portproxy の設定。

> netsh interface portproxy add v4tov4 listenaddress=10.255.255.1 listenport=445 connectaddress=10.255.255.1 connectport=44445

設定内容を確認。

> netsh interface portproxy show v4tov4

Address         Port        Address         Port
--------------- ----------  --------------- ----------
10.255.255.1    445         10.255.255.1    44445

3. タスクスケジューラに SMB ドライバ (サービス) を設定。

ログイン時に、下記が実行されるように設定する。
設定後、再起動する。

C:\Windows\System32\net.exe start smb




再起動後、設定が下記のようになっていれば OK。
ダメな場合は、タスクスケジューラを開いて、タスクの停止、実行を手動で行うと良いかも。
(場合によっては、社内 LAN 接続ツールの挙動がおかしくなる。その時は、一旦タスクを停止して、接続後、起動する)

> netstat -an | find ":445"

  TCP         0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP         10.255.255.1:445       0.0.0.0:0              LISTENING
  TCP         [::]:445               [::]:0                 LISTENING

4. TeraTerm で、SSH 転送 (ポートフォワード設定) を行い、SSH ログインする。

今回は TeraTerm を使ってアクセスしたが、PuTTY でも同様のことができる。
まず、ポートフォワードの設定を行う。
to remote machine のところに、サーバ PC の IP アドレスを入力。

proxy サーバを設定。


SSH でログインする。
TeraTerm で、SSH のコネクションを張っている間、Samba のアクセスが可能となる。

5. エクスプローラで、Samba サーバにアクセス。

USER の部分は任意で入力。

\\10.255.255.1\USER

● Samba, SSH, proxy, windows10, port foward, smb, teraterm

2019年12月21日土曜日

Ubuntu server でキーボードレイアウトを変更 英語 -> 日本語

Ubuntu server のデフォルトは CUI ログインになっていて、キーボードレイアウトも英語になっています。
それを日本語キーボードにする方法。

# dpkg-reconfigure keyboard-configuration

  ・Generic 105-key (Intl) PC を選択
  ・keyboard: Japanese を選択
  ・Keyboard Layout: Japanese を選択
  ・AltGr 設定: The default for the keyboard layout を選択
  ・Compose key: No compose key を選択

● Ubuntu, server, keyboard, english, japanese, 英語, 日本語, キーボード, CUI, console, layout, レイアウト

2019年12月19日木曜日

DavMail を OpenJDK で動かす ( Oracle Java からの移行 )

Oracle Java のサポート有償化に伴い、会社で DavMail を使い続けるには OpenJDK に移行するしかない。
もう待ったなし! ということで。試行錯誤した結果のメモです。
これで Mew が延命できる。

1. DavMail の最新版をダウンロード、インストール

ここから最新版をダウンロードしてインストール。2019/12/19 時点の最新バージョンは 5.4.0-3135。
http://davmail.sourceforge.net/

2. Oracle Java をアンインストール

勇気がいりますが、断行。

3. OpenJDK をインストール

ここから最新版をダウンロードしてインストール。2019/12/19 時点の最新バージョンは JDK 13.0.1
https://openjdk.java.net/
下記に展開しました。

C:\Program Files\Java\jdk-13.0.1

4. 環境変数を設定

下記を設定 (読み替えてください)。

JAVA_HOME=C:\Program Files\Java\jdk-13.0.1
Path=%JAVA_HOME%\bin (追加)

5. DavMail をインストールしたフォルダに、davmail64.ini ファイルを作成

下記を記述。これがわからなくってハマった。
これをやらないと、"A suitable version of Java could not be found on your system, please install Java (64-bit) from http://java.com/en/download/manual.jsp" エラーが出る。

vm.location=%JAVA_HOME%\bin\server\jvm.dll

5. Oracle Java に設定していた証明書を忘れずに追加

コマンドプロンプトで、下記を実行。

cd "%JAVA_HOME%\bin"
keytool -import -alias "[CA 名]" -keystore "%JAVA_HOME%\lib\security\cacerts" -trustcacerts -file [PKI_FILE_NAME].cer -storepass changeit

■参考
https://sourceforge.net/p/davmail/discussion/644057/thread/e07e7d1836/

● DavMail, OpenJDK, Oracle, Java, 移行, 起動しない, エラー, 有償, 無償, フリー, free

2019年10月19日土曜日

HTTP proxy 経由で ssh 接続 (connect コマンド使用)

HTTP proxy 経由で ssh ログインしたいことがある。

connect コマンドがないときは、インストールしておく。

# apt install connect-proxy

ログイン。
WSL (Windows Subsystem for Linux) 環境でもいける。

$ ssh -o ProxyCommand='connect -H PROXY_SERVER:PORT %h %p' USER@HOSTNAME

● ssh, proxy, connect, login, ログイン, 経由

2019年9月1日日曜日

Raspberry Pi 3 + DVB-T + Ubuntu MATE 18.04 で ADS-B 受信機を作成 ( Flightradar24、FlightAware、RadarBox )

以前、Raspberry Pi 3 + DVB-T で ADS-B 受信機を作成してから 2 年近く経つので、OS の入れ替えを兼ねて、メモを残しておきます。
ちなみに、今までは Ubuntu MATE 16.04 で運用してました。
まさおのブログ (表): Raspberry Pi 3 を ADS-B レシーバーにして、Flightradar24 の Business Plan を無料で利用

■ 環境

HardwareRaspberry Pi 3 Model B
OSUbuntu MATE 18.04
SDSanDisk Ultra micro SDHC 32GB Class10 A1
DVB-TRadioddity S1 ミニ レシーバー 受信機 デジタル USB RTL-SDR ADS-B セット
RTL2832U & R820T2 チューナー MCX 入力 ソフトウェア ポータブル DVB-T+DAB+FM ブラック

1. Ubuntu MATE 18.04 イメージを micro SD に書き込む

Ubuntu MATE のサイト からイメージを取得。micro SD に書き込む。

$ sudo apt install gddrescue xz-utils
$ unxz ubuntu-mate-18.04.2-beta1-desktop-arm64+raspi3-ext4.img.xz
$ sudo ddrescue -D --force ubuntu-mate-18.04.2-beta1-desktop-arm64+raspi3-ext4.img /dev/mmcblk0

GNU ddrescue 1.23
Press Ctrl-C to interrupt
     ipos:    4539 MB, non-trimmed:        0 B,  current rate:  14417 kB/s
     opos:    4539 MB, non-scraped:        0 B,  average rate:  14834 kB/s
non-tried:  460714 kB,  bad-sector:        0 B,    error rate:       0 B/s
  rescued:    4539 MB,   bad areas:        0,        run time:      5m  6s
pct rescued:   90.78%, read errors:        0,  remaining time:         32s
                              time since last successful read:          0s
Copying non-tried blocks... Pass 1 (forwards)

2. Ubuntu MATE 18.04 諸設定

ここはお好みで。
別の PC から SSH でログインして作業したいので、SSHd をひとまず起動。

$ sudo apt update
$ sudo apt upgrade

SSHd を有効にする。これをやらないと SSHd が起動できなかった。/etc/ssh/ssh_host_*_key が存在しないため。
$ sudo dpkg-reconfigure openssh-server
$ sudo /etc/init.d/ssh restart
$ sudo systemctl enable ssh

NTP をインストールする。
$ sudo apt install ntp

3. FlightAware

(参考)
https://ja.flightaware.com/adsb/piaware/install
https://discussions.flightaware.com/t/piaware-v-3-7-1-on-debian-10-0-buster-amd64-intel-pc/52414

■ Piaware

$ sudo apt install -y git devscripts build-essential debhelper tcl8.6-dev autoconf python3-dev python3-venv virtualenv \
dh-systemd zlib1g-dev tclx8.4 tcllib tcl-tls itcl3 net-tools libboost-system-dev libboost-program-options-dev \
libboost-regex-dev libboost-filesystem-dev 

$ git clone https://github.com/flightaware/piaware_builder.git
$ cd  piaware_builder
$ ./sensible-build.sh stretch

$ cd package-stretch
$ sudo dpkg-buildpackage -b --no-sign

$ cd ../ 
$ sudo dpkg -i piaware_3.7.1_arm64.deb

既に feeder id がある場合は、下記を設定。

$ sudo piaware-config feeder-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 

$ sudo piaware-config allow-auto-updates yes 
$ sudo piaware-config allow-manual-updates yes 

sudo systemctl restart piaware  

■ dump1090-fa

$ sudo apt install -y git lighttpd build-essential debhelper dh-systemd \
libboost-system-dev libboost-program-options-dev libboost-regex-dev \
libboost-filesystem-dev libsoapysdr-dev soapysdr-module-rtlsdr \
debhelper dh-systemd librtlsdr-dev libusb-1.0-0-dev \
git pkg-config libncurses5-dev lighttpd libbladerf-dev

$ git clone https://github.com/flightaware/dump1090.git dump1090-fa 
$ cd dump1090-fa
$ sudo dpkg-buildpackage -b --no-sign

$ cd ../
$ sudo dpkg -i dump1090-fa_3.7.1_arm64.deb 

$ sudo systemctl restart dump1090-fa

しばらくしたら、下記リンクで Piaware と FlightAware のアカウントを関連付ける。
同じルータ配下の別 PC からブラウザでアクセスすれば OK。 https://flightaware.com/adsb/piaware/claim
更に、MY ADS-B のリンクから、アンテナ設置場所の緯度、経度、高度を設定すれば OK。

4. Flightradar24

今回もサクッとインストールできるかと思ったら、少しはまった。下記を実行すると fr24feed が見つからないと言われる。

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

N: リポジトリ 'http://flightaware.com/adsb/piaware/files/packages stretch InRelease' がアーキテクチャ 'arm64' をサポートしないため設定ファイル 'piaware/binary-arm64/Packages' の取得をスキップ
N: リポジトリ 'http://repo.feed.flightradar24.com flightradar24 InRelease' がアーキテクチャ 'arm64' をサポートしないため設定ファイル 'raspberrypi-stable/binary-arm64/Packages' の取得をスキップ
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ fr24feed が見つかりません

このエラーを回避するために、下記を設定すると良い。ちょっとはまった。

$ sudo dpkg --add-architecture armhf
$ sudo dpkg --print-foreign-architectures
armhf

再度、実行。

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

______  _  _         _      _                    _              _____    ___
|  ___|| |(_)       | |    | |                  | |            / __  \  /   |
| |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
|  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
| |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
\_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
               __/ |
              |___/
[main][i]FR24 Feeder/Decoder
[main][i]Version: 1.0.23-8/generic
[main][i]Built on Oct 16 2018 08:10:47 (HEAD-2d57e58.git/Linux/static_armel)
[main][i]Running on: ubuntu18.04
[main][i]Local IP(s): 192.168.10.15
[main][i]Copyright 2012-2018 Flightradar24 AB
[main][i]https://www.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 systemctl stop fr24feed

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:
https://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)
$:●設置場所の緯度を入力

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

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

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

We have detected that you already have a dump1090 instance running. We can therefore automatically configure the FR24 feeder to use existing receiver configuration, or you can manually configure all the parameters.

Would you like to use autoconfig (*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/fr24feed):
$:●何も入力せずに Enter

Submitting form data...OK

Congratulations! You are now registered and ready to share ADS-D data with Flightradar24.
+ Your radar id is T-RJFF33, please include it in all email communication with us.
+ Please make sure to start sharing data within one month from now 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 available to you when you become an active feeder.

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

Saving settings to /etc/fr24feed.ini...OK
Settings saved, please run "sudo systemctl restart fr24feed" to use new configuration.

fr24feed を再起動。

$ sudo systemctl restart fr24feed

5. RadarBox

続いて RadarBox。
RadarBox は、下記コマンドを実行するだけ。
RadarBox のアカウントに紐付ける方法は、忘れてしまいました。
あと、mlat-client のインストールができませんでした。

$ sudo bash -c "$(wget -O - http://apt.rb24.com/inst_rbfeeder.sh)"

(本来は、これもやる必要がありますが、失敗します)
$ sudo apt install mlat-client

mlat-client をソースからインストール。

$ wget wget https://github.com/mutability/mlat-client/archive/v0.2.10.tar.gz
$ tar zxvf v0.2.10.tar.gz
$ cd mlat-client-0.2.10/
$ dpkg-buildpackage -b -uc
$ sudo dpkg -i ../mlat-client_0.2.10_arm64.deb
$ sudo ./setup.py install

(再起動)
$ init 6

設定ファイルのメモを残しておきます。

$ cat /etc/rbfeeder.ini
[client]
network_mode=true
log_file=/var/log/rbfeeder.log

key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

sn=XXXXXXXXXXXX

[network]
mode=raw
external_port=30002
external_host=127.0.0.1

[mlat]

■ 備考

ADS-B feeder を設置すると、下記プランが無料で利用可能になります。
年間、$ 1 = 108 円 換算で、$ 499.99 + ($ 89.95 × 12) + $399.50 = $ 1,978.89 = 213,720 円 お得です♪

ServicePlan$ / month$ / year
Flightradar24Business$ 49.99$ 499.99
FlightAwareEnterprise$ 89.95$ -
RadarBoxBUSINESS$ 39.95$ 399.50

dump1090 の受信状況は下記コマンドで確認できる。

$ nc 127.0.0.1 30003

● Raspberry Pi 3, raspi3, raspi, DVB-T, Ubuntu MATE 18.04, ADS-B, Flightradar24, FlightAware RadarBox, dump1090-fa

2018年3月2日金曜日

ImageMagick (convert) で、画像の劣化させずに縮小する

ImageMagick (convert コマンド) で、画像の劣化させずに縮小する。
-unsharp オプションの引数は、、、とりあえずこれでいい。
-quality は、画像の圧縮レベル。劣化させたくなければ 100 を指定。この値は画像サイズとのトレードオフ。

$ convert -resize [WIDTH]x[HIGHT] -unsharp 2x1.4+0.5+0 -quality 100 [BEFORE].jpg [AFTER].jpg

実行例

$ convert -resize 1280x853 -unsharp 2x1.4+0.5+0 -quality 100 5D3B0001.JPG 5D3B0001-2.JPG 

● ImageMagick, convert, 画像, 劣化, 縮小, リサイズ, resize, quality

2017年12月30日土曜日

CUI ログインで、CapsLock キーを Ctrl キーにする dumpkeys, loadkeys

CUI ログインで、CapsLock キーを Ctrl キーにする方法はたくさんあるが、いつも覚えられない。
自分に合う方法はこれだったので、メモしておく。
dumpkeys と loadkeys で OK。キーコード 58 の設定を Control にする。

■ Ubuntu の場合

# dumpkeys > nocaps.keymap

# vi nocaps.keymap

(下記コマンドで変換、保存)
:%s/CtrlL_Lock/Control/g
:wq

# loadkeys nocaps.keymap

■ CentOS の場合

# dumpkeys > nocaps.keymap

# vi nocaps.keymap

(キーコード 58 の設定を Control に変更して保存)

# loadkeys nocaps.keymap

● CUI, CapsLock, Ctrl, Control, コントロール, キー, key, 変更, nocaps, dumpkeys, loadkeys

2017年12月23日土曜日

シェルスクリプトとバイナリを結合してインストーラにする

シェルスクリプトと tar.gz とかのバイナリアーカイブを結合して、1 ファイルのインストーラにする方法。
最近、よく目にするようになった。
コピペで使えるようにしておく。

仕組みは、自スクリプトの末尾に __ARCHIVE__ マーカーを書いておいて、その後ろにアーカイブを結合。
スクリプト実行時に grep で検索して開始行を取得、tail で切り取って展開という流れ。

1. ベースとなるシェルスクリプトを作成

まずは、ベースとなるシェルスクリプトを作成。
末尾 __ARCHIVE__ の後ろに空行を入れないようにします。

$ vi base.sh

#!/bin/sh

# ここに処理を書いても良い

# アーカイブの開始位置を取得
ARCHIVE_OFFSET=$(($(grep -na -m1 "^__ARCHIVE__$" $0 | cut -d ':' -f1) + 1))

# アーカイブを解凍
tail -n +${ARCHIVE_OFFSET} $0 | tar zxf -

# ここに処理を書いても良い

# exit 0 を忘れずに
exit 0

__ARCHIVE__

2. 上のスクリプトとアーカイブ (tar.gz の例) を cat で結合

$ cat base.sh hogehoge.tar.gz > installer.sh

● シェルスクリプト, インストーラ, 結合, shell script, installer, cat, archive, tar.gz, 自己解凍

2017年11月27日月曜日

dd コマンドで USB メモリに iso イメージを焼く

iso イメージのインストーラーを USB メモリに焼く。
Unetbootin はいまいち。dd の方が早い。

とりあえず、フォーマット。USB メモリのデバイスが /dev/sdb の場合の例。

# mkfs.vfat /dev/sdb

dd コマンドで iso イメージを書き込み。ブロックサイズ (bs) は 1MB を指定。

# dd if=./ubuntu-ja-17.10-desktop-amd64.iso of=/dev/sdb bs=1M

● iso, dd, USB メモリ, USB memory, インストーラ, installer