Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

っ メタメタ 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パッケージ
  • 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に備えよ!

  1. glib-2.0のクロスコンパイル環境をなんとかする(GSTやGTK+のビルドエラーを回避)
    1. パッチその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. パッチその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. パッチその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
  2. kernel-module-glesのツールチェーンの名前に由来するエラーを1件回避
    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!

  • No labels