ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示

2018年9月17日月曜日

おそらくほとんどの人は持っていないと思われる・・・

FLIR。だって高いから(笑)。
しかもProを買っちゃいました。今のAmazon価格で約5万円ですよ! 買った後もその値段を聞くと手が震えます(笑)。

さて、で、何をするかというとたいした事はしません。だってレゲーの部屋だもん。でも赤外線カメラって憧れますよね。なんかインターネットを見てると面白そうですよ! 森の中撮影して肉眼では見えない動物がいる! みたいなね? 家の中を写して雨漏りが!なんてね?

で、撮ってみました。

ラズベリーパイのヒートシンクのチェック(笑)。5万もするのに用途がせこい! でも他に使い道ないし・・・。

で、ヒートシンクの温度を見ると周辺が約60℃もあるのにヒートシンクの温度が約40℃しかないんですよ。どう考えてもヒートシンクの仕事をしてないでしょ? ちなみにこのヒートシンクをヒートシンク用の両面テープを使って貼り付けても剥がれてくるんですよね。原因は基板を立てかけているから。ファン無しで運用するなら、風の通りがいいように縦方向に溝があったほうがいいかと思いまして・・・。

で、立てかけると剥がれてくるわけです。仕方がないのでヒートシンク用のボンドでくっつけることにしました。
まあ、ボンドだけあって剥がれることはなくなりましたが、このヒートシンク用のボンドって性能的にはどうなんだろう?と思うわけです。

で、最初に戻ります。FLIRを使って見てみると、なんとなく仕事をしていないように見える。もしかしてボンドの性能が悪いのでは?となったわけです。

でもとっかえひっかえしてテストするのは面倒です。何かいい方法はないものかと思って調べたのがこちら。

TOSHIBAのPCでゲームを走らせるとこんなになるんで、そこにヒートシンクを置いてみました。こりゃヒートシンクの性能かなあ・・・。

しかし、少し割り切れない自分もいたりします。想像では上から下まで同じ温度になっているはずだったんですよね。ファンを付けて冷やしていないから・・・。でも実際には側面と底面はそれなりの温度になっているけど、上から見るとそうでもない。熱がうまくつたわっていないのかなあ? でも金属なのにそんなことあるかなあ? 実際には効率悪いけど仕事をしているのかなあ?

結果として謎が増えただけでした・・・。

でもいいですよね、FLIR PRO。PROのいいところはいくつかありますが、
1.解像度が2倍。
2.測定ポイントがたくさん。
3.測定温度範囲が400℃いく。
です。せめてこれが1万円ならもっと気楽に買えるのに・・・。でも、私はもう買っちゃったけど・・・。


2018年4月29日日曜日

続、ラズパイ外付けUSB-SSDから起動(おさらい)

やったことを念の為におさらいします。
今回はWindowsマシンではなく、Linuxマシンを使ってみました。

1.USB-SSD(以下SSD)にイメージを焼く。
私のSSDはLinuxマシンにsdbとして認識されているので、イメージファイルがあるフォルダで以下のコマンドを実行します。イメージはお好みのもの。
# unzip -p 2018-04-18-raspbian-stretch.zip | sudo dd of=/dev/sdb bs=4M status=progress conv=fsync

2.bootパーティションの内容を後でuSDカード(以下uSD)にコピーするために適当なフォルダに保存しておきます。もちろん、uSDを同時にLinuxマシンに認識させておけばそのままコピーするのもありです。

3.SSDの/etc/fstabを
PARTUUID=9cba179a-01  /boot           vfat    defaults          0       2
から、
/dev/mmcblk0p1  /           vfat    defaults          0       2
に変更します。etcフォルダから実行するなら
$ gksudo leafpad fstab

4.勝手にディスクがリサイズされないように以下を変更します。以下に記載するコマンドはSSDのルートフォルダから実行することを想定しています。
$ sudo mv etc/init.d/resize2fs_once etc/init.d/resize2fs_once.bak
$ sudo mv etc/rc3.d/S01resize2fs_once etc/rc3.d/S01resize2fs_once.bak

ここまででSSDの変更は終了です。
次にブート用のuSDを作ります。

5.uSDの名前をbootにしてFATでフォーマットします。

6.uSDのルートフォルダに先ほど保存していたbootパーティションの内容をコピーします。

7.cmdline.txtをバックアップします。
$ sudo cp cmdline.txt cmdline.txt.bak

8.勝手にリサイズされないようにcmdline.txtを編集して
quiet init=/usr/lib/raspi-config/init_resize.sh
を削除します。quietはお好みで。

以上で終了です。

2018年4月22日日曜日

続、ラズパイ外付けUSB-SSDから起動

すでにずいぶん前から外付けUSB-SSDで起動させていますが、改めて見直すとおかしなところがいっぱいあったので最新の環境で再度構築しました。自分の覚書として書いておきます。

そもそも、今更なんでそんなことをやっているかというと新しいおもちゃを買ったからです。もう少し言うと安いSSDをAliexpress経由で買ってみたのがキッカケです。

加えて起動ディスクとして使うSDカードも合わせて購入しています。Raspberry Piの起動用SDカードは容量が小さくても問題ないので、安いものはないかと探し回った挙げ句、Aliexpressで買ってみました。しかしAliexpressで買った1GBは不具合があり全滅、で、Amazonならいいかと思って買ってみたら同じ不具合があり全滅でした。どちらも最初の10%がぐらいが使える領域になっています。したがってちょっと書き込みテストをしただけでは問題が発覚しないようになっており非常にいやらしい構造です。Amazonで買ったものも安いやつは同じだったので、安いやつを買った人は一度、全領域に書き込みテストをしてみることをおすすめします。

で、一方のAliexpressで買った外付けSATA SSDはそれなりに使えています。ラズベリーパイで使うなら容量は16GBもあれば十分なので、16GBと32GBをいくつか買ってみました。

価格は16GBが送料込み1250円(笑)、32GBが送料込み1713円でした。送料込みでこの値段なので表示よりも容量が少ないとか最初からエラーありまくりとかじゃなければ、筐体がプラでできているなどの外側から見た品質は全く気になりません。といっても、中国直輸入は最初に話したSDカードみたいなことが当たり前にあるのでリスクは高いです。

そのままではRaspberry Piで使えないので、USBケースも購入します。もちろんAliexpressです。USB2.0のアルミエンクロージャタイプで送料込み350円。これで通販の信頼性があれば完璧なんですが世の中そうはうまくいきません。ただし、私の場合にはこれまで品物が送られてこなかったことはありませんでした。もっとも到着までに1か月上等!です。

で、試した結果がこちら!
(あとでスピードテスト結果を貼る予定(笑)

このスピード結果は最初からわかっていたことで、容量が少ないと遅いようです。私が買ったショップでは容量別のスピードが記載されており良心的です。でもSDカードに比べれば早いし、ラズパイで使用するので気にしていません。

さて、与太話も済んだことなので本題に入りましょう。

1.まず、最新のLinuxイメージを本家サイトから落とします。
2018-04-18-raspbian-stretch.zip
今回はこれを使いました。
RASPBIAN STRETCH WITH DESKTOP
Image with desktop based on Debian Stretch
Version:April 2018
Release date:2018-04-18
Kernel version:4.14
まあ特別な思いがあるわけではありません。

で、このイメージをEtcherをつかってSSDに書き込もうとしたんですが 撃沈。理由は面倒なので調査せず。サクッと今まで使っていた
win32diskimager-1.0.0-install.exe
をインストールして使うことにします。

2.Win32DiskImagerを使ってUSB-SSDにイメージを書き込みます。
パーティションが2つできていたので、ブートパーティションの内容をオールコピーしてSDカードに書き込みます。おっと、

3.後ろのほうが使えないSDカードをフォーマットして、USB-SSDのブートパーティションの内容をSDカードのにオールコピーします。また、ボリューム名をBOOTに変更します。今回はRaspberry Piの起動ディスクとして使用するため、ブート部分の総ファイルサイズが非常に少ないので、結果として壊れた領域は使わないことになり後ろの領域が壊れていても事実上問題ありません。また、USB-SSDにイメージを書き込んでそれをSDカードにコピーしているのでSDカードのcmdline.txtは変更せずにすみました・・・、と行きたかったんですが、後半部分があると動かないので潔く削除しました(笑)。暇があるときにその意味を考えます。
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=9cba179a-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
※実際にはroot=/dev/sda2の部分も変更しています。おそらく変更しなくても動くと思っているのですが面倒なので試していません(^^;)。

4.最後にUSB-SSDの/etc/fstabを変更します。
前回はSDメモリにインストールしたものを使ったのですが、今回はUSB-SSDに直接イメージを書き込んでいますのでboot側を修正します。
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
ひとまずこんなところでしょうか。

ということで覚書終了です。

これで家にある3台のRaspberry PiがすべてUSB-SSD起動となったわけです。1台目は相変わらず気温、湿度、気圧を測定し続けています。3代目はMP3サーバーとして使ってます。で、今回の2代目は・・・さて何に使おうか・・・(^^;)。

追記1
cmdline.txtはこれで動きました。

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

rootの変更とinit=/usr/lib/raspi-config/init_resize.sh削除で動き出します。

追記2
まだ半信半疑なんだけど、
/dev/mmcblk0p1  /boot           vfat    defaults          0       2

/dev/mmcblk0p1  /           vfat    defaults          0       2
に変えました。こうしないとうまく動きません。理論的には正しいんだけど・・・。昔は上の指定で動いていた気がするんだけど・・・。

それから、勝手にリサイズするのも止めました。
起動中に勝手にリサイズするのを防ぐには、
pi@raspberrypi:~ $ sudo mv /mnt/etc/init.d/resize2fs_once /mnt/etc/init.d/resize2fs_once.bak
pi@raspberrypi:~ $ sudo mv /mnt/etc/rc3.d/S01resize2fs_once /mnt/etc/rc3.d/S01resize2fs_once.bak
詳細はググると出てくると思います。

2016年5月2日月曜日

その後のRaspberry Pi

私のどうしようもならなかった初号機ですが、あれから問題なく動き続けています。現在までのハングアップの結論としては何度も言っていますが電源電圧ですね。

で、現在こんな感じ(笑)
ですが無事動作しています。簡単に説明しますと、
  • ケースに入れられて、
  • USBハードディスクケースのSSDと輪ゴムでくくられ、
  • 不織布にくるまれて
放置されています。で、この状態でのCPU温度が
こんな感じ。さらに自宅の気圧、温度、湿度が
こんな感じです。よく見ると、真ん中の気温のグラフの2月に不自然に飛び出ている部分がありますが、これが例の異常に暑かった日で26℃を超えてます。

さあ、この夏はこれで乗り切ることができるだろうか。

ちなみに、
こんなんを新たに買っちゃいました。Raspberry Pi3です。懲りない私(^^;)。結局うちにはPi1が2台、Pi3が1台となりました。

電源はかなり痛い目にあったので(^^;)、このコネクタ込みで確認済みです。マルツのLINKMAN STD-05026U2を使ってますがいい感じです。


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は偉大だ!

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