2018年1月15日月曜日

2017年を振り返って

もう2018年になって何日も経つけど・・・。

2017年を振り返り、いろいろな事があった。

まずは「Victrola4ZM!」
NanoPI NEOにZoneMinderと焦電センサーを導入して
動体検出時にSlackに投稿するというもの。
・ZoneMinder
・焦電センサー
・Slack

次に「3Dプリンタ」
 ようやくという気もするけど
 ちょっとしたパーツを作るに重宝している
最近使ってないけど(汗

そしてなんと言っても「FON2405EのLEDE/Openwrtの導入」
・フラッシュメモリ交換してのLEDEインストール
・関連してラズベリーパイ+Node.jsでSPI読み書き
今後はSPI通信などを充実させたい

その他
・上半期はそれなりに時間が取れたので、なかなか腰が上がらなかった3Dプリンタにも着手できた
・下半期はNanoPI NEOに出会ってちょっとハマって嬉しかった
・親友に子供が生まれた!よかったよかった
・投資はクリアできなかった。マイナスではなかったけど。

来年(今年)も引き続き家庭も仕事も趣味も充実するといいな。
 目標は
・新しいプラン(目標探し)
・戦略的な投資
・楽しい教育
・「巨人の肩に乗る」
・「ググるよりもググられたい」
・頑張り過ぎないことを頑張る
去年とあまり変わらないか・・・。

2017年11月3日金曜日

FON2405Eのフラッシュメモリを交換→成功→LEDE・Openwrt導入

約1年ほど前にFON2405Eのフラッシュメモリを交換して失敗した。
http://continue-to-challenge.blogspot.jp/2016/11/fon2405e_28.html
またまた魔が差して、 他の基板からMX25L6405D (8192 Kbytes)を引っぺがして交換してみた。
もともと乗っていたのがMX25L8006Eだから上位品?。
すんなりU-Bootでのファーム書き換えはできた。

せっかくなので、OpenwrtからスピンオフしたというLEDEを導入してみることにした。


手順0 フラッシュ交換メモ

忘れそうなので・・・。
0.u-boot他を旧フラッシュからバックアップ
cat /dev/mtdblock0 > /tmp/mtdblock0.img  <Uboot>
cat /dev/mtdblock1 > /tmp/mtdblock1.img  <Config>
cat /dev/mtdblock2 > /tmp/mtdblock2.img  <RF>
3と4はu-bootから書き込むからここではバックアップしない
 mtdblock0-2.imgはPCに退避させておく

1.u-bootの起動メニューで「2」入力しコンソール?に入る
2.通電状態でフラッシュ交換する(ハイリスク!)
3.ファーム書き換えを実行
  KernelとRootFSが書き換えられ、その後linuxのブートに入る
4.新フラッシュにu-boot他を書き込む
cp /tmp/mtdblock0.img /dev/mtdblock0
cp /tmp/mtdblock1.img /dev/mtdblock1
cp /tmp/mtdblock2.img /dev/mtdblock2
今思えばu-bootさえ書き込めれば、あとはLEDE書き込むから
別にやらなくても良かった。

手順1 LEDEのカーネルソース入手

基本的には以下の手順だけど
https://lede-project.org/docs/guide-developer/the-source-code
https://lede-project.org/docs/guide-developer/use-buildsystem

具体的な手順は次のような感じ。簡単だね。
git clone https://git.lede-project.org/source.git
./scripts/feeds update -a
./scripts/feeds install -a 

手順2 FON2405E用にカスタマイズ・Device Tree Source (dts)を作成

オリジナルのFON2405Eとは違うのでFON2405EKAI(改)とした。
変更点をpatchにしてみた。 
完成するまでは紆余曲折あって大変だったけど。 改めてみると変更点って大したこと無いね。
(実は9月末くらいから悩みながらやっていた)

手順3 カーネルイメージ作成

適宜、設定を行う
make menuconfig
make kernel_menuconfig
そして
make -j4 V=99

lede-ramips-rt305x-fon2405ekai-initramfs-kernel.bin
lede-ramips-rt305x-fon2405ekai-squashfs-sysupgrade.bin
が作成される

手順4 ファームアップ

まずは、u-bootからファームアップを行う
 lede-ramips-rt305x-fon2405ekai-initramfs-kernel.bin
を使う。
これで起動すると・・・。
[    4.689131] m25p80 spi0.0: mx25l6405d (8192 Kbytes)
[    4.699191] 3 ofpart partitions found on MTD device spi0.0
[    4.710330] Creating 3 MTD partitions on "spi0.0":
[    4.720086] 0x000000000000-0x000000010000 : "u-boot"
[    4.733996] 0x000000010000-0x000000020000 : "devconf"
[    4.749129] 0x000000020000-0x0000007d0000 : "firmware"
と、rootfsがない状態になる。
設定変更しても反映されない悲しい状態。
どうやらsysupgradeにて再度ファームアップが必要みたい(たぶん)。
sysupgrade -v /tmp/lede-ramips-rt305x-fon2405ekai-squashfs-sysupgrade.bin
このあと起動すると
[    0.614392] m25p80 spi0.0: mx25l6405d (8192 Kbytes)
[    0.624447] 3 ofpart partitions found on MTD device spi0.0
[    0.635587] Creating 3 MTD partitions on "spi0.0":
[    0.645343] 0x000000000000-0x000000010000 : "u-boot"
[    0.659229] 0x000000010000-0x000000020000 : "devconf"
[    0.674223] 0x000000020000-0x0000007d0000 : "firmware"
[    1.385424] 2 uimage-fw partitions found on MTD device firmware
[    1.397553] 0x000000020000-0x000000147454 : "kernel"
[    1.411314] 0x000000147454-0x0000007d0000 : "rootfs"
[    1.426108] mtd: device 4 (rootfs) set to be root filesystem
[    1.439008] 1 squashfs-split partitions found on MTD device rootfs
[    1.451676] 0x000000331000-0x0000007d0000 : "rootfs_data"
となった。やったー。
Luciも開けた!

諦めずにやってよかったー。
//SST26VF032bもどうにかしないと
<参考>
https://wiki.openwrt.org/doc/devel/add.new.platform
https://wiki.openwrt.org/doc/devel/add.new.device
https://wiki.openwrt.org/doc/howto/build
https://wiki.openwrt.org/doc/techref/flash.layout
https://lede-project.org/docs/user-guide/extroot_configuration
http://rainbowdevil.jp/?p=1247

http://www.srchack.org/article.php?story=20150829103857687

2017年9月5日火曜日

ZoneMinderの検知画像と動画をSlackに投稿する

ZoneMinderでは動体検出時等にメール通知する機能があるみたい。
それをなんとか使えないかと思ったけど、面倒くさいと思ってしまった。

すごく邪道な方法で検出時の画像と動画をSlackに投稿する方法を考えた。
それは、zmの吐き出すログをイベントトリガーとするもの。

ついでに検出時に音を鳴らすようにした。

1.インストール
  sudo apt-get install ffmpeg

2.ZoneMinderの画像保存先を漁るスクリプト
  /usr/local/bin/Victrola4ZM.sh
  sudo chown syslog Victrola4ZM.sh
  これは、NanoPIの/etc/rsyslog.conf内の"$FileOwner syslog"のため
  /usr/local/Gillie/Post2slack.js
  これはSlackAPIのトークンが含まれるためowner(=syslog)以外参照させないchmod 700
 
3.ZoneMinderのログを漁るスクリプト
  /etc/rsyslog.d/Victrola4ZM.conf
  sudo systemctl restart rsyslog
4.音を鳴らすために
  usermod -aG audio syslog

5.実行結果