っ メタメタ for R-Car Gen3 (H3)
- poky
warrior
commit 4edf4eb9cc86fbd4b51240fae527c1b97a7ace74
$ git clone -b warrior git://git.yoctoproject.org/poky.git
- meta-debian
warrior
commit 972c612a3adc0bea2d39cf76921815e3db33edaa
$ git clone -b warrior https://github.com/meta-debian/meta-debian.git poky/meta-debian
- meta-renesas
warrior-dev
commit 9107c2946f98151105db89aba4c074a3f3ae622e
$ git clone -b warrior-dev https://github.com/renesas-rcar/meta-renesas.git
- ダウンロードEVAパッケージ
- https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard-2.html
- YP2.7 (Warrior)
インストール
$ cd <path to layer>/meta-renesas $ ./meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh <path to package downloaded>
- meta-openembedded
meta-renesasが、meta-oeに依存
commit a24acf94d48d635eca668ea34598c6e5c857e3f8
$ git clone -b warrior git://git.openembedded.org/meta-openembedded
- meta-linaro
meta-renesasが、meta-opteeに依存(らしい)
commit 5122de099c028b08db569451d5543a87e79af598
$ git clone -b warrior git://git.linaro.org/openembedded/meta-linaro.git
っ ホストPC環境のセットアップ!
- meta-debianのQuickStart等を参考に。https://github.com/meta-debian/meta-debian
- おすすめは、meta-debian/docker/ の、docker-compose.yml、common.yml、Dockerfileをお好みにカスタマイズしてのDocker
っ れいやー設定!BBLAYERS.CONF!
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly POKY_BBLAYERS_CONF_VERSION = "2" BBPATH = "${TOPDIR}" BBFILES ?= "" BBLAYERS ?= " \ <path to layer>/meta-debian \ <path to layer>/poky/meta \ <path to layer>/poky/meta-poky \ <path to layer>/poky/meta-yocto-bsp \ ${EXTRA_BBLAYERS} \ " EXTRA_BBLAYERS = " \ <path to layer>/meta-renesas/meta-rcar-gen3 \ <path to layer>/meta-linaro/meta-optee \ <path to layer>/meta-openembedded/meta-oe \ "
っ ローカル設定!LOCAL.CONF!
テンプレートをmeta-debianから持ってくる
$ cp <path to layer>/meta-debian/conf/local.conf.sample conf/local.conf
meta-renesasから、グラフィック・マルチメディア(EVAパッケージ関連)の設定をいただく
$ cat <path to layer>/meta-rcar-gen3/docs/sample/conf/h3ulcb/poky-gcc/mmp/local-wayland.conf
このあたりから後ろをまるっとコピー253 # Add systemd configuration 254 DISTRO_FEATURES_append = " systemd" 255 VIRTUAL-RUNTIME_init_manager = "systemd"
以下を追記する
# for R-Car Gen3 (H3ULCB) DISTRO = "deby" MACHINE = "h3ulcb" SOC_FAMILY = "r8a7795" VIRTUAL_KERNEL = "linux-renesas" # Remove x11 (Not yet tested wayland with x11) DISTRO_FEATURES_remove = "x11" IMAGE_INSTALL_remove = "libx11-locale"
っ ターゲットcore-image-westonに備えよ!
- glib-2.0のクロスコンパイル環境をなんとかする(GSTやGTK+のビルドエラーを回避)
パッチその1
diff --git a/recipes-debian/glib-2.0/glib-2.0_debian.bb b/recipes-debian/glib-2.0/glib-2.0_debian.bb index 6254d7e7..fb7f4679 100644 --- a/recipes-debian/glib-2.0/glib-2.0_debian.bb +++ b/recipes-debian/glib-2.0/glib-2.0_debian.bb @@ -1,7 +1,7 @@ # -# base recipe: meta/recipes-core/glib-2.0/glib-2.0_2.56.1.bb -# base branch: master -# base commit: 63a4ff7cf5f7d1671ab85800bc2212dd9cd9748d +# base recipe: meta/recipes-core/glib-2.0/glib-2.0_2.56.3.bb +# base branch: warrior +# base commit: 4edf4eb9cc86fbd4b51240fae527c1b97a7ace74 # require recipes-core/glib-2.0/glib.inc @@ -17,6 +17,8 @@ SRC_URI += " \ file://Enable-more-tests-while-cross-compiling.patch \ file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \ file://0010-Do-not-hardcode-python-path-into-various-tools.patch \ + file://0001-Revert-Use-absolute-paths-in-pkg-config-files.patch \ + file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \ file://0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch \ file://glib-meson.cross \
パッチその2
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch index ede29c90ba..94a10582ff 100644 --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch @@ -22,7 +22,7 @@ index 85d8b14..657720a 100644 'schemasdir=' + join_paths('${datadir}', schemas_subdir), 'bindir=' + join_paths('${prefix}', get_option('bindir')), 'giomoduledir=' + giomodulesdir, -- 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'), +- 'glib_compile_schemas=' + join_paths('${libdir}', 'glib-2.0', 'glib-compile-schemas'), - 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'), - 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen')], + 'glib_compile_schemas=glib-compile-schemas',
パッチその3
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Revert-Use-absolute-paths-in-pkg-config-files.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Revert-Use-absolute-paths-in-pkg-config-files.patch index f0c5d84ba7..a9b99cb019 100644 --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Revert-Use-absolute-paths-in-pkg-config-files.patch +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Revert-Use-absolute-paths-in-pkg-config-files.patch @@ -32,7 +32,7 @@ index d67e80839..526f0daa0 100644 schemasdir=${datadir}/glib-2.0/schemas -bindir=@bindir@ giomoduledir=@GIO_MODULE_DIR@ --glib_compile_schemas=${bindir}/glib-compile-schemas +-glib_compile_schemas=@libdir@/glib-2.0/glib-compile-schemas -glib_compile_resources=${bindir}/glib-compile-resources -gdbus_codegen=${bindir}/gdbus-codegen +glib_compile_schemas=glib-compile-schemas
- kernel-module-glesのツールチェーンの名前に由来するエラーを1件回避
パッチその4
diff --git a/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bb b/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bb index 844b41f..52552eb 100644 --- a/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bb +++ b/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bb @@ -39,6 +39,7 @@ EXTRA_OEMAKE += "CROSS_COMPILE=${CROSS_COMPILE}" KERNEL_MODULE_PACKAGE_SUFFIX = "" module_do_compile() { + cp ${S}/build/linux/config/compilers/aarch64-poky-linux.mk ${S}/build/linux/config/compilers/aarch64-deby-linux.mk unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS cd ${KBUILD_DIR} oe_runmake
っ いざ!BITBAKE!!
ビルドビルドビルド
$ bitbake core-image-weston
- 出来上がったイメージをSDカードに展開
- ボード構成に合わせたDTBのコピーも忘れずに
起動したらroot(パスワードなし)でログインできます。
Debian GNU/Linux 10 localhost ttySC0 localhost login: root Feb 18 04:45:25 localhost authpriv.err login[3330]: pam_lastlog(login:session): unable to open /var/log/lastlog: Read-only file system The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Feb 18 04:45:25 localhost authpriv.info login[3330]: pam_unix(login:session): session opened for user root by LOGIN(uid=0) Feb 18 04:45:25 localhost authpriv.notice login[3351]: ROOT LOGIN on '/dev/ttySC0' #
ENJOY!