コントロールパネル作成して、ダイソーのスタックボックスに収めました。
HDDは2.5インチ500GBが余ってたのでそれ使いました。静かで良いです。
カメラ3台H.246常時録画で40日くらい持ちそう。
マウス用にUSBコネクタをフロント出ししても良かったかも
PP樹脂の加工が難しくてなんだかぼろっちいです。。
LEDは上から青、黄、赤なのですがちゃんと撮れてません
このボックス5インチベイ用のHDDリムーバルがすっぽり収まるし、自作のものをスタック追加していっても面白いかも知れません。
適当に加工した背面
角のボードと電池が飛び出すので穴あけ、丁度フックになって固定ネジを減らせました:-)
おっさんの逆襲
2018年9月22日土曜日
Rasberry-pi:StretchでSPIが変だったのが解決
Rasberry-piのSPI接続でFlashROMを読む際、
最新OS(Stretch:Debian9)では変な値が帰り、チップ誤判定されて使えないので
しかたなく1つ前の(Jessie:Debian8)を使っていました。
公式掲示板で「スピードの問題じゃないの?」みたいに書かれていたけど、
Debian8では動作しているし、別の問題かとおもっていました。
Debian9.4でSPI使ってる記事があったので、よく見るとspeed指定が。。
思い込みってダメだな
https://www.flashrom.org/RaspberryPi ここの最後のとこにも書いてあったわorz
でもずっと引っかかってた事が解決してスッキリ
最新OS(Stretch:Debian9)では変な値が帰り、チップ誤判定されて使えないので
しかたなく1つ前の(Jessie:Debian8)を使っていました。
公式掲示板で「スピードの問題じゃないの?」みたいに書かれていたけど、
Debian8では動作しているし、別の問題かとおもっていました。
Debian9.4でSPI使ってる記事があったので、よく見るとspeed指定が。。
flashrom -V -p linux_spi:dev=/dev/spidev0.0 ↓ flashrom -V -p linux_spi:dev=/dev/spidev0.0,spispeed=1000
思い込みってダメだな
https://www.flashrom.org/RaspberryPi ここの最後のとこにも書いてあったわorz
でもずっと引っかかってた事が解決してスッキリ
2018年9月20日木曜日
NVR基板 コネクタこねこね
メーカーのドキュメントに内部コネクタのヒントがありました。
CN5 : ASサービスコネクタにキーマトリクスがありそうなので、コネクタを交換して、ブレッドボードでいじってみる事にしました
FlashROMはソケット化してます
ボタンはそれほど有用性を感じませんが、RECORDやALARM状態がモニタ消しててもわかるのは良いですね!
LEDは負論理ですが、TS8OB_7K4Lパネルを選ぶとALARM_LED のみ有効、GFDS_11K4Lではどちらも無効で起動時にぼんやり点灯とあぶなげな感じです。パネルによって正論理になってるのかな?
とりあえずデフォルトのGeneralでOK
以下、回路図起こしてみました。
外部コネクタ JT1: DC12V電源ジャック 5.5mm/内径2.1mm/センター+ J4 : USB3.0x2 + RJ45 J5 : アナログRGB(VGA) J2 : RCA 音声出力 モノラル J3 : HDMI出力 内部コネクタ J6 : ヒートシンク取付穴 J7 : HDD電源 (12V,GND,GND,5V) CN1 : SATA HDD CN4 : USB ※未確認 CN6 : 12V出力 CN11 : シリアルポート (1=RX,2=TX,3=GND,4=5V) 5V.TTLlevel CN5 : ASサービスコネクタ 10PIN (コンパネ 1:+3.3 2:GND 3:IR 4:COL2 5:COL1 6:ROW2 7:COL3 8:ROW1 9:ALARM_LED(-) 10:REC_LED(-) CN3 : TSサービスコネクタ 10PIN (パイロットランプ? 1:+5 2:GND 3:+5_STB 4:GND 5:NC 6:NC 7:RXD_FRONT 8:TXD_FRONT 9:PWR_S 10:GNDCN3 : TSサービスコネクタのTXD/RXDには何も来てない感じでした。
CN5 : ASサービスコネクタにキーマトリクスがありそうなので、コネクタを交換して、ブレッドボードでいじってみる事にしました
FlashROMはソケット化してます
COL1 COL2 COL3 ROW1 RIGHT ESC LEFT ROW2 UP ENTER DOWNこんな感じで6ボタンアサインされてました。
ボタンはそれほど有用性を感じませんが、RECORDやALARM状態がモニタ消しててもわかるのは良いですね!
LEDは負論理ですが、TS8OB_7K4Lパネルを選ぶとALARM_LED のみ有効、GFDS_11K4Lではどちらも無効で起動時にぼんやり点灯とあぶなげな感じです。パネルによって正論理になってるのかな?
とりあえずデフォルトのGeneralでOK
以下、回路図起こしてみました。
NVR基板 NBD8008R-PL
NVR基板 NBD8008R-PL
AliExpressで送込2300円くらいでした。
Webmoneyが6万円分くらいあまってたのでWebmoney cardを作りました。マスターカードとして普通に使えます。
チャージに4%取られますが、Webmoneyは15%OFFで購入したものなのでOKです。
到着まで2-3週間掛かりますが気長に待ちます。
商品説明はNBD8008RA-GLだったはずなのに、到着したのはNBD8008R-PLでした、さすがです。
ヒートシンクも付いてるしSATA-HDDケーブルとHDD用電源ケーブルもありました。
部品レイアウトがちょっと違う程度で性能的には大差無いので気にしない事にして、
壊れても惜しくない値段なので色々いじってみます。
ファームアップデート
カメラはOnvifで簡単に繋がったのですが、モーション検出がぜんぜん利かないのでアップデートしてみ事にしました。
ファームウェアのアップデートはOnlineの自動更新が便利そうですが、
IPカメラとNVRは外に繋いでいないので手動更新になります。
手動更新の手順は、アップデートファイルを手に入れます。
まず、最新版の
メーカーの製品ページ Hangzhou Xiongmai Technolog
8ch 1080P H.265 NVR Board NBD8008R-PL
http://www.xiongmaitech.com/en/index.php/product/product-detail/4/110/273
Firmware で NBD8008R-PL(General)かNBD8008R-PL(YK)をクリックして
(General)と(YK)の違いは画面のアイコンなどの違いで、(General)は絵のアイコン、(YK)はwindows8のようなモダンスタイル、機能的にはほぼ同じだと思います。
最新版downloadページへ進み、「点?下載 / Click To Download」を押します。
得たzipを解凍すると、
YK_HZXM_NBD8008R-PL_V4.02.R11.7601.Nat.OnvifC.20180905.bin とMD5.txtが出てきます。
これをUSBメモリに入れてNBD8008Rに挿し、メニュー>管理>アップデートで
/dev/sdb1のbinファイルが表示されていると思います。「アドバンス」で即座に更新がはじまります。
※更新中にトラブルがあるとNVRがゴミになるので慎重に行って下さい。
シリアルポート
CN11がシリアルポートらしので調べてみました、(1=RX,2=TX,3=GND,4=5V) で5V TTL levelみたいです。
駄菓子菓子、カーネル起動以降途絶えてしまいます。見えるのはローダーのubootのみ
とりあえずログおいときますね
updateファイルにツールを仕込んでbusyboxやtelnetまで動いているようです。
AliExpressで送込2300円くらいでした。
Webmoneyが6万円分くらいあまってたのでWebmoney cardを作りました。マスターカードとして普通に使えます。
チャージに4%取られますが、Webmoneyは15%OFFで購入したものなのでOKです。
到着まで2-3週間掛かりますが気長に待ちます。
商品説明はNBD8008RA-GLだったはずなのに、到着したのはNBD8008R-PLでした、さすがです。
ヒートシンクも付いてるしSATA-HDDケーブルとHDD用電源ケーブルもありました。
部品レイアウトがちょっと違う程度で性能的には大差無いので気にしない事にして、
壊れても惜しくない値段なので色々いじってみます。
ファームアップデート
カメラはOnvifで簡単に繋がったのですが、モーション検出がぜんぜん利かないのでアップデートしてみ事にしました。
ファームウェアのアップデートはOnlineの自動更新が便利そうですが、
IPカメラとNVRは外に繋いでいないので手動更新になります。
手動更新の手順は、アップデートファイルを手に入れます。
まず、最新版の
メーカーの製品ページ Hangzhou Xiongmai Technolog
8ch 1080P H.265 NVR Board NBD8008R-PL
http://www.xiongmaitech.com/en/index.php/product/product-detail/4/110/273
Firmware で NBD8008R-PL(General)かNBD8008R-PL(YK)をクリックして
(General)と(YK)の違いは画面のアイコンなどの違いで、(General)は絵のアイコン、(YK)はwindows8のようなモダンスタイル、機能的にはほぼ同じだと思います。
最新版downloadページへ進み、「点?下載 / Click To Download」を押します。
得たzipを解凍すると、
YK_HZXM_NBD8008R-PL_V4.02.R11.7601.Nat.OnvifC.20180905.bin とMD5.txtが出てきます。
これをUSBメモリに入れてNBD8008Rに挿し、メニュー>管理>アップデートで
/dev/sdb1のbinファイルが表示されていると思います。「アドバンス」で即座に更新がはじまります。
※更新中にトラブルがあるとNVRがゴミになるので慎重に行って下さい。
シリアルポート
CN11がシリアルポートらしので調べてみました、(1=RX,2=TX,3=GND,4=5V) で5V TTL levelみたいです。
駄菓子菓子、カーネル起動以降途絶えてしまいます。見えるのはローダーのubootのみ
とりあえずログおいときますね
System startup......... System startup U-Boot 2010.06-svn701 (Nov 29 2017 - 08:39:49) Check Flash Memory Controller v100 ... Found SPI Nor(cs 0) ID: 0xc2 0x20 0x18 Block:64KB Chip:16MB Name:"MX25L128XX" at hifmc100_setTB() mid:0xc2,chipsize:0x1000000 {no}. lk[9 =} 0x1000000] SPI Nor total size: 16MB In: serial Out: serial Err: serial USB: scanning bus for devices... 2 USB Device(s) found 0 Storage Device(s) found Press CTRL-C to abort autoboot in 2 seconds16384 KiB hi_fmc at 0:0 is now current device CFG_BOOT_ADDR:0x0 argc 2 argv[0] logoload ### h264dvr.jpg UbootLogoload complete:bytes oadaddr0x84000000 loaded to 0x87000000 ### h264dvr.jpg UbootLogoload complete: 59577 bytes loaded to 0x87000000 jpeg decoding ... {{addr=0x87000000, size=0xb85f9, vobuf=0x8711fc00}} {{imgwidth=800, imgheight=600, linebytes=1600}} decode success!!!! decode jpeg success. decode jpeg! stMaxRect.u32Width:800, stMaxRect.u32Height:600. HDMI_INFO:DispFmt2HdmiTiming[383] ,Non CEA video timing:16 HDMI_INFO:Hdmi_PixelFreqSearch[127] ,u32Fmt16. srcAddr 0x82000000, dstAddr 0x81000000 find_squashfs_file: name bin, start_block 0, offset 2639, type 1 find_squashfs_file: name boot, start_block 0, offset 2747, type 1 read inode: name boot, sb 0, of 2747, type 1 find_squashfs_file: name zImage.img, start_block 0, offset 2671, type 2 read inode: name zImage.img, sb 0, of 2671, type 2 ### FS load complete: 2821971 bytes loaded to 0x81000000 ## Booting kernel from Legacy Image at 81000000 ... Image Name: Linux-4.9.37 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2821907 Bytes = 2.7 MiB Load Address: 80008000 Entry Point: 80008000 Loading Kernel Image ... OK OK Starting kernel ...その後ぐぐってると、ipcamtalk.comでいろいろやってる人がいて、
updateファイルにツールを仕込んでbusyboxやtelnetまで動いているようです。
2018年9月18日火曜日
Loosafe LS-F2 の調教 その2
squashfsイメージのmountしてReadonryだのう...からの続き
squashfsイメージファイルの中身を取り出す
中身を修正
rootfsの所は主にパスワードの再設定。
/etc/passwd のdefaultを1行削除
/etc/shadow のdefaultを1行削除
root,adminの暗号化されたパスワードを別のLinuxで作成したコードに置き換える。
(カメラにvipwコマンドが無い、busyboxにリンク貼ると使えるのかも知れないけど、無かった)
パスワード関連が丸見えなのでパーミッション設定
再構成の前に、Compression-typeとBlock sizeを確認。
修正内容はwebとかSDカード突っ込むと強制フォーマットされるとことか、
conf.binはjffs2なのでカメラにLoginして逐次修正します。
修正が終わったら結合
せっかくなので0xFFで後半8MB埋めて焼いてみる。
0xffのfilは「ddで0xffを書き込む方法」とかぐぐってください。
えいっ
squashfsイメージファイルの中身を取り出す
$sudo su -(owner:rootが変ってしまうのでrootで作業)
$sudo unsquashfs -d rootfs rootfs.bin(デフォルトではsquashfs-root/に展開される)
中身を修正
rootfsの所は主にパスワードの再設定。
/etc/passwd のdefaultを1行削除
/etc/shadow のdefaultを1行削除
root,adminの暗号化されたパスワードを別のLinuxで作成したコードに置き換える。
(カメラにvipwコマンドが無い、busyboxにリンク貼ると使えるのかも知れないけど、無かった)
パスワード関連が丸見えなのでパーミッション設定
chmod 644 /etc/passwd chmod 644 /etc/group chmod 640 /etc/shadow
再構成の前に、Compression-typeとBlock sizeを確認。
unsquashfs -s rootfs.bin Found a valid SQUASHFS 4:0 superblock on rootfs.bin. Creation or last append time Tue Aug 15 11:34:04 2017 Filesystem size 1817.96 Kbytes (1.78 Mbytes) Compression xz Block size 262144 Filesystem is exportable via NFS Inodes are compressed Data is compressed Fragments are compressed Always-use-fragments option is not specified Xattrs are not stored Duplicates are removed Number of fragments 3 Number of inodes 178 Number of ids 1パラメータ指定してsquashfs作成
$sudo mksquashfs rootfs rootfs.new -comp xz -b 262144 -rw-rw-r-- 1 ub ub 1900544 5月 5 10:52 rootfs.bin -rw-r--r-- 1 root root 1863680 9月 17 16:53 rootfs.newパーテーションサイズ1900544に満たない部分36864byteを0x00で埋める必要がある。
cp rootfs.new rootfs.fil head -c 36864 /dev/zero >> rootfs.filmtd.binも同様にsquashfs展開して修正して再構成して0x00埋め。
修正内容はwebとかSDカード突っ込むと強制フォーマットされるとことか、
conf.binはjffs2なのでカメラにLoginして逐次修正します。
修正が終わったら結合
cp boot.bin new.bin dd if=bootenv.bin bs=1024 seek=192 of=new.bin dd if=kernel.bin bs=1024 seek=256 of=new.bin dd if=rootfs.fil bs=1024 seek=1600 of=new.bin dd if=mtd.bin bs=1024 seek=3456 of=new.bin dd if=conf.bin bs=1024 seek=6528 of=new.bin #逆エンディアン byteorder4 new.bin new.romW25Q128-SOPが安かった(送料込み5個で425円)のでテスト用に買ってて、
せっかくなので0xFFで後半8MB埋めて焼いてみる。
0xffのfilは「ddで0xffを書き込む方法」とかぐぐってください。
えいっ
#焼き(Raspberry-pi sudo flashrom -V -p linux_spi:dev=/dev/spidev0.0 -c "W25Q128.V" -E sudo flashrom -V -p linux_spi:dev=/dev/spidev0.0 -c "W25Q128.V" -w new.rom起動してrootloginできるようになりました。
Loosafe LS-F2 の調教 その1
KKMoon HR06/s468のあとLSF2やろうと思いつつも、めんどくさくなってすっかり放置しておりました。
Loosafe LS-F2のハードはだいたいの所、HR06と同じで、
CMOS SC1135 1.3Mpix センサ
Wifi:RTL8188FTV
FlashROM:W25Q64JVSIQ 64Mbit(8MB)
出荷シール18年01月
ファームV13.1.6.1.23-20171020
このへんがちょっぴり違います。
こちらのほうが新しいのですが、ROMイメージのmount方式がjffs2からsquashfsに一部変更され、高圧縮となったため8MBに収まったのかと思います。
HR06と同じように空きランドJ3にシリアル接続します。
1-TX
2-GND
3-RX
ホーレートは115200bps-8bit-none です。
起動ログにROMのパーテーションとmount情報が見つかります。
吸い出したROMイメージをbyteorder4(4byte単位でbyte順を並び替え)したのち分割します。
とりあえずumount
Loosafe LS-F2のハードはだいたいの所、HR06と同じで、
CMOS SC1135 1.3Mpix センサ
Wifi:RTL8188FTV
FlashROM:W25Q64JVSIQ 64Mbit(8MB)
出荷シール18年01月
ファームV13.1.6.1.23-20171020
このへんがちょっぴり違います。
こちらのほうが新しいのですが、ROMイメージのmount方式がjffs2からsquashfsに一部変更され、高圧縮となったため8MBに収まったのかと思います。
HR06と同じように空きランドJ3にシリアル接続します。
1-TX
2-GND
3-RX
ホーレートは115200bps-8bit-none です。
起動ログにROMのパーテーションとmount情報が見つかります。
[ 0.820000] [W25Q64FV] USE 1X mode read and 1X mode write [ 0.830000] gk_flash gk_flash.0: W25Q64FV (8192 Kbytes) [ 0.840000] 7 cmdlinepart partitions found on MTD device gk_flash [ 0.840000] Creating 7 MTD partitions on "gk_flash": [ 0.850000] 0x000000000000-0x000000030000 : "boot" 192k 0x30000 [ 0.860000] 0x000000030000-0x000000040000 : "bootenv" 64k 0x10000 [ 0.870000] 0x000000040000-0x000000190000 : "kernel" 1344k 0x150000 [ 0.870000] 0x000000190000-0x000000360000 : "rootfs" 1856k 0x1D0000 [ 0.880000] 0x000000360000-0x000000660000 : "mtd" 3072k 0x300000 [ 0.890000] 0x000000660000-0x000000800000 : "conf" 1664k 0x1A0000 [ 0.900000] 0x000000000000-0x000000800000 : "all" 8192k 0x800000 。 。 。 rootfs : mount -t squashfs /dev/mtdblock3 / mtd : mount -t squashfs /dev/mtdblock4 /mnt/mtd/ipc conf : mount -t jffs2 /dev/mtdblock5 /mnt/mtd/ipc/conf
吸い出したROMイメージをbyteorder4(4byte単位でbyte順を並び替え)したのち分割します。
dd if=lsf2.bin bs=1024 skip=0 count=192 of=boot.bin dd if=lsf2.bin bs=1024 skip=192 count=64 of=bootenv.bin dd if=lsf2.bin bs=1024 skip=256 count=1344 of=kernel.bin dd if=lsf2.bin bs=1024 skip=1600 count=1856 of=rootfs.bin dd if=lsf2.bin bs=1024 skip=3456 count=3072 of=mtd.bin dd if=lsf2.bin bs=1024 skip=6528 count=1664 of=conf.binsquashfsイメージのmount
$sudo mount -t squashfs rootfs.bin mnt※mountしてもReadonryなので修正できないけど、ちゃんと取り出せたのが確認できました。
とりあえずumount
$sudo umount mnt後半に続く。。
2018年7月7日土曜日
FlashROMの書き込み
ROMファイルを再構成する。
Long word(4byte)の逆エンディアン変換を行う
FlashROMの書き込み
消去して書込みする
EEPROMなどと同じく消去すると0xffで埋まる。
消去を繰り返すと素子が劣化して消去に時間が掛かるようになるらしい。
UVROMやEEPROMは劣化すると不定ビット(読むたびに異なる値)が増えたり、0xffに戻ってくれなかったりしたけど、 10万回くらい大丈夫らしいです。
cp uboot.rom new.rom dd if=ubootenv.rom bs=1024 seek=256 of=new.rom dd if=kernel.rom bs=1024 seek=320 of=new.rom dd if=rootfs.rom bs=1024 seek=2048 of=new.rom
Long word(4byte)の逆エンディアン変換を行う
FlashROMの書き込み
消去して書込みする
sudo flashrom -V -p linux_spi:dev=/dev/spidev0.0 -c "W25Q128.V" -E sudo flashrom -V -p linux_spi:dev=/dev/spidev0.0 -c "W25Q128.V" -w new.rom
EEPROMなどと同じく消去すると0xffで埋まる。
消去を繰り返すと素子が劣化して消去に時間が掛かるようになるらしい。
UVROMやEEPROMは劣化すると不定ビット(読むたびに異なる値)が増えたり、0xffに戻ってくれなかったりしたけど、 10万回くらい大丈夫らしいです。
登録:
投稿 (Atom)
NBD8008Rケース完成
コントロールパネル作成して、ダイソーのスタックボックスに収めました。 HDDは2.5インチ500GBが余ってたのでそれ使いました。静かで良いです。 カメラ3台H.246常時録画で40日くらい持ちそう。 マウス用にUSBコネクタをフロント出ししても良かったかも PP樹脂の...
-
NVR基板 NBD8008R-PL AliExpressで送込2300円くらいでした。 Webmoneyが6万円分くらいあまってたのでWebmoney cardを作りました。マスターカードとして普通に使えます。 チャージに4%取られますが、Webmoneyは15%...
-
メーカーのドキュメントに内部コネクタのヒントがありました。 外部コネクタ JT1: DC12V電源ジャック 5.5mm/内径2.1mm/センター+ J4 : USB3.0x2 + RJ45 J5 : アナログRGB(VGA) J2 : RCA 音声出力 モノラル J3 :...
-
IPカメラのWebを開くと細かな設定を行えるが、スマホにあるMotion detectionの設定が隠されていたり、 image設定のパラメータが省略されていたりと不備が多いので修正の必要がある。 IPカメラ本体のストレージには余裕があまり無いので、別途NFSサーバーを用意し、...