映像解析IoTプラットフォーム「SCORER」
を
Raspberry PiからDragon Boardへ移植してみた
2017年7月22日(土)
株式会社フューチャースタンダード
代表取締役 鳥海哲史
映像解析IoTプラットフォームSCORERの概要
http://www.scorer.jp/
映像解析IoTプラットフォームSCORERの特徴
 カメラの管理システム(登録、削除、交換、モニタリング等)
 セキュアで安価な映像保管(暗号化、アクセス管理、S3クラウド)
 即座に使える便利なパーツ(カメラ、解析端末、通信機器等)
 開かれた解析アルゴリズム(レゴ的に組合わせ、ユーザ開発も可)
映像解析システムを気楽に構築できます!
映像解析IoTプラットフォームSCORERの最近
映像解析IoTプラットフォームSCORERの最近
映像解析IoTプラットフォームSCORERの最近
映像解析IoTプラットフォームSCORERの最近
Raspberry Pi3 から DragonBoard 410c へ
辛みポイント
✓ eMMC が 8GB
✓ Debian9 (Stretch)
✓ ARMv8 64-bit (Aarch64)
✓ ハードウェア・エンコーダ
✓ 5GHz Wifiのドライバ
32GB の MicroSD ブートで解決
コンパイラフラグ(NEON他) 変更
configure.guess 更新、Swap 拡大
Gstreamer 1.12 化 (本家は来週リリース!おしい!)
今回は諦めました ><
MicroSD を OS ディスクにできました!
https://github.com/96boards/documentation/blob/master/Co
nsumerEdition/DragonBoard-410c/Downloads/Debian.md
“dragonboard410c_sdcard_developer_debian-252.img”
1. イメージを書いた MicroSD 挿入
2. Dip-Switch: 0-1-0-0 でブート
3. parted /dev/mmcblk1
resizepart 9 で mmcblk1p9 拡大
4. resize2fs /dev/mmcblk1p9
root@linaro-developer:~# parted /dev/mmcblk1
GNU Parted 3.2
Using /dev/mmcblk1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: SD SC32G (sd/mmc)
Disk /dev/mmcblk1: 31.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 67.1MB 67.6MB 524kB sbl1
2 67.6MB 68.2MB 524kB rpm
3 68.2MB 69.2MB 1049kB tz
4 69.2MB 69.7MB 524kB hyp
5 134MB 134MB 16.4kB sec
6 134MB 135MB 1049kB aboot
7 135MB 202MB 67.1MB boot
8 202MB 203MB 1049kB devinfo
9 203MB 4295MB 4092MB ext4 rootfs
(parted) resizepart 9
Warning: Partition /dev/mmcblk1p9 is being used. Are you sure you want to
continue?
Yes/No? yes
End? [4295MB]? 31.9GB
(parted) quit
Information: You may need to update /etc/fstab.
root@linaro-developer:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 396M 0 396M 0% /dev
tmpfs 93M 4.5M 88M 5% /run
/dev/mmcblk1p9 3.8G 1.2G 2.5G 33% /
tmpfs 462M 0 462M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 462M 0 462M 0% /sys/fs/cgroup
tmpfs 93M 0 93M 0% /run/user/0
tmpfs 93M 0 93M 0% /run/user/1000
root@linaro-developer:~# resize2fs /dev/mmcblk1p9
resize2fs 1.43.4 (31-Jan-2017)
Filesystem at /dev/mmcblk1p9 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mmcblk1p9 is now 7738418 (4k) blocks long.
root@linaro-developer:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 396M 0 396M 0% /dev
tmpfs 93M 4.5M 88M 5% /run
/dev/mmcblk1p9 30G 1.2G 27G 5% /
tmpfs 462M 0 462M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 462M 0 462M 0% /sys/fs/cgroup
tmpfs 93M 0 93M 0% /run/user/0
tmpfs 93M 0 93M 0% /run/user/1000
(参考)
SCORER Camera Control
SCORER Management Console
NetData Monitoring Tool
DragonBoard 410c 良いところ
☆ ボードが薄い!
☆ Forum の内容が充実!
☆ 電源ボタン(クリーン・シャットダウンできる)
☆ 音量ボタンがある!(JSAY で喋れます)
☆ GPS ついてる!
☆ Bluetooth 4.1 (BLEの安定性が向上)
今後、やってみたいこと
◇ GPS で、カメラの位置を自動的に Google Map に表示
◇ 話しかけたら、写真撮って、クラウド・アップロード!
◇ カーネルビルドして、5GHz Wifi 通信
何か賞くれたらSCORER搭載DragonBoard拡販に努めます!
(ラズパイモデルはアマゾンでほぼ毎日売れてます!)

Snapdragon-SCORER

Editor's Notes

  • #9 Kernel のシンボル情報(ラズパイでいう Modules.symver)が、どこかからダウンロードできれば、ドライバだけのビルドができる見込みです。 メモリ搭載量は、ラズパイ3と一緒なのですが、メモリ不足でビルド失敗がありました(pip install scipy)。64ビット化されたので、メモリ消費が増えている気がします。 スワップ領域のサイズが、最初はラズパイにしている設定と同じ 512MB にしたのが、ビルド中に使い切ってしまって Thrashing 発生。スワップ領域を 2GB にしたら、ビルド通りました。 Aarch64 は、NEON が最初から ON なので、コンパイル時に FPU に NEONを指定(-mfpu=crypto-neon-fp-armv8)したらエラーになりました。-marchi=native –mtune=native を指定して、コンパイルを通しました。 Dbian9 & Aarc64 は、ある意味、最新のハードウェアなので、そのまま使えるバイナリが無いことが多いです。SoftEtherVPN とか Cloud9 とか。 特に OS が新しい(Debian9 は 6/20 リリース、Debian9.1 は 7/22 予定)ので、コンパイラも新しく(gcc 6.3)、OSS のビルドが失敗することがあるようです。
  • #10 Download のリンクが、実は切れていて、Release Notes のリンクから行って、dragonboard410c_sdcard_developer_debian のイメージをダウンロードします。 リリースノートによると、この developer というのは、ミニマムのパッケージしか入っていないイメージのことらしいです。(zip して 435.2MB) MicroSD に Unzip したイメージを焼いて、Dip Switch を 0-1-0-0 (OFF-ON-OFF-OFF) にしたら、起動します。 ブートすると、ルート領域が 4GB ぐらいしかないので、拡張します。 昔ながらのパーティションではなく、GPT(GUIDパーティションテーブル)なので、fdisk は利用せず、parted を使い、resizepart 9 で拡張(9 は9番目のパーティションという意味)。 成功したら、quite して、resize2fs で、パーティションの上のファイルシステムも拡張します。