Tiny RTC DS1307 I2C

前からRTC っていうのを触ってみたかったので、モジュールをゲットしてみました。電池付きで140円くらいでゲット。

WIKI

http://www.elecrow.com/wiki/index.php?title=Tiny_RTC

TinyRTC_DS1307

TinyRTC_DS1307b

ちょっと、半田付けして配線する気力がわいてこないので、とりあえずチュートリアルなBLOGを調査。以下がわかりやすそう。

Time and calendar functions with a real time clock module based on the DS1307 and an Arduino

下の画像のトランジスタのシルク印刷の3穴には、DS18B20の温度センサーをつけて温度も取れるようですね。

Tiny RTC DS1307 Real-Time-Clock with an additional temperature sensor DS18B20

こうなると、ちっさなディスプレイに日にちと温度なんか出して遊びたいですね。そうそう、水晶のクロックって日本発なんですってね。古賀カットという、水晶の切り出しによって温度変動が少ない水晶発信子を作った偉人です。

 

この水晶発信子はどこのかはわかりませんが、時を刻んでくれるのでしょうか。楽しみです。

NFS Boot でタイムマシーンから復元

osx 上の nfs で RasPi をブートしているので、タイムマシンからインストール直後に復元できるかやってみました。

 

まず、インストール直後、pi の電源を落とした状態で、タイムマシーンでバックアップを取得。対象は、nfs 直下のところだけにしています。

Time_Machine

現在の、パッケージ数の状態

[root@pi modules 07/26 06:19:54]# dpkg -l | wc -l
875
[root@pi modules 07/26 06:19:57]# 

nginx でも入れてみます。

[root@pi ~ 07/26 07:33:55]# dpkg -l | wc -l
878
[root@pi ~ 07/26 07:33:56]# 

パッケージ数が増えました。

で、設定やら、バージョンやらつついた後に、やっぱりやーめた(よくある事)、ということで初期状態に戻します。

 

pi はあらかじめ、シャットダウンしておきます。

タイムマシーンに入ります。

1

dev を除外して、すべて選択。

2

で、ブート。

[root@pi / 07/26 08:21:25]# dpkg -l | wc -l
875
[root@pi / 07/26 08:21:29]# 

便利ー!

FreeNAS + iSCSIやNFS 環境 でもスナップショットを使えばできるとは思いますが、この手軽さにはかないません。

オンラインバックアップが正常に動作するかは、sync している状態次第だと思うので、どうなるかわかりませんが。nfs のオプションにsync つけておけばいいのかしらね。

 

とりあえず、部屋が暑くてもうPCからは離脱。満喫か、温泉でも行ってきますかねー。空が夏!

PS1 のフォーマット

ターミナルの書式を設定しようとするとき、毎回忘れてググるのでメモしておこう。

PS1="[\u@\h \W \D{%m/%d} \t]\\$ "

これで、ターミナルは、

[root@pi ~ 07/25 11:32:53]#

となる。日付と時分秒を出してるだけなんですが、何かと実行終了の日時が出るので便利。

NFS Boot に成功した

とりあえず、NFS Boot は本当にできるのか試してみました。結果、できました。
実際やってみると、いろいろとはまるところがありましたが、おおむね以下の手順。忘れないうちにメモしておきます。

▼環境

NFS Server・・・・osx 10.9.5

Boot OS・・・・・ 2015-05-05-raspbian-wheezy

 

▼操作の流れ

・NFS サーバでシェアする用意

・arm 用の img のルートファイルシステムを NFS へコピー(大体は第2パーティションにあり。Fedora とは3番目)

・SDCard の FATフォーマットの boot の cmdline.txt へ nfs boot する設定と、IP の設定

 

▼osx の NFS Server 側

NFSの設定を入れて、nfsd を再起動。操作はroot でやっています。オンラインマニュアルはここ。

—- /etc/exports
/nfs/fedora22 -rw -mapall=root:wheel -network 192.168.1.0 -mask 255.255.255.0

exports ファイルがあればnfsd が起動しますが、手動で操作したい場合は

# nfsd start | stop

NFS で提供しているパスの確認。

# showmount -e localhost
Exports list on localhost:
/nfs/fedora22                       192.168.1.0
::

最初fedora22 入れようとして、失敗して、RASPIAN 入れたので名前があれですが。

それで、boot したい img をコピー。以下は、centos6.x で、osx の NFS をマウントして、rsync しています。centos6はバーチャルボックスでosx を同じネットワークセグメントにいます。

[root@cent66 etc]# df -hT
Filesystem                   Type     Size  Used Avail Use% Mounted on
::
hope.junkhack:/exports       nfs      466G  390G   76G  84% /nfs
hope.junkhack:/nfs/fedora22  nfs      466G  390G   76G  84% /mnt/fedora22

hope.junkhack は名前解決できるようにしてあります。ちなみに、fstab はこんな感じのデフォルト。

—- /etc/fstab
::
hope.junkhack:/exports    /nfs        nfs        defaults    0 0
hope.junkhack:/nfs/fedora22    /mnt/fedora22    nfs        defaults    0 0

で、RASPIAN のイメージをマウント。

[root@cent66 RASPBIAN]# kpartx -av 2015-05-05-raspbian-wheezy.img
add map loop0p1 (253:2): 0 114688 linear /dev/loop0 8192
add map loop0p2 (253:3): 0 6277120 linear /dev/loop0 122880

[root@cent66 RASPBIAN]# mount /dev/mapper/loop0p2 /mnt/raspi/

[root@cent66 RASPBIAN]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
::
hope.junkhack:/exports        466G  388G   78G  84% /nfs
hope.junkhack:/nfs/fedora22   466G  388G   78G  84% /mnt/fedora22
/dev/mapper/loop0p2           3.0G  2.4G  451M  85% /mnt/raspi
[root@cent66 RASPBIAN]#

で、コピー。

[root@cent66 RASPBIAN]# rsync -av /mnt/raspi/ /mnt/fedora22/
sending incremental file list
./
bin/
bin/bash
bin/bunzip2

::

var/spool/cron/crontabs/
var/spool/rsyslog/
var/tmp/

sent 2304687346 bytes  received 1293752 bytes  4274293.05 bytes/sec
total size is 2299569061  speedup is 1.00
[root@cent66 RASPBIAN]#

 

で、NFS でブートするときに fstab の中がそのままだと、SD カードのパーティションをchroot してしまうのでコメントアウト。

[root@cent66 etc]# vim fstab

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
#/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

NFS側のイメージ展開は以上で終わり。

 

▼Boot するcmdline.txt の中に以下を追加

root=/dev/nfs rootfstype=nfs nfsroot=192.168.1.17:/nfs/fedora22,udp,vers=3,nolock ip=192.168.1.24:192.168.1.17:192.168.1.1:255.255.255.0:rpi:eth0:off

nolock のオプションは必要ないかもしれません。とりあえず、これで動いてはいます。IPのところは以下の書式。

ip=<raspberrypi_ip>:<nfs_server_ip>:<default_gateway>:<mask>:rpi:eth0:off

シリアルコンソールのブートログは、

[    4.638898] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1

[ 4.674857] IP-Config: Complete:

[ 4.680180] device=eth0, hwaddr=b8:27:eb:97:45:fb, ipaddr=192.168.1.24, mask=255.255.255.0, gw=192.168.1.1

[ 4.694694] host=rpi, domain=, nis-domain=(none)

[ 4.701878] bootserver=192.168.1.17, rootserver=192.168.1.17, rootpath=

[ 4.719859] VFS: Mounted root (nfs filesystem) readonly on device 0:14.

[ 4.729328] devtmpfs: mounted

[ 4.735147] Freeing unused kernel memory: 400K (80786000 - 807ea000)

[ 5.132474] random: nonblocking pool is initialized

[ 6.228285] udevd[177]: starting version 175

Raspbian GNU/Linux 7 pi ttyAMA0

pi login:

となっています。

NFS Boot させたあと、uname したら、