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.

IMAGE_INSTALL_append で指定されたパッケージの構成物に関して、do_compile タスクで実行されるMakeが何も生成しないため、パッケージは生成されていません。
configure で生成される各サブディレクトリのMakefile で実際に構築が行われるように、レシピ内で指定するconfigure に渡すオプションを指定する変数EXTRA_OECONFの調整、 ソースコード内のconfire.in Makefile.am の修正が必要になるかと。

同じ問題に遭遇し、対応を行った方がいました。

https://mickey-happygolucky.hatenablog.com/entry/2021/07/06/091035

pkg-config が クロス構築用のものを使用していないため、構築時に必要なヘッダーファイル、ライブラリが
検出できず、uim-gtk2,uim-gtk3.uim-ximは構築対象外となっていました。

クロス構築対応のpkg-config を使用する設定を追加することで、ライブライ・ヘッダーファイルの検出が可能となり
uim-gtk2,uim-gtk3.uim-ximも構築対象になりました。

上記ページの最後に記載されていますが
do_configure_prepend() {
export PKG_CONFIG="${RECIPE_SYSROOT_NATIVE}/usr/bin/pkg-config"
}
が記載された uim_%.bbappend ファイルを作成し、
bitbake-layers create-layer で新規レイヤーを作成し、その中に recipes-support で始まる
ツリー構造を追加します。(recipes- で始まれば任意の名称でbitbakeはbbappnedファイルを認識します)
|-- COPYING.MIT
|-- README
|-- conf
| `-- layer.conf
|-- recipes-example
| `-- example
| `-- example_0.1.bb
`-- recipes-support
`-- uim
`-- uim_%.bbappend

新規作成したレイヤーを bitbake-layers add-layer で追加を行うことで、IMAGE_INSTALL_append で指定された
パッケージが全て生成されイメージレシピが構築されることを確認しております。

ご教示頂いた方法での修正を行い、再度「bitbake fsl-image-qt5-validation-imx」をしましたところ、
PKG_CONFIGのエラーについては解消されましたが、今度は別のエラー(<エラー内容>)が発生しました。
恐れ入りますが、対処方法をご教示いただけないでしょうか?

<ツリー構造>
yocto@yocto-VirtualBox:~/edm_yocto/poky/meta-local$ tree
.
├── COPYING.MIT
├── README
├── conf
│   └── layer.conf
├── recipes-example
│   └── example
│   └── example_0.1.bb
└── recipes-support
└── uim
└── uim_1.8.8.bbappend

<エラー内容>
| make[2]: Entering directory '/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/build/gtk3/candwin'
| aarch64-poky-linux-gcc -mcpu=cortex-a53+crc+crypto -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../../uim-1.8.8/gtk3/candwin -I../../uim -I../../../uim-1.8.8/replace -I../../../uim-1.8.8/uim -I../../../uim-1.8.8 -DLINUX -DWL_EGL_PLATFORM -pthread -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/gtk-3.0 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/gio-unix-2.0 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/libdrm -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/pango-1.0 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/fribidi -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/harfbuzz -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/atk-1.0 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/cairo -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/pixman-1 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/uuid -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/freetype2 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/libpng16 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/gdk-pixbuf-2.0 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/libmount -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/blkid -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/include/glib-2.0 -I/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot/usr/lib/glib-2.0/include -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0=/usr/src/debug/uim/1.8.8-r0 -fdebug-prefix-map=/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0=/usr/src/debug/uim/1.8.8-r0 -fdebug-prefix-map=/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot= -fdebug-prefix-map=/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/recipe-sysroot-native= -pedantic -Wall -Wchar-subscripts -Wmissing-declarations -Wredundant-decls -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -Wno-long-long -Wno-overlength-strings -DNDEBUG -c -o uim_candwin_gtk3-gtk.o `test -f '../../gtk2/candwin/gtk.c' || echo '../../../uim-1.8.8/gtk3/candwin/'`../../gtk2/candwin/gtk.c
| ../../../uim-1.8.8/gtk3/candwin/../../gtk2/candwin/gtk.c:40:10: fatal error: gdk/gdkx.h: No such file or directory
| 40 | #include <gdk/gdkx.h>
| | ^~~~~~~~~~~~
| compilation terminated.
| make[2]: *** [Makefile:669: uim_candwin_gtk3-gtk.o] Error 1
| make[2]: Leaving directory '/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/build/gtk3/candwin'
| make[1]: *** [Makefile:505: all-recursive] Error 1
| make[1]: Leaving directory '/home/yocto/edm_yocto/build-xwayland-edm-g-imx8mp/tmp/work/aarch64-poky-linux/uim/1.8.8-r0/build/gtk3'
| make: *** [Makefile:636: all-recursive] Error 1
| WARNING: exit code 1 from a shell command.
|
ERROR: Task (/home/yocto/edm_yocto/sources/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 10489 tasks of which 10110 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
/home/yocto/edm_yocto/sources/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.8.bb:do_compile
Summary: There were 3 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

一旦 bitbake uim -c clean を実行して、過去のbitbake実行時の生成ファイルをクリアした後、再度bitbake uim を実行することで、上記エラーは無くなると考えます。

nxpのBSPの場合、recipes-systoot/usr/include/gtk-3.0/gdk 以下に gdkx.h 及び x11/ ディレクトリは生成されていましたが、当該BSPの場合、recipes-systoot/usr/include/gtk-3.0/gdk 以下にgdkx.h が存在せず、x11/ ディレクトリも未生成です。

gtk+3 構築時のEXTRA_OECONF の値で、nxpの場合、--enable-x11-backend と指定されて x11向けのバックエンドが生成されていますが、当該BSPの場合、 --disable-x11-backend と、x11向けのバックエンドは構築しない設定となっています。
当該BSPでgtk+3 構築時に x11バックエンドを有効にする必要があります。

meta-freescale/recipes-graphics/gtk+/gtk+3_%.bbappend に以下の記載が有ります。
=========================================================================
DEPENDS_append_imxgpu2d = " virtual/egl"

PACKAGECONFIG_remove_imxgpu2d = " \
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "x11", "", d)} \
"
=========================================================================
imxgpu2d が有効なマシンの場合、gtk3でconfigure を実行する際にwayland が含まれる場合に、x11を無効とする指定です。

当該マシンのアーキテクチャ、mx8mp に関して、meta-imx/meta-bsp/conf/layer.conf 内にて以下の記載があります。
=========================================================================
MACHINEOVERRIDES_EXTENDER_mx8mp = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d"
=========================================================================
このファイルの記述によって、mx8mp アーキテクチャの場合、gtk+3 構築時に x11 が無効となる imxgpu2d が設定されています。

 meta-freescale/recipes-graphics/gtk+/gtk+3_%.bbappend 内の、PACKAGECONFIG_remove_imxgpu2d の記述を無効化することで、gtk+3におけるx11バックエンド(正確にはgdk-x11)の構築は可能となりますが、ターゲットとなるボードが手元に無いため、動作確認はとれておりません。

uim構築時の依存関係から、gtk+3 バックエンドが必要であり、gtk+3 アプリを動作させないのであれば、上記対応にてuim-gtk2 の構築は可能となります。

ご教示頂いた方法にて問題なく日本語入力が行えるようになりました。
ご対応頂き、誠にありがとうございました。