Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

ATOM Cam2 hack中

ATOM Cam2 hack中

鹿児島Linux勉強会 2021.12で発表

Kenichiro MATOHARA

December 19, 2021
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. ロケット情報 🚀 ロケット情報 🚀 2021-12-21 23:33:52〜 JAXA種子島宇宙センター 大型ロケット発射 場より打ち上げ H-IIAロケット45号機(三菱重工)/第6世代通信衛星「Inmarsat-6」

    シリーズ初号機衛星(英インマルサット社) 久々の夜間打ち上げで遠隔地からも見えやすそう 遠方の方はインターネットストリーミングでどうぞ 3 / 39
  2. ATOM Cam2 ATOM Cam2 日本のベンチャー起業のATOM tech Inc.が発売 ATOM Cam初代に続き2つ目のATOM Cam2(防水)

    最近防水&首振り機能のSwingが発売 2,980円と安価な割には夜間など写りがいい(9mまでのir LEDx4あり) 解像度はFullHD WebUI等はなくてアプリ(Android/iOS)経由での操作のみ factory modeを使い任意のscriptを実行できる!(serlalも使えるよう) ATOM Cam 2 (アトムカム ツー) - 完全防水・防塵+カラーナイトビジ ョン | ATOMシリーズ | ATOM 公式ストア 4 / 39
  3. ATOM Cam比較 ATOM Cam比較 価 格 特徴 初代 2500 オプションのセンサー連携可能,USBCamとして利

    用可能,PCアプリベータ版あり 2 2980 防水,双方向通話 Swing 4280 防水,首振り機能 いずれもfactory mode利用可能 6 / 39
  4. まずmicroSD cardなしで動かす まずmicroSD cardなしで動かす Wi-Fi(2.4GHz)のAPが必要 Android or iOSアプリが必要(今回はAndroid利用) アプリでWi-Fi情報を手打ちしてQR Codeを表示してATOM

    Cam2で 読み取り Wi-Fi認識後アプリで認識,設定やプレビュー等が行える Android版はよく繋がらなくなる.アプリを強制終了して起動し 直すと治る. アプリで録画は可能だが,充電しながらでもバッテリーがどんど ん減っていくのでスポットで  初代にはWindows/macOSアプリ(β版)がある 7 / 39
  5. ffprobe昼 ffprobe昼 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/media/matoken/D522-0232/record/20211214/19/06.mp4': Metadata: major_brand :

    isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.25.100 Duration: 00:01:00.05, start: 0.000000, bitrate: 1030 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 963 Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: pcm_alaw (alaw / 0x77616C61), 8000 Hz, mono, s16, 64 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] 11 / 39
  6. ffprobe夜 ffprobe夜 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/media/matoken/D522-0232/record/20211214/21/46.mp4':M encoder : Lavf57.25.100

    Duration: 00:01:00.07, start: 0.000000, bitrate: 1034 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 967 Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: pcm_alaw (alaw / 0x77616C61), 8000 Hz, mono, s16, 64 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] 12 / 39
  7. factory mode でScriptを動かす factory mode でScriptを動かす こんな感じのファイル,ディレクトリを作成して, Test.tar とし てアーカイブを作成してmicroSDのrootに置くと起動時に

    test.sh が 実行される $ tree -F . ├── Test/ │ ├── checksum* │ ├── factoryTestProcess* │ ├── singleBoadTest* │ └── test.sh* └── factory* 17 / 39
  8. Test/test.sh をこんな感じで書いて 実行権をつけて Test.tar としてtarで固めてmicroSDにcp $ cat Test/test.sh #!/bin/sh echo

    "========== It works! ===========" /system/bin/hl_client & /system/bin/iCamera_app & #ここ以降に走らせせたい処理を書く $ chmod +x Test/test.sh $ tar cfv Test.tar Test factory 18 / 39
  9. telnetd起動しない? telnetd起動しない? atomcam_tool(factory modeでATOM Cam2 便利機能実装ツール)を試 すと動作する atomcam_toolのtelnetに接続してtelnetdを手で叩くと動作する このTest.tarを展開して Test/test.sh

    を書き直してみるとやはり動 かない? debug printを入れてsdに書き出し( /media/mmc )してみるとscript自体 は動いている PATHをlsで確認して /sbin/telnetd としてみたりしたけどうま く行かない 21 / 39
  10. atomcam_toolsのtelnetd起動 atomcam_toolsのtelnetd起動 ProcessName=telnetd while true do # telnet killed by

    iCamera_app count=`ps | grep $ProcessName | grep -v grep | wc -l` if [ $count = 0 ]; then echo "$ProcessName is dead." telnetd else echo "$ProcessName is alive." > /dev/null fi sleep 10 done 23 / 39
  11. telnet接続 telnet接続 $ sudo nmap -sP 192.168.68.1- | grep 7C:DD:E9:

    -B2 | head -1 Nmap scan report for 192.168.68.104 $ telnet 192.168.68.106 8023 Trying 192.168.68.106... Connected to 192.168.68.106. Escape character is '^]'. /sys/devices/virtual/gpio/gpio77 # uname -a /bin/sh: uname: not found /sys/devices/virtual/gpio/gpio77 # cat /proc/version Linux version 3.10.14__isvp_swan_1.0__ (xiaoyongjian@xiaoyongjian-virtual-machine) (gcc version 24 / 39
  12. GPIOでLED制御 GPIOでLED制御 /sys/class/gpio の下にいくつかGPIOがあるようなのでvalueを書き換 えて動きを確認 47⇒1 : 前面左右LEDx4が赤(irも?) 38⇒0 :

    前面中央LEDが黄色 39⇒0 : 前面中央LEDが青色 (38, 39は同時に光らせることが出来る) /sys/class/gpio # echo 1 > gpio47/value /sys/class/gpio # echo 0 > gpio38/value /sys/class/gpio # echo 0 > gpio39/value 26 / 39
  13. gpio direction value 38 out 1 39 out 0 47

    out 0 48 - 0 50 in 0 51 in 1 27 / 39
  14. /proc/filesystems /proc/filesystems nodev sysfs nodev rootfs nodev bdev nodev proc

    nodev cgroup nodev tmpfs nodev debugfs nodev sockfs nodev pipefs nodev anon_inodefs nodev rpc_pipefs nodev configfs nodev devpts squashfs nodev ramfs vfat nodev nfs nodev jffs2 nodev mtd_inodefs exfat 30 / 39
  15. debootstrap debootstrap $ fakeroot # debootstrap --foreign --keyring=/usr/share/keyrings/debian-archive-removed-keys.gpg \ --arch=mips

    jessie debian_mips http://archive.debian.org/debian/ # exit $ sudo chroot debian_mips # /debootstrap/debootstrap --second-stage 31 / 39
  16. jffs2 jffs2 jffs2イメージ作成 ATOM Cam2でmount……失敗 $ mkfs.jffs2 -r ./debian_mips -p

    -e 0x2000 -o ./debian_mips.img # mount -t jffs2 -o rw,relatime /media/mmc/debian_mips.img /tmp/debian mount: mounting /dev/loop0 on /tmp/debian failed: Invalid argument 32 / 39
  17. atomcam_toolsの中のext4.koもら atomcam_toolsの中のext4.koもら ってきて利用 ってきて利用 atomcam_toolsではext2 mountしているので出来るはずもう少し調べ る‥… # mkdir /tmp/mmc

    /tmp/debian # mount /dev/mmcblk0p1 /tmp/mmc # insmod /tmp/mmc/modules/crc16.ko # insmod /tmp/mmc/modules/mbcache.ko # insmod /tmp/mmc/modules/jbd2.ko # insmod /tmp/mmc/modules/ext4.ko # mount -t ext2 /media/mmc/debian_jessie_mips.img /tmp/devian mount: mounting /dev/loop0 on /tmp/devian failed: No such device 33 / 39
  18. atomcam_tools atomcam_tools WebUI http://[ATOMCam2のIPアドレス]:8080/cgi-bin/honeylab.cgi FTPd/Telnetd RTSP(swap必須) rtsp://[IPADDR]:8554/unicast 静止画取得 http://[IPADDR]:8080/cgi-bin/get_jpeg.cgi microSDにswap

    file作成&swapon 検出動画(12秒)をmicroSDに保存 一定時間毎の再起動,ftpサーバにデータアップロード機能 等々とても便利! bakueikozo/atomcam_tools 34 / 39
  19. URL URL atomcam_Tools作者 factory modeの使い方 matokenのメモ 鹿児島Linux勉強会2021.04で発表 honeylab’s blog ATOM

    Camで手軽にゲフンゲフン - Qiita https://wiki.matoken.org/gadget/atomcam2 PQI Air Pen Hack 38 / 39
  20. 奥付 奥付 発表 発表者 利用ソフトウェア ライセンス CC BY-NC-SA 4.0 鹿児島Linux勉強会

    2021.12(オンライン開催) Kenichiro Matohara(matoken) Asciidoctor Reveal.js 39 / 39