Raspberry Pi と NTP または RTC の話
Raspberry Pi には RTC が載っていない
意外に忘れ去られがちなのだが、実は Raspberry Pi には一貫して RTC モジュールが載っていない。標準提供されている Raspbian を使う分には ntpd が動いているのであまり気にしなくても(internet に常時接続されている環境なら)いいのだが、そうでない場合は ntpd の設定を忘れると結構悲惨なことになりかねない。
RTC モジュールを載せる場合
たまにオフラインでも使用する場合がある、という場合は、RTC モジュールを載せてしまうという手もある。
h's IT Notes: Raspberry Piにリアルタイムクロックをインストールする
GPIOポートのピンアサインは(このモジュールを使う場合においては)同じなので、 Type B、Type B+ どちらでも使用できる。
Raspberry Pi とバイパスコンデンサの話
前提
Raspberry Pi を Internet に接続する前提で Type A を常用している人はあまりいないと思うので、ここでは Type B と Type B+ の話を前提とする。
Type B
Type B にはちょっと困ったことがある。特に散々語られたのが「USBデバイスをつなげると Raspberry Pi が fault する」というやつだ。再起動すればまた動作するのだが。で、原因は「USBデバイスを接続すると、そのデバイスをつないだ途端に端子電圧が低下する」という、これまた困った現象であった。原因は、Type B は USB ポートへの給電能力がしょぼいことにある。
これまでに先人が主な対策として挙げられてきたのは、下記の2点。
- セルフパワーで動作する USB ハブを介する
- バイパスコンデンサを増強する
難易度を考えると 1. のほうがお手軽なのだが、根本的な対処を考えると 2. をやっておいたほうがいいかもしれない。(またはこの問題が起こりにくい Type B+ を使うというのも手だ。価格差もあまりない。)
Type B 買っちゃったよ! という人は、下記を参考にしてバイパスコンデンサの増設または交換をするといいかもしれない。(はんだごてを扱ったことがない人は素直に諦めて B+ を買うか、または今からはんだごての腕を磨くしかないかもしれないが)
私もRaspberry Piのコンデンサを交換してみた。 - じとめすきーの覚え書き
ただし、どちらの方法にも留意点がある。まずバイパスコンデンサの増設。既設のコンデンサを剥す必要がないので、はんだ付けに失敗する可能性は低いのだが、問題はケースに収めようとしてコンデンサの足を曲げると、その真下にあるのはLDOレギュレータなのである。LDOレギュレータは安価なのだがとにかく変換効率が悪く、おそらく四分の一程度が熱として放出されてしまっている。
http://blog.minicube.net/2013/01/raspberry-pi33vldo.html
つまり、このLDOレギュレータの熱で電解コンデンサを炙っちゃうことになるのだ。放熱対策をしっかりやる必要があるだろう。
次に既設のコンデンサを剥す場合。これはもうご紹介先のブログの記事の通り、うまくやらないとランドを剥いでしまう可能性があるので、はんだごてをうまく使える人でないとちょっとおすすめできない。ただ、この方法でやればLDOレギュレータで炙られることはないので、長期運用を考えるならこちらのほうがよい。
Type B+
Type B+ は LDOレギュレータではなくスイッチングレギュレータに変更され、そのせいか Type B で目立っていた電源の問題はかなり影をひそめた。ひとつだけ気を付けなければならないのは、USBポートへの給電能力自体はそれほど向上していないにUSBポートだけは4つへ倍増してしまったので、「つなぎ過ぎればアウト」というのはあまり変わらない。4つあってもなあ、と思うのだが…
Raspberry Pi と玄箱HG とのベンチマーク比較
この二つを比較したベンチマークがそういえばなかったな、と思い出したので UnixBench をとってみた。いや、今更玄箱HGでベンチマークとる人もいないか…
玄箱HG
HDD は Seagate ST340015A。実はこのディスク、玄箱HGと同様10年きっちり動き続けた。よく動いてるなと感心する。
======================================================================== BYTE UNIX Benchmarks (Version 5.1.2) System: kurohg: GNU/Linux OS: GNU/Linux -- 2.4.17_mvl21 -- #24 2004年 10月 19日 火曜日 17:17:03 JST Machine: ppc (unknown) Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968") CPU 0: (173.7 bogomips) 03:27:36 up 6 days, 4:06, 1 user, load average: 0.59, 0.26, 0.10; runlevel ------------------------------------------------------------------------ Benchmark Run: Thu Sep 11 2014 03:27:36 - 03:56:03 1 CPU in system; running 1 parallel copy of tests Dhrystone 2 using register variables 511136.7 lps (10.1 s, 7 samples) Double-Precision Whetstone 135.4 MWIPS (10.0 s, 7 samples) Execl Throughput 154.8 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 32450.8 KBps (30.1 s, 2 samples) File Copy 256 bufsize 500 maxblocks 11691.5 KBps (30.1 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 51555.6 KBps (30.1 s, 2 samples) Pipe Throughput 109310.8 lps (10.1 s, 7 samples) Pipe-based Context Switching 52269.0 lps (10.1 s, 7 samples) Process Creation 668.5 lps (30.1 s, 2 samples) Shell Scripts (1 concurrent) 308.1 lpm (60.4 s, 2 samples) Shell Scripts (8 concurrent) 42.5 lpm (60.8 s, 2 samples) System Call Overhead 166635.8 lps (10.1 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 511136.7 43.8 Double-Precision Whetstone 55.0 135.4 24.6 Execl Throughput 43.0 154.8 36.0 File Copy 1024 bufsize 2000 maxblocks 3960.0 32450.8 81.9 File Copy 256 bufsize 500 maxblocks 1655.0 11691.5 70.6 File Copy 4096 bufsize 8000 maxblocks 5800.0 51555.6 88.9 Pipe Throughput 12440.0 109310.8 87.9 Pipe-based Context Switching 4000.0 52269.0 130.7 Process Creation 126.0 668.5 53.1 Shell Scripts (1 concurrent) 42.4 308.1 72.7 Shell Scripts (8 concurrent) 6.0 42.5 70.8 System Call Overhead 15000.0 166635.8 111.1 ======== System Benchmarks Index Score 66.1
Raspberry Pi Type B
使っているのは KINGMAX の 8GB SDHC (一応 Class10のやつ)。おい、長期運用するんじゃないのか。これ。
======================================================================== BYTE UNIX Benchmarks (Version 5.1.2) System: raspberrypi: GNU/Linux OS: GNU/Linux -- 3.12.22+ -- #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 Machine: armv6l (unknown) Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968") CPU 0: ARMv6-compatible processor rev 7 (v6l) (0.0 bogomips) 03:22:47 up 8 min, 1 user, load average: 0.88, 0.79, 0.41; runlevel 2 ------------------------------------------------------------------------ Benchmark Run: Thu Sep 11 2014 03:22:47 - 03:51:02 1 CPU in system; running 1 parallel copy of tests Dhrystone 2 using register variables 1680433.3 lps (10.0 s, 7 samples) Double-Precision Whetstone 268.6 MWIPS (10.0 s, 7 samples) Execl Throughput 234.5 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 40456.9 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 12784.3 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 96520.2 KBps (30.0 s, 2 samples) Pipe Throughput 171084.9 lps (10.0 s, 7 samples) Pipe-based Context Switching 23291.0 lps (10.0 s, 7 samples) Process Creation 748.3 lps (30.0 s, 2 samples) Shell Scripts (1 concurrent) 419.5 lpm (60.1 s, 2 samples) Shell Scripts (8 concurrent) 53.2 lpm (60.9 s, 2 samples) System Call Overhead 390523.5 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 1680433.3 144.0 Double-Precision Whetstone 55.0 268.6 48.8 Execl Throughput 43.0 234.5 54.5 File Copy 1024 bufsize 2000 maxblocks 3960.0 40456.9 102.2 File Copy 256 bufsize 500 maxblocks 1655.0 12784.3 77.2 File Copy 4096 bufsize 8000 maxblocks 5800.0 96520.2 166.4 Pipe Throughput 12440.0 171084.9 137.5 Pipe-based Context Switching 4000.0 23291.0 58.2 Process Creation 126.0 748.3 59.4 Shell Scripts (1 concurrent) 42.4 419.5 98.9 Shell Scripts (8 concurrent) 6.0 53.2 88.7 System Call Overhead 15000.0 390523.5 260.3 ======== System Benchmarks Index Score 95.1
Index Score で見れば玄箱HGの4割増し程度の性能である。性能だけを考えれば、普通にどこかの安いVPSでも借りた方がよろしい。特に Web がらみは。ただ、自分専用のメールサーバをやらせるとか簡単なスクリプトを試すとか、そういう目的であれば十分に使える。
はじめに
Raspberry Pi が発売されてからそれなりの年月が経ちましたが、もともとが教育用コンピュータであるという位置づけ、そしていろいろなことで遊ぶという用途が喧伝されたことから、Raspberry Pi を長期運用するということがあまり語られていないように思います。そもそもの用途とちゃうやろ、と言われるとそれまでなのですが。
ただ、自分は Raspberry Pi をこれまで使ってきた玄箱HG(結局10年ほど使ってきたことになります。実際にはまだ動いています)の代わりとして使いたいという気持ちがあるので、Raspberry Pi もまた長期にわたって使い続けたいと思っております。
このblogが、同じく Raspberry Pi を長く使い続ける方のご参考になれば幸いです。