NanoPi NEOとGPSモジュール用アルミケースを作る

以前に作ったNanoPi NEOとGPSモジュールを組み合わせてNTPサーバにしたものは小さなタッパーウエアに入れて使っていたが、見栄えが悪かったのでアルミのエンクロージャー(ケース)に入れることにした。
例によってお買い物は中国の通販で。この記事のエンクロージャーは1つUS$3.93で送料無料。

アルミエンクロージャでNanoPi NEOのケースを作る 1
クリスマスと春節の中間というちょうど良い時期だったのもあってか注文から1週間かからずに届いた。右側のピンクのは大きさ比較用のCD(BD-RE)ケース。商品がアルミなのでかなり軽いが、封筒を振ると金属の擦れる音がする。(良くない)

アルミエンクロージャでNanoPi NEOのケースを作る 2
ビニール封筒の中身。こりゃ中身同士で擦れるよね。

アルミエンクロージャでNanoPi NEOのケースを作る 3
袋から出したらこんなの。組み立て式の簡単なもの。説明書は付属しないが迷うことはないはず。

アルミエンクロージャでNanoPi NEOのケースを作る 4
注文したときの予定ではNanoPi NEOとGPSモジュールをそれぞれ前後のプレートに引っ付けるつもりだったが、実際に配置してみたらNanoPi NEOとGPSモジュールを並べて置くことができた。だからケースの中が半分空いている。
で、以前はNanoPi NEOとGPSモジュールをUSBケーブルでつないでGPSモジュールの電源を取っていたが、配線がスマートにならないのでNanoPi NEOのGPIO(2列側の4番ピン)から5Vを取ってGPSモジュールに給電することにした。(上の画像の水色の線)

アルミエンクロージャでNanoPi NEOのケースを作る 5
ケースの内寸と基板のサイズだけで単純に考えたらNanoPi NEOとGPSモジュールは並ばない筈だったが、立体で考えたら並んだのね。
ヒートシンクのネジの向きは以前と逆にして、1本だけはGPSモジュールのアンテナ端子(金色のやつ)に干渉するので短い別のネジに変えた。
本来であればエンクロージャに穴を開けて皿ネジ留めにするんだけど、長さの合うのが無かったので例によって3Mの超強力両面テープ。ただし、今回はNanoPi NEO側は高さがギリギリで両面テープの厚さがあると困るので薄いタイプを使用。RJ45コネクタの上面に両面テープを付けてエンクロージャーの内側に引っ付けて抑えるとガッチリ素晴らしい。
GPSモジュールの方はGPSチップの大きさに切ったアクリル板を重ねて約2.5mmの厚さにして同じく3Mの両面テープでGPSチップとエンクロージャの間に挟む形で固定。

アルミエンクロージャでNanoPi NEOのケースを作る 6
エンクロージャーの上半分をかぶせてみた。予定どおりちょうどぴったり。NanoPi NEOのヒートシンクがエンクロージャーの内側にひっつくので放熱効果もあるかしら。
GPSモジュールのmicroUSB端子の下に挟んである白いのは仮支え用に紙を畳んだもの。

アルミエンクロージャでNanoPi NEOのケースを作る 7
エンクロージャーの前後のプレート。注文時の予定ではそれぞれにNanoPi NEOのUSBとネットワーク端子用の穴と、GPSモジュールのアンテナ端子の穴(と電源ケーブル用の穴)を空ける筈だったが1枚のプレートだけに全ての穴をあけることになった。
1mm程度のアルミに塗装したプレートなので穴を空ける際は塗装保護のために養生テープで覆うなどする。保護無しで作業をするとアルミの削りカスなどでキズが付く。それとテープの上から穴の位置をペンで書けるので便利。穴あけはテープを貼ったままバリバリと。

アルミエンクロージャでNanoPi NEOのケースを作る 8
アルミのプレートなので単純に穴をあけただけだと断面が銀色になる。このままだとかなり安っぽい。まぁ、頑張っても安っぽいんだけど。

アルミエンクロージャでNanoPi NEOのケースを作る 9
クルマのボディのキズを目立たないようにする塗料を使う。安いし。塗料は爪楊枝の先端に少しだけ付けてプレートの断面や最初から付いている小キズに塗ると簡単。

アルミエンクロージャでNanoPi NEOのケースを作る 10
金色の端子はGPSモジュールの外部アンテナ用。テレビアンテナの端子のように被せて回して締めるタイプなのでプレートの穴は端子より一回り大きくあけている。その右側のケーブルは電源用のmicroUSBケーブル。

もう一回り小さいケースだともっと良かったかもだけど一応GPSのNTPサーバがすっきりスマートに。

関連記事:

プロセッサ脆弱性SpectreとMeltdownのLinux用チェッカー

Meltdown and Spectre

話題のSpectreとMeltdownというプロセッサの脆弱性。俗に言う「PC」は軒並み脆弱性を抱えてると言って良いので早めの対処が必要だけどなかなか大変そう。
自分の端末でその脆弱性の有無を表示するLinux用のチェッカーがあるので試してみた。

https://github.com/speed47/spectre-meltdown-checker

ファイルはスクリプト1つだけ。インストールなどはなく、テンポラリディレクトリにでも置いて実行するだけ。不要になったら削除すれば良い。

$ cd /tmp
$ wget https://github.com/speed47/spectre-meltdown-checker/archive/master.zip
$ unzip master.zip
$ cd spectre-meltdown-checker-master
$ sudo ./spectre-meltdown-checker.sh
root's password: 管理者パスワード
Spectre and Meltdown mitigation detection tool v0.17

Checking for vulnerabilities against live running kernel Linux 4.4.49-16-default #1 SMP Sun Feb 19 17:40:35 UTC 2017 (70e9954) x86_64
Will use vmlinux image /boot/vmlinuz-4.4.49-16-default
Will use kconfig /tmp/config-0b1
Will use System.map file /boot/System.map-4.4.49-16-default

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Kernel compiled with LFENCE opcode inserted at the proper places:  NO  (only 40 opcodes found, should be >= 70)
> STATUS:  VULNERABLE 

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
*   Hardware (CPU microcode) support for mitigation:  NO 
*   Kernel support for IBRS:  NO 
*   IBRS enabled for Kernel space:  NO 
*   IBRS enabled for User space:  NO 
* Mitigation 2
*   Kernel compiled with retpoline option:  NO 
*   Kernel compiled with a retpoline-aware compiler:  NO 
> STATUS:  VULNERABLE  (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  NO 
* PTI enabled and active:  NO 
> STATUS:  VULNERABLE  (PTI is needed to mitigate the vulnerability)

$

赤字部分が入力するコマンド等。
Kernel compiled with LFENCE opcode inserted at the proper places: が表示されたところで暫く停まったように見えるのが何かの文字列入力待ちと勘違いしそうになるが入力しないでプロンプトが返るまで待つ。

基本的な調査項目3つ(Spectre Variant 1, Spectre Variant 2, Meltdown)の各項目のSTATUSが赤塗りのVULNERABLEなら脆弱性有り、緑塗りのNOT VULNERABLEなら(一応)対策済みとなる。対策済みといっても根治ではないので、本当の意味で「対応」するなら対策済のプロセッサに物を交換するしかないみたいだけど。 ちなみに、上の実行例は全くパッチを当てていない未対策機なので3項目とも脆弱性有り。
\(^o^)/
Up