2020/05/31

raspberry piのrootディレクトリをNFSサーバに移動する。

手元のRaspberry Pi 2 Model BにさしてあるSDカードの容量が不足気味なので、SDカードのext4パーティションをNAS(NFSサーバ)に移動することで、空き容量を広げてみた。もう一度やりたいときに作り方を忘れていそうなので、ここにメモ。

  1.  NASにNFSサーバの設定をする。
  2. ポイントはrootがrw(読み書き)可能な権限でマウントができるようにすること。

  3. NFSサーバに、SDカードのext4パーティションをそのままきれいにコピーする。
  4. NASがlinux系のOSで動いておりUSBの口があるなら、そこに直接接続してコピーするのが一番簡単。Windowsでうまくコピーできる方法があると便利なんだけど。

  5. SDカードのFATパーティションにある、cmdline.txtを、以下の要領で書き換える。
  6. なお、raspberry pi本体からは、/boot/cmdline.txtとして見える。手元のシリアルコンソールなraspberry piの場合には以下の通り。
    console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=/volume1/rpiroot rw ip=192.168.1.200:192.168.1.2:192.168.1.1:255.255.255.0:rpi:eth0:off elevator=deadline fsck.repair=yes rootwait
    まず、元のファイルのrootを/dev/nfsに変更する。次に、rootfstype=ext4を削除する。そのうえで、追加項目として、nfsrootとしてnfsサーバのマウントポイントを記載。ipに自身のIPアドレス・デフォルトゲートウェイ・サブネットマスクを記載する。なお、ip=dhcpと書くこともできるが、DHCPサーバによってはIPアドレスがころころ変わるので使いにくいかも。
    参考文献: Mounting the root filesystem via NFS (nfsroot)

  7. OSのIPアドレスを固定する
  8. /etc/dhcpcd.confを書き換えて、OSのIPアドレスの設定を、cmdline.txtに合わせて固定する。
    interface eth0
    static ip_address=192.168.1.200/24
    static routers=192.168.1.1
    static domain_name_servers=192.168.1.1

  9. (おまけ)SDカードのFATパーティションに、ssh.txtを置いておく。
  10. もしheadlessで動かしたいなら、ssh.txtを置いておくと、sshdが起動してくるのでお勧め。

  11. 起動してみる。
  12. とりあえず動くので問題を感じないけど、気持ち悪ければ、起動後ま/etc/fstabにあるrootのマウント設定を消してもいいかも。
DHCPサーバとしてNTT東西のHGW(PR-400KI)を使っているので、pxeの設定はできず残念。将来環境が整ったらやってみたい。

2017/02/19

秋月のみちびき対応GPS受信機でNTPサーバ

先日秋月で衝動買いしたGPS受信機キットとraspberry pi(jessie)で、PPS信号同期のNTPサーバを作ってみた。特にPPS関連ではまったので、将来の自分が同じところでつまずかないようにポイントをメモ。

(1)標準カーネルはPPSに対応しているが、設定が必要

まずは、/boot/config.txtに、以下を追記。
dtoverlay=pps-gpio,gpiopin=18,assert_falling_edge=true

念のため、メモしておくと、PPS信号を受け取るのに使うGPIOは、ここでは18番。PPSにGPIO18番を使うと、GPSとraspberry piのピン配置が同一になるので、接続が混乱なくできる。お勧め。
また、ググって出てくる他のGPSと違って、秋月のこのGPSはPPS信号が立下りなので、assert_falling_edgeを追記しないと、100ms後の立下りをつかんでしまい、それがそのまま誤差になって出てくるので注意。100msもずれるなら、PPS信号を使う価値なし。

次に、動作確認のために、ユーザランドのソフトのインストール。
% sudo apt-get install pps-tools

これで、適切に設定ができていれば、
% sudo ppstest /dev/pps0
とすると、一秒に一行ずつ表示されるはず。

(2)インストール済みのgpsdとntpdは、PPS信号に対応していない

いずれも、リコンパイルが必要です。
もう少しいうと、ntpdの127.127.22.0ドライバを使えるようにするには、ntpdのコンパイルが必要でした。これ必須。

また、gpsdのgpsmonでPPSを見られるようにするには、gpsdのコンパイルが必要でした。ただし、gpsdからntpへPPSを渡すことはできないよう(ntpdの127.127.46.0で、mode 1にすると、連携できなくなる)なので、必ずしも必須ではありません。
なお、gpsdでPPSを使うには、/etc/default/gpsdに、
DEVICES="/dev/gps0 /dev/pps0"
と、GPSシリアルデバイスと、PPSデバイスを指定してやる必要があります。

(3)GPSからシリアル経由でデータ取得するために、シリアルのgettyを止める必要あり。

systemdとやらのおかげで、/etc/inittabがなくなってて、さあ大変。

シリアルが、ttyAMA0の場合には、
$ sudo systemctl stop serial-getty@ttyAMA0.service
$ sudo systemctl disable serial-getty@ttyAMA0.service
とすると、止まるらしい。

また、/boot/cmdline.txtから、
console=ttyAMA0,115200
を消す必要あり。これを消さないと、起動のたびに115200bpsに設定変更されるみたい。これが原因で、GPSと通信できなくなることがある。


以上の設定で、数十μsオーダで同期しているみたい。

参考に、今のntpd.confをつけておく。
server 127.127.22.0 minpoll 4 maxpoll 4
fudge 127.127.22.0 refid PPS
server 127.127.46.0 minpoll 4 maxpoll 4 prefer
fudge 127.127.46.0 time2 0.438
GPS側にpreferをつけないと、なぜかPPS同期してくれない点に注意。

2015/12/06

コレでいいの(8x8/1588) [K-KOREDE8X8] のピン配置

aitendoで、"コレでいいの(8x8/1588) [K-KOREDE8X8]"を買ってきた。
現時点で、仕様書もサンプルスケッチも何もないので、使うためにはまずパターンを追ってピン配置を調べる必要あり。
何人もの人がそんなつまらないことをする必要はないので、以下にピン配置をプログラム言語で示す。

まず、RpinとCpinの配置。14が足されているものはアナログピン。
Rpin側に抵抗が入っているので、Cpinを一本active(BタイプのLEDならLOW)にしたうえでRpinを必要な本数だけactive(BタイプのLEDならHIGH)にする必要あり。念のため。

const static byte Rpin[8]={10, 12, 6, 11, 2, 5, 3, 4};
const static byte Cpin[8]={14+1, 9, 8, 13, 7, 14+0, 14+2, 14+3};

なお、パターンは出ていないが、A4とA5が未使用。I2Cで外と通信しなさいというお告げなんだと理解した。


違う見方として、LEDのピン順に記述すると以下の通りとなる。
Arduinoを使って8X8マトリクスLEDに日本語テキスト文字を表示するのページにある表記に合わせてみた。

const static byte pins[17]= {-1, 2, 3, 9, 8, 4, 7, 5, 6, 10, 13, 14+0, 11, 14+1, 12, 14+2, 14+3};

漢字を表示させようにも、atmega328のROM 32kBでは、8x8の日本語(JIS1/JIS2)フォントをフル実装できないのがつらい。どういう使い方をしようか。。

2014/10/04

噴火時に御岳にいた知人の話を聞いて思うこと

小学校の運動会を観戦していた一週間前の土曜日11時過ぎ、木曽御岳頂上に着いたよと、スマホで写真を送ってくれた友人と木曜日に会った。

何が起きたのか、そして、同じことが起きたら何が出来るのかを知りたくて。

どうやら、山頂付近に神社があり、火気厳禁だったのが彼の命を救ったようだ。

山へ行く人の多くはそうだと思うけど、山頂で昼飯を食べようとしていたそうだ。着いてみたところ前述の通り火気厳禁だった。暖かいものが食べたくてガスバーナを持っていった彼らは、昼飯を食べるところを探すため、予定になかったお鉢巡りをはじめた。結果、噴火時には噴火口の反対側に居り、また隠れるところがあったため助かった。山頂が火気厳禁でなかったら、話を聞くことは難しかったかもしれない。

もう一つ付け加えるとすると、山頂で火を使う予定だったので、通常に比べて多めに水を持っており、いざというときの選択肢が広がっていたことも、精神的に安定感をもたらしていたように思う。

現場はまるで戦場のようだったそうだ。うぃんうぃん音を立てながら、岩が頭の上を飛んでいく、灰が降ってくる、何分かおきに小康状態になったのを機に、より安全なところに移動する。カメラバッグに入れていたにもかかわらず、メーカに持って行かざるをえないほど一眼レフが真っ白になる火山灰の量。

一度目の噴火よりも、二度目の噴火の方が大規模だったので、移動したことは正解だったと言っていた。じゃあ判断が正しかったかと問うと、実質的に他の選択肢は無く、唯一無二だったから正しいも正しくないも無いと言っていた。そりゃそうかもしれない。

今後同じことが起きたときのために何か準備が出来るかと言えば、無さそうだった。御岳山頂の神社にお参りしていたのが良かったのかもと言っていた。それくらい、準備ではどうにもならない災害。

最後に、止まってしまったロープウェイの代わりにバスを用意してくれたり、車を洗車出来るようにしてくれたりした木曽町の対応は大変良かったと言っていたことを記したい。そして今回、不幸にも死傷された方々がいたことも、忘れないでいたい。

2014/01/12

ラジコンヘリコプター

正月に帰省したとき、イオンのおもちゃ売り場でラジコンヘリコプターを買ってきた。
下調べもせず、「屋外で飛ばせる奴」を探したところ、一機種しかなかったので、それを購入。JOZENのSkyWolf4というもの。買ってから調べてみたところ、同軸反転式の4chラジコンヘリと言うらしい。
おもちゃのラジコンヘリはエンジンを積んだラジコンヘリとは違い、本体にリチウムイオン電池が内蔵されており、飛ばす前に必要な電気を充電しておく必要がある。連続飛行時間4分、充電時間45分(USBから充電の時)なので、少し遊ぶと電池切れになり充電が必要になる。そのため、家から遠くまで持っていく気になれない。
そこで、まず自宅の庭で飛ばしてみた。無事離陸。でも、芝生だと離陸時に気流が乱れて不安定になるのと、少しでも風が吹くと流されて家や車に激突しそうでとても怖かった。そのため、1分であきらめた。
次に、自宅そばの公園で飛ばしてみた。まわりにものがないので、なかなか良い感じに飛んでくれる。で、確かに飛ぶのだが、着陸が難しい。というか、墜落しまくり。もっともっと練習が必要だなぁと実感。

そんな調子なので、買ったときに標準でついてきた予備のメインプロペラ2枚は、すでに使ってしまった。電源スイッチも何かの衝撃で引っ込んでしまったので、爪楊枝がないとオンオフできなくなってしまった。すぐに壊れてしまいそうな予感がする。

とはいえ、自分の操縦するものが空を飛ぶというのはとても楽しい。しばらく練習に勤しもうと思う。

2013/12/23

クロネコメンバーズ電子マネーカード

さっき宅配で発送する荷物をクロネコに持っていった。

宛名を書く手間を省くため、ヤマト運輸の営業店に行き、クロネコメンバーズカードを使って、送り状をプリントアウトしている。今回プリントアウトする直前に、運賃値引きに使えるポイントが貯まっていることを思い出した(いつも忘れて期限切れになっている)ので、お店のお兄さんにその使い方を教えてもらって、無事に送り状作成が完了した。

送り状印刷端末にログインするためには、クロネコメンバーズカードのQRコードをかざす必要があるのだが、そのQRコードがすり切れているため、カードをかざしてもログインできない。そのため、いつもタッチパネルでIDとパスワードを投入する。
面倒だなぁと思っていたところ、お兄さんから、「来年の3月で紙カードが廃止になる(たぶんQRコードの読み取り機能がなくなるという意味だと思う)ので、無料で発行できるクロネコメンバーズ電子マネーカードに切り替えませんか」とのお話を頂いた。

電子マネーとして、nanaco/WAON/Edyから選べるとのことだ。とっさに言われてもよく分からないので、家でどれにすべきかきちんと考えるべく、いったん営業店をあとにした。
家に帰って、WAONとEdyは航空会社のマイレージカードにおまけでついているので、nanacoにしようと言うことで、Webから家内と二人分申し込んで完了した。
3週間とのことなので、年明けにはくるかな。


2012/07/16

太陽光発電の見積もりを取ってみた

今月初めごろから、自宅に設置するための太陽光発電の見積もりをとり始めた。
インターネットで何社かと、新聞広告で見かけた市内の業者一社。
市内の業者は市内で一番大きな都市ガス業者。でも、自宅は他社の都市ガス供給地域なので、あんまり関係ない。本当は燃料電池も気になってたんだけど、ガス会社の連携でなんだかめんどくさい話になりそうだったので、今回は対象外。

どこの業者も、価格を発電できる電力(の量)で割ると、大きな差がない価格が出てきた。
55万円/kW以下でないと補助金が出ないので、それを意識して価格提示している感じだ。
一方で、業者により得意とするメーカが異なり、選定したメーカによりパネルサイズが違うため、パネルの配置が様々となり、結果、発電量が様々になったことにより、それぞれ総額がさまざまになった。

インターネットの業者には、パネルの配置をきちんと教えてくれる業者から、なんだか分からないけど枚数だけ出てきて積算している業者まで様々あった。
前述の通り、価格的にはどの業者も大して変わらないので、何社も見積もりを取る意味はあまりないかもしれない。

一方で、市内の業者一社はインターネットの業者にはない提案を出してきた。
なんでも、我が家の西側にあるマンションが夕方影を作るそうで、その影の場所を考慮したパネル配置を提案してきたのだ。
どうやらその業者は、夕方我が家を下見に来て確認したらしい。
さっき外に出て確認したら、確かにご指摘の通り。
確かにインターネットの業者は図面だけをもとに見積もりをしているので、そこまではわからない。
今後の保守等を考えると、近くのこの業者にお願いするのがいいかもしれないと思っている。
メーカ間でパネルサイズが統一されていないので、この配置情報をもとに他メーカとの相見積もりを取ることもできないのが不便だなぁ(ぶつぶつ)。

同じ情報をもとにしても、いろいろな提案が出てくる太陽光発電。設計がポイントだなと感じた。
インターネットでの販売が始まりつつあるが、BtoB商材並みに設計が肝になる商材、本当にきちんとトラブルなくBtoC販売できるのだろうか。