Raspberry Pi に OpenJDKをインストールしようとしたらうまくいかなかった

Raspberry PiにOpenJDK をaptでインストールしようとしたら途中でコケてしまい困った。次の方法でインストールした。

% sudo apt install openjdk-9-jdk
(エラー)

これでエラーになってしまったため、困る。ぐぐってみると個別にインストールするとうまくいくよ、というアドバイスがあったので試してみる。まず最初にopenjdk-9-jre-headless と openjdk-9-jre の2つを削除してから個別にインストールする。

% sudo apt-get remove openjdk-9-jre-headless openjdk-9-jre
% sudo apt-get install ca-certificates-java
% sudo apt-get install openjdk-9-jre-headless
% sudo apt-get install openjdk-9-jre

最後にもう一度 openjdk-9-jdk をインストールし直す。

% sudo apt install openjdk-9-jdk

とりあえずインストールだけは無事に終わった。

rock64のUSB3.0に外付けハードディスクをつけてパフォーマンスを計測してみた。

rock64のUSB3.0の口に外付けハードディスクとしてBUFFALO 外付けハードディスク 4TB テレビ録画/PC/PS4/4K対応 静音&コンパクト HD-AD4U3をつけて計測してみた。これくらいの速度が出ていれば困ることはないだろう。ちなみにrock64 + 4TB HDDの構成でNASとして利用している。

$ time dd if=/dev/zero of=./data.dat bs=8192 count=1000000
1000000+0 records in
1000000+0 records out
8192000000 bytes (8.2 GB, 7.6 GiB) copied, 55.6718 s, 147 MB/s

real	0m56.642s
user	0m0.572s
sys	0m25.776s

$ time dd if=./data.dat of=/dev/null
16000000+0 records in
16000000+0 records out
8192000000 bytes (8.2 GB, 7.6 GiB) copied, 48.1263 s, 170 MB/s

real	0m48.132s
user	0m7.672s
sys	0m33.244s
利用しているUSB 3.0接続のハードディスク

rock64のネットワーク性能を計測してみた

rock64はカードサイズのSBC( Single Board Computer)である。そのネットワーク性能をiperfで計測したので掲載しておく。サーバーがrock64側で、クライアントはi7搭載のノートPCである。同じ環境でデスクトップとノートPC間でiperfを試しても同じパフォーマンスだったので、rock64のパフォーマンスに関しては十分な性能が出ていると判断して良いだろう。

$ iperf -c rock64.local
------------------------------------------------------------
Client connecting to rock64.local, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.100.5 port 48250 connected with 192.168.100.56 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.09 GBytes   940 Mbits/sec
$  !!
iperf -c rock64.local
------------------------------------------------------------
Client connecting to rock64.local, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.100.5 port 48252 connected with 192.168.100.56 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.09 GBytes   940 Mbits/sec

Sipeed MaixduinoをMaixPyで動かしてみた

フラッシュを書き込むためのコマンドを用意

Maixduino
Sipeed Maixduino

まずはフラッシュを書き込むためのコマンドを用意した。この手の新しいデバイスではファームウェアはまだまだマチュアにはなっていないので、とにかく最新にアップデートしておく。

kflash
https://github.com/kendryte/kflash.py

ちなみにkflash_guiを試してみたが立ち上がってみたものの何かをするとすぐ落ちるので、コマンド版のこちらを使った。コマンド一行で処理できるのでGUI要らない。

ファームウェア

ファームウェアを最新のものにアップデートにする。

ファームウェアの場所
http://dl.sipeed.com/MAIX/MaixPy/release/

ファームウェアのアップデート方法
https://maixpy.sipeed.com/en/get_started/upgrade_firmware.html

今回はmaixpy_v0.3.2_full.binを使った。kflashコマンドを使って書き込んだが問題は発生しなかった。次に顔認識をするためにface_model_at_0x300000.kfpkgをkflashで書き込んだ。fullに含まれているのかも知れないけれど念のため入れておいた。

IDEを用意

IDEから最新のバージョンをダウンロードして使った。

http://dl.sipeed.com/MAIX/MaixPy/ide/

MaixPyIDE

シリアルラインを選択をすると右のモニタがあらわれる。まだ何か足りなくて本来モニタ部分に画像や他の情報が出力されているはずなのに出力されていない。だけれども実行をかけるとMaxiPyは動いて顔もサクサク認識してくれているのでプログラムを試す範囲では困らなかった。

とりあえずメモしておく。

ちなみに動かしたコードはこれ。サンプルコードをほぼそのまま使っている。

import sensor
import image
import lcd
import KPU as kpu

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(sensor.get_id())
task = kpu.load(0x300000) 
anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025)
a = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor)
while(True):
	img = sensor.snapshot()
	code = kpu.run_yolo2(task, img)
	if code :
		for i in code :
			a = img.draw_rectangle(i.rect())
	a = lcd.display(img)
a = kpu.deinit(task)