stretchで起動しづらい
自宅で色々と動いている Raspberry-Pi 。OS更新はまめにやっているけど、外気温測定に使っているのが Jessie のままだったのに気づく。stretch に上げたけど、どうも起動に失敗する。更新に失敗したかと思ったけど、キーボードをつなぐために USB WiFi を抜いて起動すると、普通に動いている。
今までも、多少 boot が不安定なのはあったけど、stretch になって起動シーケンスが最適化されたのか、WiFi 有効化のタイミングが早まり、ブート時の電力不足が発生していると思われる。
ひとまず、改造面倒だし USB WiFi を抜いて、boot がそれなりに進んでから USB を指して対応。
ER-X EdgeOS v2.0.1
EdgeRouter-X の新しいファームウェアが、2019/3/29 にリリースされたみたいということで、早速インストール。特にどんな機能が増えたのか、よくわからないけれど無事更新完了。
![]()
ただ、更新が終わって改めて、何が新しくなったのかとファームウェアのページを見たら、v2.0.1の情報が消えている。どーゆーことぉ?
アマチュア無線: aprx を動かしてみた
知り合いより譲り受けた、TH-D72を活用したいということで、APRS の iGate 局を動かしてみた。
我が家は、ロケーション的に福井市にあるリピータにも、ハンディ機では接続できず、無線機の位置情報などをインターネットに伝えることができる APRS や、インターネットを経由した通話ができる D-STAR などを、あまり活用することが難しい。
aprx を動かす
そこで、TH-D72 を APRS の iGate 局として動かすために、aprx をインストール。
以下のように設定したけど、まずい所がないか要チェックだな。ひとまず、データ流しまくりでaprsインターネット側には、迷惑をかけていないはず。ハンディ機なので、どのあたりまで電波が飛んでいるのか、チェックしてみよう。
$ sudo aptitude install aprx $ sudo vi /etc/aprx.conf $ sudo systemctl enable aprx.service $ sudo systemctl start aprx.service
# /etc/aprx.conf
mycall JR9PVZ-10
myloc lat 3553.48N lon 13613.33E
<aprsis>
passcode 22202
server rotate.aprs2.net
</aprsis>
<logging>
pidfile /var/run/aprx.pid
rflog /var/log/aprx/aprx-rf.log
aprxlog /var/log/aprx/aprx.log
dprslog /var/log/aprx/dprs.log
</logging>
<interface>
serial-device /dev/ttyUSB1 9600 8n1 KISS
initstring "HBAUD 9600\x0dKISS ON\x0dRESTART\x0d"
alias RELAY,WIDE,TRACE
callsign $mycall # callsign defaults to $mycall
tx-ok true # transmitter enable defaults to false
telem-to-is false # set to 'false' to disable
</interface>
<beacon>
beaconmode both
cycle-size 60m
beacon symbol "I#" $myloc comment "Tx-iGate + Digipeater"
</beacon>
<digipeater>
transmitter $mycall
<source>
source $mycall
</source>
</digipeater>
TH-D72の設定
| [TNC]-[TNC] | KISSモード | |
| [メニュー]-310 | データバンド | A-BAND |
| [メニュー]-311 | パケットスピード | 9600 bps |
| — | 無線周波数 | 144.640 MHz |
MinGW gcc + Visual Studio Code でC言語
Visual Studio 2017は激重、BCC+Visual Studio Codeは、個人利用なら無償だけど、職場のシステムに入れるにはライセンスが微妙ということから、C言語環境には、MinGW (Minimalist GNU for Windows) の gcc を使ってみる。
MinGW gcc のインストール
MinGWのサイトから、インストーラー mingw-get-setup.exe をダウンロードする。
“Install” を選ぶと、インストーラが開始。保存先のディレクトリ名の入力になるけど、デフォルトの “C:\MinGW”をそのままで、”Continue”を選ぶ。
必要最小限のファイルのダウンロードが終わると、以下の画面となるので、さらに”Continue”。
Installation Manager が表示されたら、インストールする開発環境を選ぶ。C言語の基本的な勉強用であれば、以下の2つをチェックする。項目を選んで右ボタンを押して、プルダウンメニューから、Mark for Installation を選ぶ。
- mingw32-base-bin
- mingw32-gcc-g++-bin
あとは、左上の “Installation”から、”Apply Changes”を選ぶとインストールが始まるので、終わるまで待つ。
MinGWのPathを通す
プログラムを起動する場合、どのフォルダにあるのかを、環境変数 Path に登録しておく必要がある。
⚙ 設定を起動し、システム→バージョン情報を選ぶと、画面右側のスクロールダウンした先の関連設定の下のシステム情報をクリック。
以下のような、コントロールパネルのシステムの画面が表示されたら、画面左の”システムの詳細設定をクリック。
以下のようなシステムのプロパティが表示されたら、詳細設定のタブの”環境変数(N)…”をクリック。
環境変数の画面になったら、画面下側の”システム環境変数”の Path を選んで、”編集”をクリック。
“環境変数名の編集”の画面が出たら、右上の”新規”を選ぶと、変数名のPath一覧の最下部に、追加画面が表示されるので、MinGWをインストールした、場所の bin の場所を記載する。今回ならば、”C:\MinGW\bin” を加え、”OK”を押せば完成。
Visual Stuido Code のインストール
別資料でも記載したが、この後は、”Visual Studio Code”をインストール。Windows であれば、Code Runner は標準設定で MinGW の gcc を使うように設定されているので、普通にインストールすれば終わり。
Visual Studio Code のサイトに行って、OSが64bit版であれば、Windowsの “System Installer 64bit” 版をダウンロード。あとは、インストーラを起動して、標準構成でインストール。
インストールが終わったら、左中段下の”Marketplace”を押し、以下の3つのアドオンをインストールする。
- Japanese Language Pack for Visual Studio Code 1.32.4
- C/C++ 0.22.1
- Code Runner 0.9.7
あとは、エディタ画面でC言語のプログラムを入力し、画面右上の▶ボタンを押せば、プログラムをコンパイル&実行ができる。
Visual Studio CodeでBorland C++を使う
先日、Visual Studio 2017 を入れたら、激重だったので、もっと軽い環境を試す。
embarcadero C++ compiler(旧borland C++)のインストール
軽量のコンパイラとして便利なのが、embarcadero C++ compiler。というより、年配の人であれば 旧borland C++ といった方が有名だろう。以前より無料で利用できるので、職場でも初心者プログラマーの簡単プログラミングであれば、BCC55を利用している。
最新のものを探すとBCC102として公開されているので、これをインストールする。
C++ Compiler のページから、”無料版のダウンロード”より、BCC102.zip を取得する。解凍して、コンパイラのフォルダを “C:\borland\BCC102” に移動する。コンパイラの実行プログラムが “C:\borland\BCC102\bin\bcc32x.exe” となること。
Visual Studio Code の設定
以下の図に示す、3つをインストールする。(Visual Studio Codeのインストールは他の資料参照)
- Japanese Language Pack… 日本語環境
- C/C++ 0.22.1 の編集機能
- Code Runner 0.9.7 (今回のキモ)
Marketplace の検索画面で、Japanese とか C++ とか Code Runner とか入力すれば、候補に出てくるので右下の”インストール”ボタンを押せば、インストールされていく。
“ファイル→基本設定→設定” を開くと、以下のような画面になるので、検索画面で”code-runner”などと入力すれば、”Code Runner”の設定画面が出てくる。今回は、設定での入力が複数行になるので “settings.jsonで編集” をクリックすると、ユーザ情報の settings.json の編集画面になる。
ここで、settings.json に以下の内容を書き込んで保存する。(表示の都合で折り返しているけど、”cd…..exe”までは1行で)
{
"code-runner.executorMap": {
"html": "\"C:\\Program Files (x86)\\Google\\Chrome
\\Application\\chrome.exe\"",
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
"c": "cd $dir
&& c:\\borland\\BCC102\\bin\\bcc32x
$fileName -o $fileNameWithoutExt.exe
&& $dir$fileNameWithoutExt.exe",
"cpp": "cd $dir
&& c:\\borland\\BCC102\\bin\\bcc32x
$fileName -o $fileNameWithoutExt.exe
&& $dir$fileNameWithoutExt.exe"
}
}
編集と実行
あとは、適当な C/C++ のソースコードを開いて、編集画面の右上の▶ボタンが、実行に割り当てられているので、これを押すだけでコンパイル&実行ができる。別画面にコンパイル状態の表示と、実行結果が表示される。
Postieでimap-ssl接続に失敗
職場のサーバでWordPressを動かす中、簡単な画像付きメールでのポストをするために、plugin の Postie を使っている。
状況確認
当初は、imap-ssl で動かしていたのだが、接続に失敗するようになった。
Postie (v 1.9.32) getemails: There was an error connecting to the server
メールサーバが、自宅メールサーバなので、FireWall 関連の設定のミスが考えられたが、nagios-plugins を入れて実験すると、以下のような結果なので、接続はできている。
$ /usr/lib/nagios/plugins/check_imap -p 993 -H xxxx -S IMAP OK - 0.146 second response time on xxxx port 993 [* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.] |time=0.145649s;;;0.000000;10.000000
問題点
原因を確認ということで、syslog を確認すると、以下のように SSL のハンドシェークでエラーが出ている。
Mar 24 00:50:39 xxxx dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=xx.xx.xx.xx, lip=192.168.xx.xx, TLS handshaking: SSL_accept() failed: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca: SSL alert number 48, session=<xxxxxx>
暫定の解決法
しかたがないので、dovecot の ssl の設定を変更、TLSv1.2 になっていた部分を TLSv1 に修正
(( /etc/dovecot/conf.d/10-ssl.conf )) - ssl_min_protocol = TLSv1.2 + ssl_min_protocol = TLSv1
”TLS 1.0にはBEASTやPOODLEといった脆弱性があり、一定の条件下であれば暗号解読が可能であると言われています。”で、2018年6月30日以降は、TLSv1.0 は通常用途では勧められないとのことなので、多少心配ではあるけど…。
通常使っているメールソフトは、TLSv1.0 を使わないだろうし、実質このPostieだけの利用だろうし。
























