This service is available only in Japanese-language.

構築

日本語入力の追加方法(Yocto3.0)

お世話になります。
Yocto3.0(i.mx8plus)のボードにて、以下(<local.confの修正内容>)の修正を行い、
「bitbake fsl-image-qt5-validation-imx」をしましたところ、以下のエラー(<エラー内容>)が発生し、
bitbakeが完了しませんでした。そのため、日本語入力環境を構築できない状況でございます。
恐れ入りますが、対処方法をご教示いただけないでしょうか?

<local.confの修正内容>
IMAGE_INSTALL_append = " uim-xim uim-utils uim-common uim-gtk2.0 uim-gtk3 uim-anthy"
IMAGE_INSTALL_append = " ttf-vlgothic ttf-sazanami-gothic ttf-sazanami-mincho"
IMAGE_INSTALL_append = " setxkbmap"
IMAGE_LINGUAS ?= "ja-jp ja-jp.euc-jp"
GLIBC_GENERATE_LOCALES = "ja_JP.UTF-8 ja_JP.EUC-JP"

<エラー内容>
ERROR: fsl-image-qt5-validation-imx-1.0-r0 do_rootfs: Unable to install packages. Command '/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/edm_g_imx8mp-poky-linux/fsl-image-qt5-validation-imx/1.0-r0/recipe-sysroot-native/usr/bin/apt-get install --force-yes --allow-unauthenticated --no-remove apt dpkg get-support-info opencv-apps opencv-samples packagegroup-base-extended packagegroup-core-boot packagegroup-core-full-cmdline packagegroup-core-nfs-server packagegroup-core-sdk packagegroup-core-ssh-dropbear packagegroup-core-standalone-sdk-target packagegroup-core-tools-debug packagegroup-core-tools-profile packagegroup-core-tools-testapps packagegroup-fsl-gstreamer1.0 packagegroup-fsl-gstreamer1.0-full packagegroup-fsl-tools-audio packagegroup-fsl-tools-benchmark packagegroup-fsl-tools-gpu packagegroup-fsl-tools-gpu-external packagegroup-fsl-tools-testapps packagegroup-imx-isp packagegroup-imx-ml packagegroup-imx-security packagegroup-qt5-imx packagegroup-qt5-webengine packagegroup-tn-nfc packagegroup-tn-tools packagegroup-tn-voicehat packagegroup-tn-wlan packagegroup-tools-bluetooth psplash python3-opencv libqt5virtualkeyboard5 run-postinsts setxkbmap ttf-sazanami-gothic ttf-sazanami-mincho ttf-vlgothic tzdata uim-anthy uim-common uim-gtk2.0 uim-gtk3 uim-utils uim-xim weston-init weston-xwayland xterm' returned 100:
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package uim-gtk2.0
E: Couldn't find any package by glob 'uim-gtk2.0'
E: Couldn't find any package by regex 'uim-gtk2.0'
E: Unable to locate package uim-gtk3
E: Unable to locate package uim-xim

ERROR: Logfile of failure stored in: /home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/edm_g_imx8mp-poky-linux/fsl-image-qt5-validation-imx/1.0-r0/temp/log.do_rootfs.154971
ERROR: Task (/home/yocto/edm_yocto/sources/meta-imx/meta-sdk/dynamic-layers/qt5-layer/recipes-fsl/images/fsl-image-qt5-validation-imx.bb:do_rootfs) failed with exit code '1'
NOTE: Tasks Summary: Attempted 10497 tasks of which 9881 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
/home/yocto/edm_yocto/sources/meta-imx/meta-sdk/dynamic-layers/qt5-layer/recipes-fsl/images/fsl-image-qt5-validation-imx.bb:do_rootfs
Summary: There were 4 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

静的ライブラリ(*.a)について

お世話になっております。

今回、静的ライブラリをOSイメージに含めようとした際、
以下のようなエラーが表示されました。(コンパイル、モジュール作成には成功しております)

エラーパターン1
ERROR: testengine-1.0-r0 do_package_qa: QA Issue: non -staticdev package contains static .a library: testengine path '/work/aarch64-poky-linux/testengine/1.0-r0/packages-split/testengine/usr/lib/libtestengine.a' [staticdev]

エラーパターン2
ERROR: testengine-1.0-r0 do_package: QA Issue: testengine: Files/directories were installed but not shipped in any package:
/usr
/usr/lib
/usr/lib/libtestengine.a
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
testengine: 3 installed and not shipped files. [installed-vs-shipped]

動的ライブラリ(so)を作成する際と同様のオプションで構築、静的ライブラリ特有の処理を加えておりますが、
どうしてもエラーが解消できない状況です。
静的ライブラリの構築方法についてご教授願えないでしょうか?
※Yocto Warrior最新版で構築

●testengine_1.0.bb(抜粋)
SECTION = "libs"
PACKAGES = "${PN}"
PROVIDES = "${PN}"

INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
TARGET_CC_ARCH += "${LDFLAGS}"

do_compile() {
oe_runmake
}
do_cleansstate() {
oe_runmake clean
}
do_install() {
install -d ${D}${libdir}
install -m 0755 ../testengine/libtestengine.a ${D}${libdir}
}

#オプションテスト
#ALLOW_EMPTY_${PN}-staticdev = "1"
#DISABLE_STATIC = ""
#INSANE_SKIP_${PN}-dev = "libtestengine.a"

#FILES_${PN}-staticdev += "${libdir}/libtestengine.a"
#RDEPENDS_${PN}-dev += "${PN}-staticdev"

i.MX 8M Plusの評価ボードのイメージ構築

こんにちは。k-abeと申します。はじめて投稿させていただきます。

先日、i.MX 8M Plusの評価ボード(※1)を購入したのでYoctoのビルド、イメージ構築を試しています。

※1
I-Pi SMARC IMX8M Plus
https://www.ipi.wiki/pages/i-pi-smarc-imx8m-plus

評価ボード販売メーカの構築手順(※2)を参考にして、ビルドを試していますが、エラーが発生してしまいます。

※2
https://www.ipi.wiki/pages/docs
I-Pi SMARC IMX8M Plus
Software Guideline -> How to Build Yocto -> lec-imx8mp + Wayland desktop (GUI) を構築

エラーメッセージを見る限りtinycompressというライブラリのフェッチでエラーになるようです。
bitbake imx-image-multimediaを実行⇒エラー停止⇒bitbake imx-image-multimediaを実行を繰り返すことで
ビルド進捗は少しずつ進みますが、
具体的な解決策が直ぐに見つけられそうにないためこちらに相談させていただきました。
確認するポイントなどあればアドバイスいただけるとありがたいです。
よろしくお願いいたします。

■以下、ビルド時の出力メッセージです。
koji@ubuntu:~/imx-yocto-bsp/build$ bitbake imx-image-multimedia
Loading cache: 100% |############################################| Time: 0:00:00
Loaded 4648 entries from dependency cache.
Parsing recipes: 100% |##########################################| Time: 0:00:01
Parsing of 3226 .bb files complete (3225 cached, 1 parsed). 4649 targets, 238 skipped, 2 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION = "1.44.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "aarch64-fslc-linux"
MACHINE = "lec-imx8mp"
DISTRO = "fslc-xwayland"
DISTRO_VERSION = "3.0"
TUNE_FEATURES = "aarch64 cortexa53 crc crypto"
TARGET_FPU = ""
meta
meta-poky = "HEAD:d88d62c20d7d8da85f02edb170dae0280624ad7e"
meta-oe
meta-multimedia
meta-python = "HEAD:2b5dd1eb81cd08bc065bc76125f2856e9383e98b"
meta-freescale = "HEAD:14f1a630a47375432f93c556927b879b51d84c4e"
meta-freescale-3rdparty = "HEAD:dbcc686f52c3c84db8cb86aa8973a4e373651b98"
meta-freescale-distro = "HEAD:ca27d12e4964d1336e662bcc60184bbff526c857"
meta-bsp
meta-sdk
meta-ml = "HEAD:63665ab70ca609451533101cded2a620b340768c"
meta-nxp-demo-experience = "HEAD:c7263d9f3cc7bbf44e7164ffeda494cf283d3dec"
meta-browser = "HEAD:ee3be3b5986a4aa0e73df2204a625ae1fe5df37e"
meta-rust = "HEAD:53bfa324891966a2daf5d36dc13d4a43725aebed"
meta-clang = "HEAD:711e593d5984aad3bf35c51b7ac4482982bc16c7"
meta-gnome
meta-networking
meta-filesystems = "HEAD:2b5dd1eb81cd08bc065bc76125f2856e9383e98b"
meta-qt5 = "HEAD:21ce4c124d9a972d9122f87c64ac2773bf04c284"
meta-python2 = "HEAD:4400f9155ec193d028208cf0c66aeed2ba2b00ab"
meta-adlink-nxp = "HEAD:ba19c2d52004e5b3b645b1efb6aa0d009e782837"

Initialising tasks: 100% |#######################################| Time: 0:00:04
Sstate summary: Wanted 2491 Found 0 Missed 2491 Current 610 (0% match, 19% complete)
NOTE: Executing Tasks
NOTE: Setscene tasks completed
WARNING: tinycompress-1.1.6-r0 do_fetch: Failed to fetch URL git://git.alsa-project.org/tinycompress.git;protocol=git;branch=master, attempting MIRRORS if available
ERROR: tinycompress-1.1.6-r0 do_fetch: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; unset _PYTHON_SYSCONFIGDATA_NAME; export PATH="/home/koji/imx-yocto-bsp/build/tmp/sysroots-uninative/x86_64-linux/usr/bin:/home/koji/imx-yocto-bsp/sources/poky/scripts:/home/koji/imx-yocto-bsp/build/tmp/work/aarch64-fslc-linux/tinycompress/1.1.6-r0/recipe-sysroot-native/usr/bin/aarch64-fslc-linux:/home/koji/imx-yocto-bsp/build/tmp/work/aarch64-fslc-linux/tinycompress/1.1.6-r0/recipe-sysroot/usr/bin/crossscripts:/home/koji/imx-yocto-bsp/build/tmp/work/aarch64-fslc-linux/tinycompress/1.1.6-r0/recipe-sysroot-native/usr/sbin:/home/koji/imx-yocto-bsp/build/tmp/work/aarch64-fslc-linux/tinycompress/1.1.6-r0/recipe-sysroot-native/usr/bin:/home/koji/imx-yocto-bsp/build/tmp/work/aarch64-fslc-linux/tinycompress/1.1.6-r0/recipe-sysroot-native/sbin:/home/koji/imx-yocto-bsp/build/tmp/work/aarch64-fslc-linux/tinycompress/1.1.6-r0/recipe-sysroot-native/bin:/home/koji/imx-yocto-bsp/sources/poky/bitbake/bin:/home/koji/imx-yocto-bsp/build/tmp/hosttools"; export HOME="/home/koji"; LANG=C git -c core.fsyncobjectfiles=0 clone --bare --mirror git://git.alsa-project.org/tinycompress.git /home/koji/imx-yocto-bsp/downloads//git2/git.alsa-project.org.tinycompress.git --progress failed with exit code 128, output:
Cloning into bare repository '/home/koji/imx-yocto-bsp/downloads//git2/git.alsa-project.org.tinycompress.git'...
fatal: unable to connect to git.alsa-project.org:
git.alsa-project.org[0: 207.180.221.201]: errno=Connection timed out

ERROR: tinycompress-1.1.6-r0 do_fetch: Fetcher failure for URL: 'git://git.alsa-project.org/tinycompress.git;protocol=git;branch=master'. Unable to fetch URL from any source.
ERROR: Logfile of failure stored in: /home/koji/imx-yocto-bsp/build/tmp/work/aarch64-fslc-linux/tinycompress/1.1.6-r0/temp/log.do_fetch.31596
ERROR: Task (/home/koji/imx-yocto-bsp/sources/meta-imx/meta-sdk/recipes-multimedia/tinycompress/tinycompress_1.1.6.bb:do_fetch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3258 tasks of which 3234 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 3 seconds

Summary: 1 task failed:
/home/koji/imx-yocto-bsp/sources/meta-imx/meta-sdk/recipes-multimedia/tinycompress/tinycompress_1.1.6.bb:do_fetch
Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

ルートファイルシステムにGTK2を追加する方法

YoctoでビルドしたLinux上にてOpenCVのプログラムを動作させようとしています。
c++で作成したプログラムを起動すると以下のようなエラーが発生してしまいます。

terminate called after throwing a[ 29.143897] audit: type=1701 audit(1627454408.479:3): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=3621 comm="opencvtest" exe="/home/root/opencvtest" sig=6 res=1
n instance of 'cv::Exception'
what(): OpenCV(3.4.2) /usr/src/debug/opencv/3.4.2+gitAUTOINC+9e1b1e5389_d4e0286945_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/modules/highgui/src/window.cpp:615: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'

libgtk2.0-devが必要らしいということで、ルートファイルシステム内にlibgtk2.0-devを含ませたいのですが、追加させる方法が解りません。
どのように追加すればよいか教えていただけませんでしょうか。

カーネルのタイマー割り込み周期の確認・変更方法について

現在nanosleep()関数を使用して1ms待つ処理を入れて、
その前後にclock_gettime()で時刻を取得して本当に1ms待っているのか?
というPGを作成してリアルタイム性の調査をしています。

カーネルバージョンが異なるLinux(CPUも違いますが)での検証結果が以下の通りになりました。
CPU |カーネルVer |結果
Intel Atom E3940, 1.6 GHz, 4 cores |5.2.20-rt9-yocto-preempt-rt|1.016ms(1000回計測の平均値)
Intel® ATOMTM N455 1.66GHz 2 cores|3.8.13-rt2-yocto-preempt-rt|1.922ms(1000回計測の平均値)

CPUの処理速度の違いもあるかと思うのですが、Linuxのカーネルバージョンによっても違いがあるのかと考えており、
カーネルのタイマー割り込み周期の確認を行いたいのですが、
Yoctoのビルド環境のどこにその設定があるか分かりません。

Linuxに対してもまだまだ勉強不足なので、そもそもカーネルのタイマー割り込み周期は確認できるのか、
確認できれば周期を変更することは可能なのか、ご教授いただければ幸いです。

自作レイヤー内のbbappendで指定したパッチがうまく当たらない

社内問合せです。

bitbake-layers create-layer で作成したレイヤー内にbbappendを作成し、指定したディレクトリ内にパッチファイルを置いたのですが
上手く当たりません。
作成したレイヤーをconf/bblayers.conf から外して手動では当たります。

devtool finish時にオリジナルのSRC_URIが消える

NXP LS1028ARDBをターゲットとしたビルドにおいて、首題の問題が発生しました。アドバイスいただきたく存じます。

Yocto環境は以下URLの3.0のものを使用しております。
https://source.codeaurora.org/external/qoriq/qoriq-components/yocto-sdk/...

以下URLの資料を参考に、devtoolを使ったcowsayパッケージ(https://github.com/schacon/cowsay)のレシピ化/組み込みを試みました。
https://speakerdeck.com/tnishinaga/how-to-build-custom-linux-image-with-...

具体的には、以下手順を実施しました。
 1. devtool addでgitリポジトリを取り込んでレシピ作成
 2. ビルド/実行できるよう.bbファイルおよびソースを変更
 3. git commitでソース変更内容をコミット
 4. bitbake-layers create-layerでレイヤを新規作成
 5. devtool finishでレシピをレイヤに追加
結果、元のworkspaceディレクトリ配下の.bbファイルでは
 SRC_URI = "git://github.com/schacon/cowsay;protocol=https"
となっていた行が、devtool finish後にレイヤに追加されたレシピでは
 SRC_URI += "file://0001-Modify-cowsay.patch"
と、オリジナルのSRC_URIが消えてしまい、ソースの取得が行えない状態となってしまいました。
(符号は+=となっているものの、他にSRC_URIの定義は見当たりません)
上記手順にて不適切な点がないか、ご教示いただけますでしょうか。

なお、不適切な作法かと思いますが、生成された.bbファイルを手動で
 SRC_URI = "git://github.com/schacon/cowsay;protocol=https \
  file://0001-Modify-cowsay.patch \
 "
と書き換えることで、パッチ適用も含めて正しくビルドされることを確認しました。

meta-rosのlibrealsense2について

gatesgarthで、ROS環境を作成しようとしています。
$ source oe-init-build-env
$ bitbake-layers layerindex-fetch meta-ros1-melodic
$ bitbake librealsense2
を実行すると、以下のエラーが発生します。
ERROR: Nothing PROVIDES 'librealsense2'
librealsense2 was skipped: Recipe is blacklisted: opengl: depends on mesa which is not available because of missing opengl or vulkan in DISTRO_FEATURES; glfw: Depends on glfw which is not available in zeus and older

conf/local.confに以下を追加してみましたが、全く変化がありません。
DISTRO_FEATURES_append = " opengl"

何が原因か、ご教授いただけたらと思います。よろしくお願いします。

複数のレシピで格納された複数ファイルを一つのレシピで更新する方法(あるいはその代替手段)

以下のようなケースでの妥当な構築方法をご教授願いたいです。

複数のレシピでイメージ内に格納された複数ファイルを、一つの新規レシピで変更したいです。

既存レシピA:ファイルA1をイメージ内に格納
既存レシピB:ファイルB1をイメージ内に格納
新規追加レシピ(bbappend)C:追加機能実現のため、ファイルA1とファイルB1にパッチをあてたい(ファイルの差し替えでも可)

一つのレシピにしたい理由は、ある機能の実現のため双方のファイルの更新が必要であるためです。
各々にbbappendを作成する方法でも実現可能と思いますが、一つの機能で双方のbbappendが必要であることを後から把握しづらいかと考えています。

何かこのような状況で、妥当なレシピの作成方法はありますでしょうか。

なお、主な更新はレシピAに対するものであるため、現在はレシピAに対するbbappendをまず作成し、それに対しレシピBで追加されているファイルB1に対する更新を加える方法を考えているような状況です。

また、上記ファイルとは/lib/systemd/network内のnetwork設定ファイル等であり、ソースコードではありません。

linux-imx のカーネルコンフィグを変更したい

社内からの問い合わせとなります。

linux-imx のカーネルのコンフィグレーションの変更を 
・ bitbake linux-imx -c menuconfig
で実施して、
・ bitbake linux-imx -c diffconfig
で作成されたfragment.cfg を使用したbbappendを作っても
実際のビルド時に反映されません。

ページ