Raspberry Pi (Linux)

いよいよ Pi3B+

今週の予定は完了しているので今日は暇な日にした(笑)

先程、KSYさんでRS版 Pi3B+を予約注文した。

eth0が300Mbpsになり、ラズパイルーターVPNでのスループット向上に期待。
現状でもeth1はギガイーサのアダプタにしてあるので、そのままの構成で試せる。

Pi2Bルーターで使用中の5V 2Aの電源を継続使用する為、ボトルネックにならない程度に限界までアンダークロックを予定。
オーバークロックは嫌いだが、アンダークロックは好きだ(笑)

まずは、この内容で試す。

arm_freq=900
arm_freq_min=600
gpu_freq=200
sdram_freq=400
temp_limit=50

そもそも、ヘッドレスでGPUなんて不要なら、RaspberryPi 3B+の使い方としては勿体無さすぎかな(笑)

カーネルパニック

このサーバーにて、同じ内容のカーネルパニックが5日間で2回も発生。
しかし、何事も無く動作していた・・・

早速 4.14.30-v7+ #1102からアップデートすると、4.14.34-v7+ #1110 と、だいぶ進んだバージョンになった。
安定バージョンでMar 26 以来 Apr 16 の早々なアップデートは、やはりバグ解消を含む。

どうやら、下記リンクの問題に起因してパニックを起こしていたっぽい。

https://github.com/raspberrypi/linux/commit/2a9ef94eda9f59280c7259b3b5ece8993605165e

使わないi2c_devをロードしていなければ問題はなかったな・・・
要らないデバイスはロードしないのが吉。

[210007.097006] Unable to handle kernel NULL pointer dereference at virtual address 00000028
[210007.110281] pgd = 90ccc000
[210007.115525] [00000028] *pgd=00000000
[210007.121570] Internal error: Oops: 5 [#1] SMP ARM
[210007.128648] Modules linked in: fuse bridge stp llc overlay sg fixed uio_pdrv_genirq uio i2c_dev ip_tables x_tables ipv6
[210007.144599] CPU: 2 PID: 11556 Comm: apache2 Not tainted 4.14.30-v7+ #1102
[210007.154122] Hardware name: BCM2835

セキュリティー強化

先月から、VPN関連のWAN側ルーターインプットにつき、ステートフルインスペクションを強化した。
殆ど意味無いけど(笑)

iptables-restore

-A INPUT -i ppp0 -p udp -m state --state NEW -m udp --dport 500 -j ACCEPT
-A INPUT -i ppp0 -p udp -m state --state NEW -m udp --dport 4500 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j ACCEPT

iptables

1 92 ACCEPT udp -- ppp0 any anywhere anywhere state NEW udp dpt:isakmp
0 0 ACCEPT udp -- ppp0 any anywhere anywhere state NEW udp dpt:ipsec-nat-t
67 3396 ACCEPT tcp -- ppp0 any anywhere anywhere tcp dpt:https flags:FIN,SYN,RST,ACK/SYN state NEW

通信速度復活!!

2/19の記事 「コミュファのサポート」の続き。

本日午後、VDSLセンター側装置の設置担当業者が調査に来てくれて、どこをどうしたかは知らないが、午前中はVPNで上下3Mbps程度しか出ていなかったスループットが添付画像のレベルまで回復。

VPNだと在宅しなくても確認できるから、そんな時にも便利な機能だ。
無償で優れたソフトウエア(SoftEther VPN)を配布してくれることに、つくづく感謝。

ところで・・・こんな速度はこれまでに見たこと無い(笑)

現在、IIJを暫定的に使用していることもあるが、So?netに戻すとどうなるか気になるところ。

あとは、この状況がどれだけ続くかが問題だが、とりあえずメンテナンスで回復した前例になるので、次回もクレームとして上げ易いかな。

去年なんか丸一年遅い状態だったが、遠慮してクレームせず、馬鹿を見ただけとなってしまった(笑)

時にはクレームも重要だと再認識した(笑)

帰宅後、So-netで接続しなおして、LAN内の端末で計測したらこの結果・・・

ラズパイルーターだと限界値だな・・・

So-netとIIJで差が無い為、IIJは今月で解約。 寂しいけど(笑)
So-netは安価なのに頑張ってるな。 

速度制限を疑ったりして御免。

OverlayfsによるRaspberry PiのSDカードROM化

SDカード(システムディスク)をリードオンリーで運用したい場合のお手軽な方法を紹介。

/etc/fstab に対するSystemdの処理なので、Raspberry Pi 以外でも使えます!

尚、 このサイトのサーバー 及び ルーター は、ここで紹介する方法でシャットダウンフリー化したRaspberry Pi 2 Model B(2018年2月~ Raspbian Stretch,2019年7月~ Raspbian Buster,2021年12月~ Raspbian Bullseye)上で動作しています。

○.概要

・システムSDカードを読み取り専用とした上で、書き込み処理が必要なディレクトリーを選択してOverlayfsによりtmpfs上で運用する。
・Filesystem in Userspace (FUSE)を活用し、fstabにて上記Overlayfsをマウント指示。
・fstabのルートパーティションのマウントオプションが読み取り専用"ro"で無い場合は通常起動。

swapの無効化、/fsprotectの作成等は済んでいる事が前提です。
また、/proc/filesystemsにoverlayが無い場合は、モジュールのロード(modprobe overlay)が必要です。

1.パッケージの追加

FUSEマウントのためにfuseを追加。

sudo apt-get install fuse

/sbin/mount.fuse をoverlayマウント時に使用します。

2./usr/local/bin/mount_overlay の配置

fstabでのfuseマウントで使用するスクリプトを以下の様な内容で配置。
----------------------

#!/bin/sh

DIR="$1"
ROOT_MOUNT=$( awk '$2=="/" { print substr($4,1,2) }' /proc/mounts )

if [ "$ROOT_MOUNT" = "ro" ]; then
  if [ -e "${DIR}" ]; then

# tmpfsを/fsprotect にマウント(注1)
    /bin/mount -t tmpfs -o size=320m tmpfs ${DIR}

    for d in usr lib etc home root var
    do
    /bin/mkdir ${DIR}/${d}
    /bin/mkdir ${DIR}/${d}_rw
    OPTS="-o lowerdir=/${d},upperdir=${DIR}/${d},
    workdir=${DIR}/${d}_rw"
    /bin/mount -t overlay ${OPTS} overlay /${d}
    done
  fi
fi
# /var/logを独立してtmpfsに配置したい場合はここでマウント(注2)
/usr/local/bin/make_log_files
exit 0

----------------------

やはり・・・

VPNの通信速度が上がったので、WAN側NICを新調して更なる快適環境を狙ったのだが・・・

なんと、NICを入れ替えた当日深夜にルートの切り替えがあった模様で、DL:20Mbps、UL:2Mbps程度にまで極端に速度ダウン・・・

よりによって、NIC新調(2000円)と同時に速度ダウンなんでショックが大きい・・・
新調したNICは凄く良いんだが。

快速環境は、ほんの2ヶ月間の幻(笑)

NUROとの差別化はわかるが、それにしても酷すぎる。
まあ、月額1200円では無理も無いとは思うが。

ケチらずプロバイダーを替えるかな・・・

2/11 追記 早速IIJを契約し試してみたが、全く変化なし・・・
So-netがケチとか、全く関係なかったので、回線業者に調査依頼中。
1ヶ月間は無駄にIIJユーザー(笑)


ラズパイVPNのスループット

NUROのサービスがこの地区で提供され始めた去年の11月20日頃から、今までになく高速になり、上下40Mbpsを超えるスループットで、VPNでもDL:37Mbps、UL:25Mbps程度も出ていたのだが、あまり快速だとNUROが売れなくなるからか(笑)、最近になって意図的に上り20Mbpsに制限されてしまったような印象・・・

最近では、VPNでのスループットが↓の速度で安定している状態。

去年の11月20日以前は特に上りが3Mbps程度しか出ておらず酷かったので、そのことを思えば凄く快速。

なんとか、現状を維持してほしいが、どうなることやら。

静電モップは電子機器に使うな(笑)

ラズパイルーター、どうやら、Wi-Fiアダプタとして使ってるTL-WN823Nが静電モップでダメージを受けてしまった模様。

当初、電力不足を想定し、現在では無効な設定、max_usb_current=1とか試してみたが、そもそも最大500mAのアダプタに、全く無関係なのに意味無く試して馬鹿だったなあ(笑)

予備品に交換して完全に復旧したけど、一応予備品を発注しておいた。 980円。 TP-LINK、中華メーカーでパクリ度100%等と言われたりしてるが、ちゃんと使えるものがこの価格で買えるのだから、有る意味凄いメーカーだなあ・・・

ラズパイモデルB+のパケット処理能力

Raspberry Pi モデルB+の持ち出し用Wi-Fiルーター、Wi-FiアダプタをTL-WN725NからTL-WN823Nに替えてみたらこの通信速度に驚愕度アップ(笑)

これなら、自宅のメインルーターにも使えそうだが、CPU負荷が掛かるソフトウエアVPNを使う場合等は処理能力の低いB+は不利だから、メインルーターはPi2にしている・・・

出先のPCにてUSB3.0のポートから電源を取っているのだが、Wi-FiアダプタをTL-WN823Nに替えたら、やや消費電力が上がり、接触抵抗の大きいUSBスイッチが使えなくなった。
USBケーブルが細めだということもあるが、これは仕方ないな・・・

それにしてもRaspberry Pi モデルB+、この用途では十分な性能だな。

USBハードディスクの検出及びHDDモーター停止 スクリプト

朝一、USBハードディスクの検出とマウント、及びアクセスが無い場合タイマーでHDDモーター停止を実施するスクリプトを作成した。
ようやく仕事に移れる(笑)

rc.localで以下のように実行し常駐させる。

/usr/local/bin/usbhdd_spindown.sh HDCR-U /mnt/media 900 2>&1 | logger -t usbhdd_spindown.sh &

スクリプトは以下 (pdfファイル 11.5 KB)
usbhdd_spindown.sh