2017年11月12日日曜日

Opencv 3.3.1 Viz - Fedora 26

OpenCV 3.3.1にバージョンアップしたら、vizのチュートリアルが動作しないことがわかった。ビルドしたときの環境は下記。

環境

  • Fedora 26
  • OpenCV 3.3.1
  • Cuda 9
  • VTK 7 (パッケージをインストール)
vizのチュートリアルを動作させるとVTKモジュールでエラーとなっている模様。
Shader object was not initialized, cannot attach it.

ググるとOpenGLが初期化されていない???
NVIDIAの新しいOpenGLのバージョンだとVTK 7 が対応できていないための模様。
バグチケットにも登録されていた。
https://bugzilla.redhat.com/show_bug.cgi?id=1496287

解決方法

VTK 7 はあきらめて、VTK 8をソースからビルドして、OpenCVを再ビルドした。
結果、vizのチュートリアルが動作できた。

2017年11月5日日曜日

Bash on Windows で yocto (はできなかった)

Windows10のBash on Windowsでyoctoがビルドできるかなと思ってチャレンジ。
(ubuntuだし、できるかも?と淡い期待をもってみた)
yoctoの公式Documentの通り、パッケージをインストール後、Raspberry pi3のBasicイメージでビルド。
ビルドするとエラーとなってしまう。autoreconf m4? 見慣れないエラー。。。

$ bitbake rpi-hwup-image
Parsing recipes: 100% |##################################################################################| Time: 0:00:23
Parsing of 1987 .bb files complete (0 cached, 1987 parsed). 2778 targets, 109 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION        = "1.35.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "universal"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "raspberrypi3"
DISTRO            = "poky"
DISTRO_VERSION    = "2.4"
TUNE_FEATURES     = "arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7"
TARGET_FPU        = "hard"
meta
meta-poky
meta-yocto-bsp    = "master:65d23bd7986615fdfb0f1717b615534a2a14ab80"
meta-oe
meta-multimedia
meta-python
meta-networking   = "master:0d220e002e4f525469f0c24e0585318d2178e7a1"
meta-raspberrypi  = "master:a1cfeb3324c458a73507e34ffcf28c25591b8052"
WARNING: The Linux kernel on your build host was not configured to provide process I/O statistics. (CONFIG_TASK_IO_ACCOUNTING is not set)
Initialising tasks: 100% |###############################################################################| Time: 0:00:05
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: libtool-native-2.4.6-r0 do_configure: autoreconf execution failed.
ERROR: libtool-native-2.4.6-r0 do_configure: Function failed: do_configure (log file is located at /home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/temp/log.do_configure.222)
ERROR: Logfile of failure stored in: /home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/temp/log.do_configure.222
Log data follows:
| DEBUG: Executing shell function autotools_preconfigure
| DEBUG: Shell function autotools_preconfigure finished
| DEBUG: Executing python function autotools_aclocals
| DEBUG: SITE files ['endian-little', 'common-linux', 'common-glibc', 'bit-64', 'x86_64-linux', 'common']
| DEBUG: Python function autotools_aclocals finished
| DEBUG: Executing shell function do_configure
| automake (GNU automake) 1.15.1
| Copyright (C) 2017 Free Software Foundation, Inc.
| License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>;
| This is free software: you are free to change and redistribute it.
| There is NO WARRANTY, to the extent permitted by law.
|
| Written by Tom Tromey <tromey@redhat.com>
|        and Alexandre Duret-Lutz <adl@gnu.org>.
| AUTOV is 1.15
| NOTE: Executing ACLOCAL="aclocal --system-acdir=/home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/recipe-sysroot-native/usr/share/aclocal/ --automake-acdir=/home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/recipe-sysroot-native/usr/share/aclocal-1.15" autoreconf --verbose --install --force --exclude=libtoolize -I /home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/libtool-2.4.6/m4/ -I /home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/libtool-2.4.6/tests/
| autoreconf: Entering directory `.'
| autoreconf: configure.ac: not using Gettext
| autoreconf: running: aclocal --system-acdir=/home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/recipe-sysroot-native/usr/share/aclocal/ --automake-acdir=/home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/recipe-sysroot-native/usr/share/aclocal-1.15 -I /home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/libtool-2.4.6/m4/ -I /home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/libtool-2.4.6/tests/ --force -I m4
| m4: ../sysdeps/unix/sysv/linux/spawni.c:368: __spawnix: Assertion `ec >= 0' failed.
| m4: internal error detected; please report this bug to <bug-m4@gnu.org>: Aborted
| autom4te: m4 failed with exit status: 2
| aclocal: error: echo failed with exit status: 2
| autoreconf: aclocal failed with exit status: 2
| ERROR: autoreconf execution failed.
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_configure (log file is located at /home/xxxx/rpi3/rpi-build/tmp/work/x86_64-linux/libtool-native/2.4.6-r0/temp/log.do_configure.222)
ERROR: Task (/home/xxxx/rpi3/poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb:do_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 559 tasks of which 525 didn't need to be rerun and 1 failed.
Summary: 1 task failed:
  /home/xxxx/rpi3/poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb:do_configure
Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

どうやらBash on Windowsではglibcが完全に動作しないことが原因らしい。
https://github.com/Microsoft/WSL/issues/1878
(Bash on Windowsでyoctoを試そうとする人は他にもいたみたい。。。)

2017年10月30日月曜日

yocto2.4でraspberry pi 3 Aarch64

masterブランチ(2.4)でRaspberry Pi3をAarch64をビルドする方法。
レイヤーの追加とbitbakeのImageがちょっと変更になったのでメモ。

ダウンロード

$ mkdir aarch64
$ cd aarch64/
$ git clone git://git.yoctoproject.org/poky.git
$ cd poky/
$ git clone git://git.yoctoproject.org/meta-raspberrypi
$ git clone git://git.openembedded.org/meta-openembedded

レイヤーの追加

以前はmeta-raspberrypiだけ追加すればよかったが、エラーとなるため、meta-openembeddedのレイヤーも追加する。
$ mkdir aarch64
$ bitbake-layers add-layer ../poky/meta-openembedded/meta-oe/
$ bitbake-layers add-layer ../poky/meta-openembedded/meta-multimedia/
$ bitbake-layers add-layer ../poky/meta-openembedded/meta-python/
$ bitbake-layers add-layer ../poky/meta-openembedded/meta-networking/
$ bitbake-layers add-layer ../poky/meta-raspberrypi/

bitbake

conf/local.confに以下を追加する。
MACHINE ?= "raspberrypi3-64"

bitbakeでは「rpi-hwup-image」を指定。
$ bitbake rpi-hwup-image

Parsing recipes: 100% |##########################################| Time: 0:00:29
Parsing of 1974 .bb files complete (0 cached, 1974 parsed). 2762 targets, 113 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION = "1.35.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "fedora-26"
TARGET_SYS = "aarch64-poky-linux"
MACHINE = "raspberrypi3-64"
DISTRO = "poky"
DISTRO_VERSION = "2.4"
TUNE_FEATURES = "aarch64"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "master:fcdfe09d9cc4e2977bd602dfd18f729cd9f6d73d"
meta-oe
meta-multimedia
meta-python
meta-networking = "master:f841648657069051dffa1012a42eb1524b894d50"
meta-raspberrypi = "master:04b37dbdb79638b17a670280058400ffaf1b6ccb"

NOTE: Tasks Summary: Attempted 2464 tasks of which 6 didn't need to be rerun and all succeeded.

SDカードに書き込み、起動

モニタを撮影・・・
以前より作成が簡単になっていた。感謝!