2015年12月29日火曜日

せっかくなのでベンチマークなど。

少なくとも、ゲームをやっている限りは特に不便は感じなくなったのでベンチマークなどをやってみようと思ってやってみました。まずは結果から。

最初に断っておきますが、うちは2画面で片面で下のOpen Hardware Monitorを走らせていました。

まあ、これが良いのか悪いのかはわかりませんが結果だけ貼り付けておきます。

上からGPU Core温度、CPU Core温度、CPU Total負荷、CPUファン、GPUファンです。普通にゲームをやっている時にはこのモニター上でビデオカードの温度は60℃で安定しているのですが、このベンチでは70℃までいっています。CPUの温度は50℃を超えないあたりなので普段のゲームとあまり変わらない結果です。

CPU負荷は50%もかかっていませんね。やはりビデオカードは良いのをつけておいたほうがいいのかもしれません。

ファンに関しては途中から動き出しているのがビデオカードのファンです。ちなみにケースはP100を選択しましたが、ベンチ中も気にならない・・・、まあこれは個人差があると思いますのでなんとも言えませんが、私は結構静かだと思います。

ということで、なんのひねりもないですがお後がよろしいようで・・・m(_ _)m。

2015年12月21日月曜日

Newマシン始動!

苦節8年、ようやくNewマシンが始動しました!
半自作パソコン、パーツの犬009 GTX 980 Ti  モデル。

ノイズは多いですが、アングルに凝ってかっこ良くとってみました(笑)。

最近のパソコンは裏配線になっていて表から見ると綺麗なもんです。あと、一番時間をかけたのがCPUグリスの施工方法の考察。パーツの犬009モデルはICD7Cダイアモンドグリスがついてくるので、どう塗るかすごく迷いました。結果として通称うんこ塗り(笑)で施工。これに関しては別項目で私の考えを書きたいと思います。別にする意味はない気もしますが(笑)。

・・・

まあ、動いてみれば大したことないんですが、ここまで来るのに丸一日かかりました・・・。久々に嫌な汗をかきました。

まずはじめにマザーボードのエラー番号が表示された状態で止まるところから始まりました。これは見た目には問題ないんですが、メモリーを挿し直すことで直りました。

次にハードディスクのポカミス。電源が抜けてました。

次は原因不明のハングアップ。ひとまずOSをインストールしてからマザーボードのBIOSを上げようと思っていたのが運の尽き。ホント、これには苦労させられました。購入時のバージョンは1.20で最新は2.40。ただ、1.20のバージョンもリリース日が2015/8/6で決して古くはないんですが、すでに2.40まで上がってます。

なにが苦労したって、エラーを吐いてアップデートができない! 何度やってもエラーが出るので、で一旦諦めて、次の日にやってもダメで、このときもうダメだ!と思ったくらいです(笑)。しょうがないので、お昼を食べて帰ってきてトライしたらすんなり通りました・・・。なんだこれ・・・。

で、現在順調に動いているのですが、スリープからの復帰が一発でいかず、二度目の起動で立ち上がります。jこれはなんかありそうだけど、なんとかなる気もする。

それにしても、久しぶりに自作をしたけど絶対初心者は無理だね。もっとも、やらなければスキルは上がらないわけで、やるしかないっていうのもまた真実だけど・・・。

ところで、性能はというと、非常に満足です。まあ、これで満足できなければどれで満足するの?!って感じなんですけど(笑)。



2015年12月4日金曜日

ついに分かった! あなたにも分かるスイングバイ!!!(スイングバイ 原理)

スイングバイでなんで速度が上がるのか分からなくないですか?
まあ100歩譲って角度が変わるのは感覚的にわかる。でもなんで速度が上がるのか!!!

ちなみに角度が変わるのは凹んだところをビー玉が通ると真っ直ぐ進まないのと同じ原理です(笑)。いや、これじゃあ普通の人には絶対わからないよなあ。もう少しわかりやすく言うと、でっかいジョウゴの中をビー玉が円形にくるくる回るのと同じ原理です。まあ、今日は速度が上がるほうが主題なのでさらっと無視します。

で、前置きが長くなりましたが、私は分からなかったんです。まあ、分かろうとしなかったと言ってもいいかもしれない・・・。で、インターネットを 徘徊してみました。そしたら私と同じ人はいっぱいいるみたいで、いろんな解説サイトが引っかかるのですがどれもわかりづらい(笑)。

で、必死に考えてみたところ、ついにわかった気がしたので(笑)、ここに書いてみようと思った次第です。私のような迷える子羊の助けになれば幸いです。
私が知っている範囲で世界で一番わかりやすいスイングバイで速度が上がる解説です(笑)。

では、はじめましょう!

まず始めに、簡単なところから。ここにブロック塀があるとします。 野球少年がやってきて壁相手にキャッチボールを始めました。投げては取って、投げては取ってを繰り返します。

さて、ここで問題です。壁に投げたボールは壁にぶつかって跳ね返ってくるんですが、理想的には、・・・そう、物理特有の表現ですよね、理想的(笑)。まあ、言い換えると条件が良ければどうなるか? ・・・投げた速度と同じ速度でボールは跳ね返ってくるんです。

壁にボールを投げると理想的には同じ速度で跳ね返る。ここまでいいですか? 現実的にはボールの速度は下がっていくんですが、理想的には固い壁にあたったら同じ速度で跳ね返ってくるんです。

ここでついてこれなくなったら、もうスイングバイは諦めてください。世の中には知らなくても良いことなんて山ほどあります。スイングバイなんて知らなくても何も困りません(^^)。まあ、我慢してもう少し読んでみることをオススメしますが・・・。

話は続きまして、じゃあ、この実験がたまたま50km/hで走る電車の中で行われたとする。
野球少年が電車の中で電車が動く向きとは反対方向に100km/hのボールを投げます。おお、結構なスピードで投げますね、この少年! て、跳ね返ったボールは電車の中では当然100km/hです。まあ、理想環境ですから(笑)。

ここで問題です。この様子を電車の外、つまりホームから見ている人がいました。ちょうどホームを通り過ぎるところだったんでしょう。急行かな? ・・・まあどうでもいいか(笑)。・・・そんなことを考えながら見てました。さて、ホームにいる人にはボールは何キロで飛んで行くように見えたでしょう?

電車は50km/hで走ってますから、ボールを投げている少年も当然50km/hで動いてます。そこから電車の動く方向とは反対にボールを100km/hで投げるわけですから、ボールは差し引き、50km/hで電車の進む方向とは反対に飛んで行くようにホームの人には見えます。

だんだん難しくなってきましたね。でもまだ大丈夫です。冷静に考えればきっと分かるはずです。

では壁から跳ね返ったボールはホームで見ると何キロでしょうか。電車の中では100km/hで跳ね返っているわけですから、さらに電車の速度の50km/hを足して150km/hで電車と同じ方向に飛んで行くんです。なんと(笑)!

・・・ここまでいいですか?

ここまできたら、もうスイングバイは分かったも同然。つまり、ホームからボールを見ていると、50km/hで飛んでいるボールが、壁に当たって跳ね返って150km/hになっている。・・・ほら、50km/hのボールが150km/hになって速度が上がったでしょう?これがスイングバイで速度が上がる理由です(笑)。

いや、わかってますって。これじゃあ、絶対わからないですよね(笑)。めっちゃ騙されてる感が強いですよね(笑)。でも原理は同じなんです。

さて、そろそろお話も佳境に入ってきます。

ところで、ここで質問します。世の中には引力というものがあって、例えば探査機が地球のそばを通るとその方向が変わるという現象はなんとなく理解できますか? 考え方としては最初に例としてあげたジョウゴにビー玉と同じ原理です。地球の重力に引かれていった探査機が方向を変えられて、また地球から離れていく。ビー玉も投げる角度を調整すればジョウロの中心に向かって落ち込んで行かずに、向きだけ変える現象を再現できると思います。

で、この時に速度が上がるのがスイングバイです。まあ、いろいろ省略しますが、今回は地球に近づいていった探査機が地球の重力に捕まって、ぐるっと回って180度方向転換をして地球から離れていくことを考えます。

細かいことはいろいろあるんですが、物事を理解するためには、まずは細かいことは気にしないというのはよくあることです。で、ここで引っかかるのは、地球に惹かれた探査機は、地球から離れるときにも後ろ髪を惹(引)かれるわけで、速度的にはプラスマイナス0になることです。速度は上がりません。

つまり止まっている地球をぐるっと反転して戻ってくる場合には地球はいつまでも止まっていますし、探査機は100km/hで地球に飛んでいけば、100km/hで地球から帰ってきます。厳密には違いますがここでは気にしません。

で、ここからがミソです。ようやく最初の電車の下りが生きてきます(笑)。ここで地球さんが乗れるでかい電車が時速50km/hで走ってました。遅!(笑) 電車の前方から野球少年が投げたボールよろしく100km/hで探査機が地球に近づいてきます。最終的に探査機は地球をぐるっと回って地球を乗せた電車の進行方向に100km/hで飛んでいきます。

さて、この話は電車の中で見ている人の話しでしたよね。つまり電車の中からは止まって見える、地球で見た場合です。じゃあ、電車の外の太陽さんにはどう見えるでしょうか。太陽には50km/hで飛んでいる探査機が地球で方向転換して150km/hで飛んで行くように見えるんです! ほら、速度が上がったでしょう? これがスイングバイで速度が上がる理由です。

地球は止まっている太陽の周りを公転していますよね。これが電車に乗っているのと同じことになるわけです。

なんか相変わらず大事なところで騙されている気がしてしょうがないと思いますが(笑)、本質的には間違っていないはずです。

さらに、探査機が後ろからやってきて、後ろへ戻っていくことを考えてみます。太陽から見て探査機の速度が100km/hだとすると、50km/hで動いている地球から見た探査機の速度は50km/h。180度方向転換をして地球から見て50km/hで離れていくとすると、太陽から見ると探査機は0km/h、つまり止まっちゃうわけです。これがスイングバイで速度を下げる原理です。

で、もう少し考えると、また面白いことがわかります。探査機は地球の進行方向から来て、地球の進行方向に戻っていくのが一番速度が上がるんですが、これは地球の進行方向成分がキモになっていて、横方向は無視していいんです。

物理的な大きさがあるのでこんなことはありえないのですが、例えば進行方向から入って直線的に後ろにそのまま出て行くときには最終的な速度は変わりません。近づくに連れて速くなりますが、離れるときに遅くなるので、結果的には探査機の速度は変わりません。

もう少し考えると地球の進行方向に対しての垂直平面を考えて、進行方向に対する角度をプラスとして、進行方向とは逆の方向をマイナスとすると、入った時と出た時の角度を足した時にプラスになれば速度は上がるし、マイナスなら下がることがわかります。
(実際にはこの垂直平面も地球と同じように動いているのでちょっとややこしいのですが・・・(^^;)。)

例えば、地球の進行方向の真横、つまり垂直平面上を通って探査機が近づいてきた場合には、一反重力に捕まったあと、進行方向側に離れていけば速度は上がるし、反進行方向側であれば速度が下がることがわかります。このことを理解しておくと、他の解説サイトの動画を見ても一発で速度が上がるのか、下がるのかが分かるでしょう。

ということで、今日の講義はここまでです。気分が乗ったら絵も書きたいと思います。

文章だけでこれを読むのは辛いですよね(笑)。でも一番わかり易い、後半は難しいですが(^^;)、スイングバイで速度が上がる解説だと思うのですがどうでしょうか?

補足:
スイングバイで大事な点は、
1.進行方向を変えること。
2.速度を変えること。
の2つあります。1に関する大事なポイントは引力です。2に関する大事なポイントは公転(+引力)です。これを理解しておかないとおかしな事になってしまうので注意が必要です。



2015年11月15日日曜日

ホント! どうでもいい話。次にやりたいこと(覚書)

やりたいことはいっぱいあるのですが、やる気が起きないので覚書だけ書いておこう(^^)。

順不同。
1.Raspberry PiのSSD化したシステムのバックアップ。
2.Raspberry PiのSSDにバックアップ領域を設けて、定期的にバックアップ。
3.Raspberry Piの使っていないSSDの半分を家族間のファイル受け渡しファイルサーバーとして利用する。
4.LXU-OT2をRaspberry Piから運用。(いちいちパソコンを立ち上げるのが面倒なので(^^;)。)
5.neGT-USB3 製作代行機の作成。(要望が一件あったので(笑)。)

まあ、細かいことはいろいろあるんですがとりあえず忘れないように書いておこう。


2015年11月8日日曜日

Diginnos Stick DG-STK1B買いました!

ドスパラのスティックpcです。で、いきなりこんな感じです(笑)。
解説しますと、
上のミニUSBは有線LANへ、
真ん中下のミニUSBは電源へ、
左下のUSBは100均セリアのUSBハブで、そこにつなげているのが、
無線タッチパッド付きキーボード(アンドロイドスティックPCについてきたやつ)、
その下の空きUSB端子は有線キーボード
となっています。

え?もう一つ忘れてるって?はい、はい、100均USBハブから電源ラインを出して、外付けファンを回してます。

Google Chromeから
http://oortonline.gl/
を実行した結果がこれです。
さらにこの時のCPU温度のモニタ結果がこれです。
40℃ぐらいから始めて、85℃まで行きました。グラフィックのベンチマークなので、CPUはほとんどの時間100パーセントにはなっていませんでした。クロックはほぼずっと1333MHzとなっていたと言っていいでしょう。

結果としてこれが何を意味するかは比較対象がないのでよくわかりませんが、普通にインターネット見てYouTube見て、なんてやるぶんには全く困らなかったです。というか、私の常用PCであるDell X1よりも確実に速いです(笑)。

ただし注意する点は、私のところではファンを増設している点です。
もともとすぐにクロックダウンすると聞いていたので、ファン無しで動作させたのは最初のチェックだけで、ノーマル状態の動作に関してはあまり参考にならないと思われます。

それでもこれだけ使えるなら、パソコン使ってみたいという子供とか、両親とか、そんな用途にはいいかもしれません。ちなみにうちの子供は私よりも良いPCを使っています(笑)。

ノーマル状態での評価ではないですが、かなり使える印象を持ちました。

2015年11月3日火曜日

ポリウレタン線の回収

ポリウレタン線って結構便利なんで、私は配線によく使っていたりするんです。
で、秋月で買ったこともあるんですが、今回はたまたまいらなくなった昔のトランス型のACアダプタをばらしてポリウレタン線を回収しました。
ちなみにポリウレタン線はトランスの他、電子部品のコイルだとか、ヘッドホンの線なんかにも使われています。ヘッドホンの線は細すぎて工作には使えませんが・・・(^^;)。

被覆を溶かすには、ハンダコテにハンダをつけてコテ先にハンダボールを作ったところに線を差し込んで熱で溶かします。もちろんカッターなんかで削るという方法もありますが、そんなことをしていたら日が暮れてしまいます(笑)。

そんなに簡単に溶けてしまうなら線の途中で被覆がはがれたどうするんだ?と思うかもしれませんが私の経験ではそんなことは一度もないので気にするだけ無駄だと思います。ちなみに線の端じゃないところをハンダボールに突っ込んでも被覆を溶かすのは非常に難しいので、熱で端点以外の被覆が溶けてしまうのでは?ということも考えるだけ無駄です(笑)。

時々ヘッドホンの配線を直そうとしてハンダ付けができないと言っている人がいたりしますが、その場合に問題になっているのは熱に対する耐久性ですので、慌てず端点をハンダボール突っ込むと被覆が溶けてハンダ付けできるようになります。

使ったことがない人は是非使ってみてください。病みつきになりますよ(笑)。ちなみにneGT-USBシリーズの配線でも使っています!

2015年11月1日日曜日

100均USBハブ

Raspberry PiでUSBハブを使いたくなったのでセリアでUSBハブを買ってきました。
2ポートタイプです。早速開けてみると、
こんな感じになっていました。外観は2ポートタイプですが、4ポートタイプのICを積んでいます。

せっかくなので2つ増設でもしてみようかとICを確認したところ、
こんなのがついてます。なになに、AU6258Gと書いてある。
便利なインターネットで検索してみると、見つかるには見つかったのですが、なにやらデータシートと実際のもののPIN配置が違っていました・・・。もしかしてコピー品?(^^;)

出鼻をくじかれたので今日はこんなところで終了します(笑)。まあそのまま実験してもいいんですがなんとなく引っかかる・・・。

追記:
どうやらGL850Gのようです。他の方が同じように分解されているサイトをみると、この型番が出ています。ピン配置も確かに同じ。怪しいICが使われているこのUSBハブの信頼性も非常に怪しい・・・(^^;)。


2015年10月28日水曜日

復旧最終回:bme280で気圧・温度・湿度!

まずはi2cの動作からです。
i2c機器がこの状態で検出されるかどうか確認して見ます。

$ sudo i2cdetect -y 1

コマンドが無いって怒られました。まあ、想定通りなんですが(^^;)。
i2c機器の認識から始めます。

$ raspi-config
でi2cを有効にします。
$ sudo vi /etc/modules

i2c-bcm2708
i2c-dev
を追加します。うちのはi2c-devはすでに追加されていましたので、i2c-bcm2708を追加します。
(意味はわかりませんが(笑))

$ sudo vi /boot/config.txt
で下記を追記。具体的には先頭の#を削除。
dtparam=i2c_arm=on

$ sudo reboot
でリブートします。

立ち上がったらi2c-toolsをインストールします。
$ sudo apt-get install i2c-tools

この段階でようやくi2cの検出が可能になりました。
$ sudo i2cdetect -y 1

うちでは
i2c_address = 0x76
となっています。

次はbme280からデータを持ってくるための準備です。
bme280のアクセス用プログラムはスイッチサイエンスさんがpythonコードで提供してくれていますのでそれを利用します。

python-smbusをインストールします。
$ sudo apt-get install python-smbus

次に適当なフォルダにおいたスイッチサイエンスさんのPythonコードを実行してみます。
私は出力を改造しているので、ここでは名前をbme280_non2.pyとでもして、/home/pi/に保存しておきます。
$ python /home/pi/bme280_non2.py
で気温、気圧、湿度が表示されるはずです。
例えば、私の改造後の出力は
31.023869
991.371934
44.143983
となっています。上から気温、気圧、湿度です。

さて、ここまで来たら次はこの結果をmuninプラグインに取り込んでグラフ化します。

例によってmuninのプラグインをさくっと書きます。

---ここから
#!/bin/bash
# bme280 munin plugin by nonnon

#%# family=auto
#%# capabilities=autoconf

sensor_in=$(sudo python /home/pi/bme280_non2.py)
count=0
sensor=()
for L in $sensor_in
do
count=`expr $count + 1`
sensor[$count]=$L
done

if [ "$1" = "autoconf" ]; then
if [ -n ${sensor[1]} ]; then
echo yes
exit 0
else
echo no
exit 0
fi
fi

if [ "$1" = "config" ]; then
echo 'multigraph m_humi'
echo 'graph_title 3 BME280 Humidity'
echo 'graph_args -Y -J'
echo 'graph_scale no'
echo 'graph_vlabel Percent' 
echo 'graph_category BME280'
echo 'humidity.label humidity'
echo ''
echo 'multigraph m_temp'
echo 'graph_title 2 BME280 Temperature'
echo 'graph_args -Y -J'
echo 'graph_scale no'
echo 'graph_vlabel Celsius' 
echo 'graph_category BME280'
echo 'temperature.label temperature'
echo ''
echo 'multigraph m_pres'
echo 'graph_title 1 BME280 Pressure'
echo 'graph_args -Y -J'
echo 'graph_scale no'
echo 'graph_vlabel hPa' 
echo 'graph_category BME280'
echo 'pressure.label pressure'
exit 0
fi

echo 'multigraph m_humi'
echo "humidity.value ${sensor[3]}"
echo ''
echo 'multigraph m_temp'
echo "temperature.value ${sensor[1]}"
echo ''
echo 'multigraph m_pres'
echo "pressure.value ${sensor[2]}"
---ここまで

名前をbme280_non2とでもしておきましょう。
では、例によってこのプラグインをCPU温度のときと同じ手順で使えるようにします。
bme280_non2を
/usr/share/munin/plugins
に移動します。

実行権限を付けます。
$ sudo chmod +x bme280_non2

/etc/munin/pluginsにシンボリックを作成します。
$ cd /etc/munin/plugins
$ sudo ln -s /usr/share/munin/plugins/bme280_non2 bme280_non2

munin-nodeを再起動します。
$ sudo service munin-node restart

わすれてました。パーミッションを追加します。
/etc/munin/plugin-conf.d/munin-node

[bme280_*]
user root
を追加します。念のためmunin-nodeを再起動します。

さて、プラグインの動作実験です。
$ sudo /usr/sbin/munin-run bme280_non2

ここでは、
multigraph m_humi
humidity.value 42.298481

multigraph m_temp
temperature.value 30.668437

multigraph m_pres
pressure.value 991.962348
等と表示していれば完了です。

あとは数分待ってグラフが表示されるのを待つだけです!
ようやく復旧しました!

2015年10月27日火曜日

復旧7:muninでRaspberry PiのCPU温度を表示してみよう!

予定通り、muninのプラグインを書いてみます。

Raspberry Pi の CPU 温度は以下のように打てば表示されます。

$ cat /sys/class/thermal/thermal_zone0/temp

例えばうちの環境だと、

47615

と表示されました。これは47.615℃という意味らしいです(^^;)。

基本的な流れは、
1.プラグインを作る。
2.プラグインを
  /usr/share/munin/plugins
  へ入れる。
3.実行権限をつける。
4.シンボリックリンクを作成する。
5.munin-node 再起動
となります。

まずはプラグインから。さくっと作ります(笑)。

---ここから
#!/bin/sh
# Raspberry Pi CPU temperature munin plugin by nonnon

#%# family=auto
#%# capabilities=autoconf

temp=$(cat /sys/class/thermal/thermal_zone0/temp)

if [ "$1" = "autoconf" ]; then
if [ -n ${temp} ]; then
echo yes
exit 0
else
echo no
exit 0
fi
fi

if [ "$1" = "config" ]; then
echo 'graph_title CPU Temperature'
echo 'graph_args -Y -J'
echo 'graph_scales yes'
echo 'graph_vlabel Celsius' 
echo 'graph_category Raspberry Pi'
echo 'temperature.label Temperature'
exit 0
fi

echo "temperature.value $((temp / 1000))"
---ここまで

こんな感じですかね。簡単に言うと、
必要な変数を取得する部分、
ちゃんと取得できているかどうか確認する部分、
グラフの設定部分
最後の行がデータを渡す部分、
となっています。超適当な解説なので詳しくは詳しい解説が記載していある他のサイトを御覧ください(笑)。

名前を
raspi_cpu_temp
とでもして
/usr/share/munin/plugins
に保存します。

実行権限を付けます。
$ sudo chmod +x raspi_cpu_temp

/etc/munin/pluginsにシンボリックを作成します。
$ cd /etc/munin/plugins
$ sudo ln -s /usr/share/munin/plugins/raspi_cpu_temp raspi_cpu_temp

munin-nodeを再起動します。
$ sudo service munin-node restart

と、ここまで勢い良く来たんですがどうやらこれでは小数点が出力されないらしい・・・。

いろいろなサイトを見てみるとシェルスクリプトだけで計算しているのは見つからなかったので、あえてここではシェルスクリプトにこだわって以下のように改造しました。

echo "temperature.value $((temp / 1000)).$((temp % 1000))"

いや、偉そうに言うほどのことでもないですね(^^;)。
しかし思うに中学生ごろにはこんなコードを書いていた気がしますが、ここ最近はとんとお目にかかったことがありません。かくいう私もなんとかして普通に計算できないかと調べまくっちゃいました(^^;)。しかし結果的には我ながら良いコードが書けたと思います(笑)。

せっかくなのでプラグインのデバッグ方法など。
・・・実はこれを動かすだけでも結構苦労しました(笑)。打ち間違いから小数点の扱いまで、答えが書いてあると簡単そうに見えるのですが、水面下では白鳥の如くすごい勢いで水を掻いていたりします(^^;)。

プラグインをテストする。
$ sudo /usr/sbin/munin-run raspi_cpu_temp

プラグインが組み込まれているか確認する。
$ munin-node-configure

ひとまずグラフを表示するようになったので、今日はここまで。

次はいよいよ本題のbme280です。i2cの有効化をしてbme280を認識できるようにしてpythonでデータを取得し、muninのプラグインに渡します。

2015年10月26日月曜日

復旧6:nginexとmuninのインストール

では、つづけましょう。

まずは環境の復旧なので、BME280で気圧、温度、湿度のグラフ化を復旧します。
最初にWEBサーバーを立ち上げます。私が使用しているのは、nginex(エンジンエックスと読むそうです。今日初めて知りました(笑)。)ですので、nginexをまずはインストールすることになります。

$ sudo apt-get update
$ sudo apt-get install nginx
$ sudo reboot

この状態で、外から(家庭LAN内ではなく、文字通りWANから)アクセスが可能になりました。もちろんSDカードが壊れる前から運用していたからで、実際にはルーター設定が必要になるでしょう。LANからRaspberry Piのアドレスを叩いても、当然ながらアクセスできました。

/etc/nginx/sites-available/default
の中に
server {
...
root /var/www/html;
...
という記述があり、デフォルトのフォルダは
/var/www/html
となっています。

次はいよいよmuninをインストール。
$ sudo apt-get update
$ sudo apt-get install munin munin-node

nginxのルートにmunin用のディレクトリを作成します。
$ sudo mkdir -p /var/www/html/munin
$ sudo chown -R munin:munin /var/www/html/munin
nginxを再起動して設定を適用します。
$ sudo service nginx restart
ついでにmuninも再起動しておきます。
$ sudo service munin-node restart

しばらくして、muninフォルダにアクセスすると、無事muninのグラフが表示されるはずです。

本日はここまで。
明日はRaspberry PiのCPU温度をグラフ化するプラグインを書いてみたいと思います。


2015年10月25日日曜日

復旧5:起動SSDのパーティション拡張

なにわともあれ、まずはキーボード。キーボード配列が違うと泣きたくなります。
$ sudo raspi-configで
Generic 105-key (Intl) PC → Other → Japanese → Japanese (OADG 109A)
→ The default for the keyboard layout → No compose key → No

次にIPアドレスの固定化。
/etc/network/interfacesの
iface eth0 inet manual
を例えば、以下のようにする。
#iface eth0 inet manual
iface eth0 inet static
address 192.168.1.25
netmask 255.255.255.0
gateway 192.168.1.1

次はsshの有効化。これはそんなに難しくないので軽く流します。
sshクライアントはputtyjpを使います。

あとはpasswordも変更しておきます。
これ以降はsshで作業します。

このへんでそろそろアップデート
$ sudo apt-get update
$ sudo apt-get upgrade

そういえば、ハードディスクのパーティションが小さいままだったので
gpartedをインストールして広げてみます。
$ sudo apt-get install gparted

さくっとやりつもりがエラー。現在起動しているパーティションだからと判断し、
先ほどSSD化するときに使った8GBのSDカードで立ち上げ、gpartedをインストールして
SSDを4GBから15GBに無事拡張。また、1GBのSDカードに戻して起動するのを確認しました。

今日はこんなところかな?

復旧4:外付けUSB-SSDから起動完了!

1GBのSD(いちいちminiを付けるのは面倒なので省略します(^^;)。)カードを先ほどWindowsから見えていたSSDと同じようにFATでフォーマットします。フォーマットしたらSSDからSDへWindows環境で普通にファイルをコピーして、起動するかどうか実験します。

RasPiにSDを挿して電源を入れてみます。お、kernel panicで止まりました。当然ですね(^^;)。
ではここからwindowsに戻ってboot領域を書き換えてみます。

調べてみると、cmdline.txtの
root=/dev/mmcblk0p2

root=/dev/sda1
に変えればいいらしい(^^;)。で、今回使うSSDはbootパーティションもあるので、sda1をsda2に変更してトライ。何事もやってみることが大事です(笑)。

はい、失敗(笑)。Kernel panicでは無いですが動きません。ちなみにsda2をsda1に変えてもダメでした。

しかたがないので初心に帰って、普通の起動ディスクをつくろう・・・。
壊れた8GBのPanasonic製SDカードはSDFormatterでもフォーマットできないし、AOMEI Partition Assistant Standard Edition 5.5でも開放できない。しかたがないので4GBのマイクロSDカードを持ってきて、Jessieを書き込もうと思ったらサイズが足りない・・・。
面倒ですが別の8GBのSDカードを調達し、それにJessieを書いて立ち上げることにしました。

次の作戦は
1.8GBのSDカードにJessieを書く。
2.上記SDカードでSSDのドライブの認識具合を観察して、次の手を考える。
3.おまけで上記SDカードでRaspberry Piを立ち上げて壊れた8GBをフォーマットしてみる。
です。

さくっと8GBにJessieを書いて当たり前のように起動したんですが、XWindowが立ち上がりました・・・。デフォルトでX Windowが立ち上がるんでしたっけ・・・?
マウスを繋げていないのでマウスをつなげて再起動。

Terminalを開いて、
df -h
やはりdev/sda1にSSDのboot、OSはsda2にあるようです。

sda2がどこにマウントされているか確認して、etc/fstabの3行目を
dev/mmcblk0p2 ←システムによって違っている可能性あり。
から
dev/sda2
に書き換えます。

再起動。うーん、これ、SSDから起動しているのか???
(追記:cmdline.txtを変更していない気がするので、今思えば動いてないと思います(^^;)。)

・・・よくわわからないので、こういう時はぶっつけ本番で(笑)。もともと作ってあった1GBのSDに交換して起動するかどうか試してみることにしました。

・・・起動しました。うむー・・・。起動しましたがこれでいいのか(笑)!

結局ここまでやったこと。
1.USB-SSDにJessieイメージを書き込み。
2.1GB SSDをFATでフォーマットしてUSB-SSDからbootパーティションのファイルをコピー。SDのボリューム名をbootに変更。
3.1GBのSSDのcmdline.txtを変更。
 root=/dev/mmcblk0p2
 ↓
 root=/dev/sda2
4.USB-SSDのetc/fstabを変更。
 /dev/mmcblk0p2
 ↓
 /dev/sda2
5.起動。
って感じです。

さて、これから細かい設定をやっていこう。

復旧3:無事USB-SSDに書き込み完了!

ということで、まずはRaspberry PiのOSをUSB-SSDに書き込んでみます。
RaspbianとNOOBSが選べますが、ここでは公式OSということでRaspbianを選択します。
さらにRaspbianはJessieとWheezyが選べます。まあKernel versionが新しいほうがいいだろう、ってことでJessieを選択しました。
さらにUSB-SSDにOSイメージを書き込むためにWin32 Disk Imagerをダウンロードします。

A tool for writing images to USB sticks or SD/CF cards
と書いてあるがUSB sticksってUSB SSDも書き込めるんだろうか・・・。

とりあえずUSB-SSDの先頭20GBをFAT32でフォーマットしました。
Win32 Disk Imagerを起動してみると、USB-SSDを指定できる事が確認できました。
どうやら書き込めそうな気がします。

さて書き込み。Writeボタンを押すと警告メッセージが出るけど無視します(笑)。

いったんUSB-SSDを抜いて挿し直すとこんな結果になりました。
先頭にboot領域、Windowsから見ているので不明なパーティションになっていますが、次にRaspberry PiのOS領域となっています。予想していた通りの結果になりました。

次はこのboot領域を1GBのminiSDにコピーして、起動ドライブに不明なパーティションとなっている領域を指定してあげればうまくいくはずです。

さて・・・。

2015年10月24日土曜日

復旧2:チラシの裏

ここはお前の日記じゃねぇんだ。
チラシの裏にでも書いてろ。な?

私はこの言葉が好きです。自分勝手というか、聞く耳を持たないというか、なんかそういう人に対するすべての思いがここには表現されている気がします(笑)。

さて、ここは私のチラシの裏なので覚書として書き溜めていこうと思ってたりします(^^;)。

前回まででようやく安定動作するようになった私のRaspberry Pi(以下RasPi)ですが、薄々予想していたんですが、SDカードで問題が起きました。薄々予想していたので当然バックアップなんかとってありません。これで4、5回は同じ目にあっているのですが(笑)、遅ればせながらようやく重い腰を上げようと決意しました。

とりあえず前回までで1GBのminiSDカードを用意したんですが、相棒となる40GBのUSB SATAケースに入れらたSSDのパーティションとフォーマットをどうするか悩んでいました。

NTFSなら何かあってもすぐにWindowsに刺して確認できるので便利かと思ったのですが、それでうまくいくかどうかの知識がなさすぎでモヤモヤするので、初心者は初心者らしく、40GBを半分に切って、前半をRasPi起動用にext4でフォーマットして、残りの20GBは今後のためにとっておくことにします。

ということでここまでの成果。

1GB miniSDカード:ブート、FAT
USB接続SSD:
 前半20GBパーティション:起動用、ext4
 後半20GBは未使用

を決定。

さて、次はどうやってbootを作って、どうやってUSB SSDにRasPiのOSを書き込むかだ!

復旧1:Raspberry PiをSSDで!(これらからやる予定(笑))

とは言っても、これからチャレンジするんで自分の腰を上げるために宣言してみました。

Raspberry Piの本体そのものは非常に安定していたんですが、ついにSDカードが飛びました。ちょうど2ヶ月ですね・・・。まあ、SDカードが飛んだのは1度や2度ではないので想定内ですが、バックアップはとってないので(^^;)、せっかくだからSDカードはブート用として、運用はSSDにしてみようと思ってます。

さて、どうなることやら・・・。

追記1:
まずはこの使い道のなくなった、1GBのminiSDカードと壊れたというか分解したminiを標準サイズに変換するアダプタを用意しました(^^;)。
この1GBのminiSDカードにブートを入れて、USB変換ケースに入れたSSDで起動させようという作戦です。

作業1.SD変換アダプタの内部のピンが曲がっていたので、分解してピンを元通りに直し、プラモデル用の接着剤で接着しました。

現在接着待ち中(笑)。

2015年10月4日日曜日

続^11・(経過報告)Raspberry Piがハングアップする原因と対策とは

うちのRaspberry Piはケースをしたまますこぶる安定しています。確かに気温も毎日30℃を超えていたことを考えると低くなってきましたが、それでもこの安定は対策の成果と言ってもいいでしょう。

・・・と偉そうなことを言っても結局ACアダプタのせいだったんですけどね(笑)。

さて、現在の状況です。
   
結論から言うとハングアップ知らずです。ちなみに前回のグラフは8月終わりからだったのですが、今回は途中から湿度も計測できるようにモジュールをBME280に変更したためにこうなっています。

やっぱり気圧、気温、湿度のグラフは面白いですね。この後年末にかけて20℃近く下がってくるはずです。

ちなみに今回のmuninはmultigraphというテクニックを使ってまして、これを導入するにあたってつまらないところでつまずいたので機会があればそのうちに書こうと思っています。
 

2015年9月6日日曜日

続^10・(完結編)Raspberry Piがハングアップする原因と対策とは

完結編と銘打っていますがまとめです。
結局、私のところのRaspberry Piが動かなかった原因は一般的に起こっている極普通の容量不足ということのようです。

ただし容量不足と言うのは言葉足らずで、特定の電圧時、ここでは5.0Vとしておきますが、つまり、

「5V時の電流容量が足りなかった」

ということになるかと思います。

何度も言いますが気をつけるポイントはACアダプタの容量だけではなくて、実際の5V時の電流ということになるでしょう。

結果的にうちのどうしようもなかったRaspberry Piは環境温度が30℃を超えているときに標準的なケースに入れていてもハングアップすることなく動いています。もちろん、ICにヒートシンク、3.3Vレギュレーターに追加の電解コンデンサーを付けてはいますが・・・。

さて、現在のコア温度グラフを最後に上げておきます。





簡単に解説しますと、

31日06時~31日12時の50℃は安定化電源5Vで上ケースなしでその後ハング。
31日15時~02日18時は安定化電源6Vで上ケース無し。
02日18時~03日21時は 安定化電源6V上ケースあり。
03日21時~05日06時は安定化電源5.5V上ケースあり。
05日06時~05日12時は安定化電源からACアダプタに変更のための停止が何度もあって、
05日12時~現在は改造5.5VACアダプタで上ケースあり。


です。こう見ると、最初の安定化電源5Vでハングというのが若干気になりますが、深くは追求しません(^^;)。うちのRaspberry Piはもしかしたら電圧に対する耐性が低いのかもしれません。

ということで、最終的にレゲーの部屋別館での対策としては、

ポリスイッチ削除、もしくはポリスイッチをショートカットする別の方法を実行。
3.3Vレギュレーターの入力側に電解コンデンサー。
実働時の電圧を5.0V以上確保。(おそらく殆どの場合が難しい気がしますが・・・。)
それでもハングするなら電圧を5.5V入れてみる。
ケースで覆うならICにヒートシンク等、それなりの冷却を考える。

ということにしておきたいと思います。

レゲーの部屋別館ではこの状態でロングランテストをしていきたいと思います。

2015年9月5日土曜日

続^9・Raspberry Piがハングアップする原因と対策とは

今回改造したACアダプタの電流対電圧のグラフをとってみました。





う~ん、微妙(笑)。今回私は500mA~1000mAでRaspberry Piを使うことを想定しているので、1Aで5Vを切っているのはいまいち気に入らないです。それにしても秋月のこのACアダプタは電圧変動が結構大きいですね。まあ直線的に変化しているので不自然ではないんですが・・・。

さて、どうしようか。1Aで4.9V。やっぱ、あと0.2、いや、0.3Vぐらい上げておこうかなあ・・・。

追記
ここへ来て驚愕の事実が!





今までELECOMの5V/2.6A品を使っていたので安心しきっていたんですが、なんと!、こいつは500mAで4.8Vしか出ていない!・・・止まる原因はやっぱりこれだったのか!

なんだかなぁ~・・・。ちなみに安定化電源5Vでも止まっていたことは確かなので、秋月のACアダプタはあとコンマ何Vか上げておこう。

ということで、教訓。Raspberry Piが止まる人は、動作している時に供給されている電圧を測ってみてください。もしかして驚愕の事実がわかるかもしれません(笑)。電圧は電解コンデンサー改造でよくやる3.3Vレギュレーターの入力側で測るのがいいかと思います。 そうすればミニUSBのコネクタとポリスイッチを通った後の電圧が測れますので。

追記2
最終的に2kΩ/1.5kΩで運用することにしました。以下がそのグラフです。






上が5.6Vを超えてしまっているので今までのグラフとは縮尺が違いますが、ご容赦ください。5V時に1500mA程度、おそらく常用される500mA時に5.5Vとなっています。まあ、こんなもんかな(^^)。

 

2015年9月4日金曜日

続^8・Raspberry Piがハングアップする原因と対策とは

で、サクッとACアダプタを秋月で買いました。6V/1.8Aのスイッチング電源です。調べてみると、電圧を改造している人は結構いる(^^;)。ってことで、一度も使わずにサクッと開けてみました(笑)。


どうやら一般的な構造らしく、調べると

=(1+C4/D4)*2.5

こんな式で電圧を変更できると書いてある。

でさらにサクッと計算してみました。



オリジナル品は2.0kΩと1.4kΩで6.07Vを作ってる。実際に測定してみると開放電圧で6.04Vでした。
ってことで、今回は5.5Vぐらいと決めてますからサクッと計算してみます。変更する抵抗はE-12までにしたい。計算してみると、2.0kオームを1.8kΩに変更すると、5.7Vになりそう。

う~ん、微妙(笑)。・・・で、今どうしようかサクッと考えているところです(笑)。

ちなみに家庭用の100Vは結構危険ですので、ACアダプタをいじるのはあまりおすすめしません。ここの方針は出し惜しみをしないのがモットーですので比較的詳しく記載していますが、くれぐれも自己責任でお願いしますm(_ _)m。

追記
片側の抵抗だけしか変えないつもりだったのを両方変えてしまうと、

ズバリがありますね。ってことでこれで行こう。

追記2
ってことで、変更しました。開放電圧5.43Vです。まあこんなもんかな。

2015年9月3日木曜日

続^7・Raspberry Piがハングアップする原因と対策とは

ほぼ目的は達成したと言っても良いんじゃないでしょうか!
この状態で、


これ、






です。

ひとまず、一晩は持ちました。カバーを付けることで約10度の温度上昇が見られます。WEB徘徊(^^;)による情報によると、

「Raspberry PiのBroadcom BCM2835のチップの最高動作温度は85度、イーサネットコントローラーUSBポートの最高温度は70度」

とのことなので、BCM2835はまだ余裕があります。イーサーネットコントローラーはわかりませんが、まあBCM2835が70度をこえなければOKとしておきましょう。

ってことで、こいつは今日一日このまま放置してどうなるかを見たいと思います。今日は晴れそうなので私の書斎(笑)は35℃ぐらいは行くかな?(^^;) 予想到達温度は67℃としておきます(^^)。

Raspberry Piの寿命はともかく、この状態で動いているならケースにファンを付ければ1年中常用できそうな気がします。ようやくスタートラインです!(笑)

3年越し!(笑)


追記:
さて、個人的には6Vで壊れても、どうせもともと使えない烙印を押したRaspberry Piなので問題ないんですが、人様に進めるには6Vという電圧は微妙なところ(^^;)。帰ったら安定化電源の電圧を5.5Vまで落として継続実験します。

問題は安定化電源をずっと使い続けるわけにもいかないので、代わりをどうするか。
もちろんACアダプタを調達しますが、5.5Vのやつって普通の5Vに比べて2倍ぐらいするんですよねえ。ひとまず6Vのやつを買ってショットキーを1段かましてごまかすことにしますか。

追記2:
現在こんな感じです。先ほど5.5Vに落としました。あぶなげなく動作中です!



2015年9月2日水曜日

続^6・Raspberry Piがハングアップする原因と対策とは

正直、なぜ動くのか?という考察はまだ進めていないのですが、今のところ順調に動作しています。


この個体は一番最初に買ったやつで、どうしようもなくて2台めを買ったんですよ。それがヒートシンク追加やポリスイッチ削除、 電解コンデンサー追加という改造はあるもののほぼ2日間動いているっていうのは画期的なんですよね。

確かに安定化電源の表示を4.0Vに一時的に下げても問題なく動作してるので、何かのタイミングで電圧が下がってハングしている感じはするのですが、もう一つ解せないところです。

動く動かないは、Raspberry Piの部品のばらつき+ACアダプタの性能(主に電圧?もちろん最低限の電流容量もですが)も関係している気がしてます。

ってことで、この後予定しているのは、

・ケースを被せて熱的に不利にしてみる。
・6.0VのACアダプタで実験してみる。

です。

自己責任とはなりますが、多くのサイトを訪れて、USBのスピード固定など含めて色々やってみた結果、放ったらかしになっているRaspberry Piがありましたら、試してみる価値がある対策となるかもしれません。

まだまだ実験を続けますので、お楽しみに(笑)。

2015年8月31日月曜日

続^5・Raspberry Piがハングアップする原因と対策とは

ってことでめげずに次の作戦です。


まずはミニUSB経由で電源を入れるのをあっさりやめてみます。
つまり3.3VレギュレーターICに外部安定化電源から直接5.0Vを入れてみようという作戦です。
少なくともそのへんのACアダプタよりも能力は上です。変動が原因なら何か動きがあるはず。

・・・あっさりハングアップ。だめでした。

つぎは気になっていた電圧を変えてみます。





電圧を6.0Vまで上げてみます。つまり、通常はUSB経由で電源を供給するため5.0Vとなるわけですが、あえて6.0Vを入れてみようという作戦です。

で、今のところの結果がこれ。




正確にはどこの温度がわかりませんが、Internal TempということなのでCPUの温度?かな?
まあ、 今のところ4度ぐらい耐性がアップしているように見えます。

なんかいとぐちが見えてきたかも?!
このまましばらく動かしてみます。

続^4・Raspberry Piがハングアップする原因と対策とは

やっぱり暑いといろいろやる気が起きなくなりますよねぇ~・・・。

ってことでようやく涼しくなってきたので少しやる気が出てきたところで更新です。
本日のお題は、
「続^4・Raspberry Piがハングアップする原因と対策とは」
と題して、Raspberry Piのハングアップの続きです。

紆余曲折の上、結局Raspberry Piを2台持ちにしたものの、どうしても安定しないとのことで放ったらかしになってた2台の我が愛機(笑)。もっとも安定しないと言っても、起動すらまともにしなかったことを考えるとずいぶんマシになりましたが、それでも外付けファンが必要だったのです。

しかしネットを彷徨っていると、コンデンサを追加するという書き込みを見たのが・・・、もういつだか忘れましたが(^^;)、とにかくまれにフリーズする現象が改善されるとのこと。

これは家でも試してみなければと思って、今は2015年の8月最後の日です(笑)。


買った当初はダメダメだった初代Raspberry Piです。
ポリスイッチ削除、ヒートシンク取り付けと、ショッカーと戦うために改造手術を受けてきましたが(笑)、加えて330uFの電解コンデンサーをレギュレーターICの入出力ともにつけてみました。
(あ、もう一つ思い出した。 Raspberry Piで余計な熱をなるべく発生させないようにするため、電源外付けのUSBハブを経由してキーボードとかマウスとかをつなげてます。)

実際に電解コンデンサーをつけていらっしゃる方は入力側に220uF程度が多いみたいですが、どうせ付けるならと出力側にもつけてます。

ひとまずこれでまたRaspberry Piとの格闘を始めようと心に誓ったnonnonでした。

でも、ファンがなくても動いているっていうのは画期的!
いや、これが本当は普通なんだけど・・・。

追記:
結果として玉砕。やはり電源ラインの安定性よりも熱の影響で ハングアップしている。世の中には安定動作しているRaspberry PiとそうでないPiがいるようだが、本当に熱の要因だろうか・・・。経験上、半導体はそんなにばらつく感じがしないことを考えると、安定動作している個体も不安定とは紙一重な気がする。改めて思うがひどい環境でも走り続けるPCは偉大だ!

・・・さて、どうしたものか・・・。