2018/11/04

Raspberry Pi 3 B+ その2

【作業1日目】

ハードディスクは積んでなく,MicroSD がハードディスクな Raspberry Pi3 さん.
MicroSD がないと話にならないので Amazon でポチッとな.

Transcend microSD カード 32GB UHS-I Class10 Nintendo Switch/3DS 動作確認済 TS32GUSD300S-AE
https://www.amazon.co.jp/gp/product/B07DVGCQP1/

色々なページで「Transcend」か「東芝」推奨してたので.
あと何気にアダプターの速度が安定性と動作速度に影響するとのことで.
16GB で十分とのことだけど,100 円も変わらないから 32GB にしてみた.
送料無料なのもいい感じ.




【作業2日目】

届いた MicroSD に raspbian を書き込む.
手順は下記のとおり.(RASPBIAN STRETCH LITE でなく DESKTOP を入れてみる)
SD Card Formatter とか Disk Imager とか色々と入れるの面倒だなぁ…
https://hirazakura.hatenablog.com/entry/raspberrypi/setup/first

書き込んだ MicroSD を RaspPi3 に入れて,HDMI でモニタにつないで(PC のを抜いて刺して),マウスとキーボードを USB に刺して… と刺さらない!
初期からか,息子が落とした時か,USB 端子が1つ歪んでる模様.
ケースに異常はないから初期からかな? まぁ USB は4つあるからいいとする.

とにかく上記を全部入れて電源を入れると… 無事起動!
いやぁ,簡単簡単.
MicroSD の初期化と書き込みは1時間くらいかかった(放置してたから実際のところよくわからない)けど,raspbian 起動は 10 秒くらいで立ち上がる.
快適,快適.

何をするにもまずはネットワーク設定.
会社の Wifi に接続できるようにして,ブラウザ立ち上げると,無事起動,ウェブも見れた.
あっさり過ぎてビックリ.

一点,よく落ちる.いきなり再起動かかりまくり.
100 均 USB 電源だからかなぁ… ちょっと考慮する必要があるなぁ….




【作業3日目】

iPhone のデフォルトの USB 電源アダプタだと動作安定している模様.
やはりアンペア不足していたのかな?

いちいち HDMI 接続を切り替えるのが面倒なので,Windows のリモートデスクトップで入れるようにする.
参考ページはこちら:
https://qiita.com/t114/items/bfac508504b9a6b7570d

で,Windows からリモートデスクトップでアクセス…っ,とできない!
購入から初めてのトラブルだなこりゃ.

でも困った時は google 様,tightvncserver も入れたらいい模様.
https://qiita.com/hiroyuki_jp/items/a4b17fa451adfe66d6a9

ちなみに Session は「Xorg」,username は「pi」,password は自分が設定したものを入力しよう!
(あちこちのページでパスワードは raspberry とか書いてあるけど,それデフォルトだから)

で,無事 Windows からリモートデスクトップで繋がった.
あとは色々と試していく訳だが,とりあえず git … はすでに入っている模様.
明日以降捗るねぇ…




【作業4日目】

暇さえあればほぼ毎日触ってる Raspberry Pi.(仕事しろよ)

まず,社内で使っている garoon のスケジュール情報を,Google Calender に同期させてみる.
これをしておくと誰かが自分のスケジュールを garoon 上で更新(この時間会議予約な? みたいな)したら,自分の Google Calender に反映されるようになる.
今現在は Android 端末を専用に用意しているんだけど,なんか勿体ないので.

使うのはコレ.
https://developer.cybozu.io/hc/ja/articles/204426680

ソースは github から Raspberry Pi に直接クローンできた.GCP の設定は PC からして問題なし.
github に書かれた説明どおりに gradle ビルドも正常,各種設定ファイルも配置,いざ実行,はい SQL でエラー出た!

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open(Ljava/lang/String;I)V
 at org.sqlite.core.NativeDB._open(Native Method)
 at org.sqlite.core.DB.open(DB.java:161)
 at org.sqlite.core.CoreConnection.open(CoreConnection.java:220)
 at org.sqlite.core.CoreConnection.(CoreConnection.java:76)
 at org.sqlite.jdbc3.JDBC3Connection.(JDBC3Connection.java:24)
 at org.sqlite.jdbc4.JDBC4Connection.(JDBC4Connection.java:23)
 at org.sqlite.SQLiteConnection.(SQLiteConnection.java:45)
 at org.sqlite.JDBC.createConnection(JDBC.java:114)
 at org.sqlite.JDBC.connect(JDBC.java:88)
 at java.sql.DriverManager.getConnection(DriverManager.java:664)
 at java.sql.DriverManager.getConnection(DriverManager.java:270)
 at com.cybozu.GGsyncDb.(GGsyncDb.java:28)
 at com.cybozu.GGsync.main(GGsync.java:139)

こんなエラーには負けないのがエンジニア.
Google さんによるとどうも使っている SQL(sqlite-jdbc-3.8.11.2) にバグがあるようなので,build.gradle に書かれた sql のバージョンをとりあえず最新(3.23.1)に変更して,再ビルド,実行.


OK,動作したよ!

あとはこのコマンドを cron で定期動作させるだけ.
これでこれ目的で使ってた Android 端末が一台浮かせるというもの.
ただ用途がこれだけなら Raspberry Pi Zero でも十分だなぁ… 会社のお金で買ってみるか.
(電源ケーブル込みで)