Difference between revisions of "R-Car/Boards/Yocto-Gen3/v4.1.0"

From eLinux.org
Jump to: navigation, search
(Update to support GFX package)
Line 13: Line 13:
  
 
{{Note}}
 
{{Note}}
<span style="color: #FF0000; font-size: 1.5em;">This version does not support GFX/MMP.<span>
+
<span style="color: #FF0000; font-size: 1.5em;">
 +
This version does not support Wayland/weston and Multimedia Packages.<br/>
 +
<span>
 +
 
  
 
== Topic ==
 
== Topic ==
Line 26: Line 29:
  
 
== Required packages ==
 
== Required packages ==
<!--
+
 
# Download evaluation version of proprietary graphics and multimedia drivers from Renesas.
+
<!-- # Download evaluation version of proprietary graphics and multimedia drivers from Renesas. -->
#: To download Multimedia and Graphics library and related Linux drivers, please use the following link:
+
# Download evaluation version of proprietary graphics package from Renesas.
 +
<!-- #: To download Multimedia and Graphics library and related Linux drivers, please use the following link: -->
 +
#: To download Graphics library and related Linux drivers, please use the following link:
 
#:: https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard.html
 
#:: https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard.html
 
#: Download two files:
 
#: Download two files:
#:: R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip
+
#:: R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
#:: R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip
+
#:: R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
#: <br/>
+
<!-- #: <br/> -->
#: Graphic drivers are required for Wayland. Multimedia drivers are optional.
+
<!-- #: Graphic drivers are required for Wayland. Multimedia drivers are optional. -->
-->
+
 
 
# Install required packages
 
# Install required packages
 
#: '''Ubuntu and Debian'''
 
#: '''Ubuntu and Debian'''
Line 59: Line 64:
 
This example is for H3ULCB board.<br/>
 
This example is for H3ULCB board.<br/>
 
If you use other board, you need to modify the script.<br/>
 
If you use other board, you need to modify the script.<br/>
<!-- Yocto BSP v4.1.0 supports only BSP and not supports gfx/mmp now
 
 
# Directory Structure
 
# Directory Structure
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
|--build.sh
 
|--build.sh
 
`--proprietary
 
`--proprietary
   |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip
+
   |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
   `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip
+
   `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
 
</syntaxhighlight>
 
</syntaxhighlight>
 
# Build script(build.sh)
 
# Build script(build.sh)
Line 109: Line 113:
  
 
# Populate meta-renesas with proprietary software packages
 
# Populate meta-renesas with proprietary software packages
 +
cd ${PROPRIETARY_DIR}
 +
unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
 +
unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
 
cd ${WORK}/meta-renesas
 
cd ${WORK}/meta-renesas
sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f ${WORK}/../proprietary
+
sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f ${PROPRIETARY_DIR}
  
 
cd ${WORK}
 
cd ${WORK}
Line 116: Line 123:
  
 
#cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/bsp/*.conf ./conf/
 
#cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/bsp/*.conf ./conf/
#cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/gfx/*.conf ./conf/
+
cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/gfx-only/*.conf ./conf/
cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/mmp/*.conf ./conf/
+
#cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/mmp/*.conf ./conf/
  
 
cd ${WORK}/build
 
cd ${WORK}/build
 
cp conf/local-wayland.conf conf/local.conf
 
cp conf/local-wayland.conf conf/local.conf
echo 'DISTRO_FEATURES_append = " use_eva_pkg"' >> ${WORK}/build/conf/local.conf
 
  
 
bitbake core-image-weston
 
bitbake core-image-weston
 
</syntaxhighlight>
 
-->
 
# Build script(build.sh)
 
#: <syntaxhighlight lang="bash">
 
#!/bin/bash
 
 
BOARD_LIST=("h3ulcb" "m3ulcb")
 
TARGET_BOARD=$1
 
PROPRIETARY_DIR=`pwd`/proprietary
 
WORK=`pwd`/${TARGET_BOARD}
 
 
Usage () {
 
    echo "Usage: $0 \${TARGET_BOARD_NAME}"
 
    echo "BOARD_NAME list: "
 
    for i in ${BOARD_LIST[@]}; do echo "  - $i"; done
 
    exit
 
}
 
 
# Check Param.
 
if ! `IFS=$'\n'; echo "${BOARD_LIST[*]}" | grep -qx "${TARGET_BOARD}"`; then
 
    Usage
 
fi
 
 
mkdir -p ${WORK}
 
cd ${WORK}
 
 
# Clone basic Yocto layers in parallel
 
git clone git://git.yoctoproject.org/poky &
 
git clone git://git.openembedded.org/meta-openembedded &
 
git clone git://github.com/renesas-rcar/meta-renesas &
 
 
# Wait for all clone operations
 
wait
 
 
# Switch to proper branches/commits
 
cd ${WORK}/poky
 
git checkout -b tmp 5e1f52edb7a9f790fb6cb5d96502f3690267c1b1
 
cd ${WORK}/meta-openembedded
 
git checkout -b tmp 9e60d30669a2ad0598e9abf0cd15ee06b523986b
 
cd ${WORK}/meta-renesas
 
git checkout -b tmp f6ccae7cfb669937aac221ff5cb6a13b36eff951
 
 
cd ${WORK}
 
source poky/oe-init-build-env ${WORK}/build
 
 
cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/bsp/*.conf ./conf/
 
cd ${WORK}/build
 
 
bitbake core-image-minimal
 
  
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 210: Line 166:
 
#: Another versions are not tested for compatibility.
 
#: Another versions are not tested for compatibility.
 
#: Legacy BSP instruction can be found here [[R-Car/Boards/Yocto-Gen3-legacy | R-Car Yocto Gen3 legacy]]
 
#: Legacy BSP instruction can be found here [[R-Car/Boards/Yocto-Gen3-legacy | R-Car Yocto Gen3 legacy]]
<!-- Yocto BSP v4.1.0 supports only BSP and not supports gfx/mmp now
 
 
# Download proprietary driver modules to $WORK/proprietary folder
 
# Download proprietary driver modules to $WORK/proprietary folder
 
#: You should see the following files:
 
#: You should see the following files:
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
$ ls -1 $WORK/proprietary/*.zip
 
$ ls -1 $WORK/proprietary/*.zip
R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip
+
R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip
+
R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
 
</syntaxhighlight>
 
</syntaxhighlight>
 
# Populate meta-renesas with proprietary software packages.
 
# Populate meta-renesas with proprietary software packages.
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
export PKGS_DIR=$WORK/proprietary
 
export PKGS_DIR=$WORK/proprietary
 +
cd $PKGS_DIR
 +
unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
 +
unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
 
cd $WORK/meta-renesas
 
cd $WORK/meta-renesas
sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR
+
sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f $PKGS_DIR
 
unset PKGS_DIR
 
unset PKGS_DIR
 
</syntaxhighlight>
 
</syntaxhighlight>
-->
 
 
# Setup build environment
 
# Setup build environment
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
Line 232: Line 189:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
# Prepare default configuration files.
 
# Prepare default configuration files.
<!-- Yocto BSP v4.1.0 supports only BSP and not supports gfx/mmp now
 
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/<h3ulcb|m3ulcb>/poky-gcc/mmp/*.conf ./conf/
+
cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/<h3ulcb|m3ulcb>/poky-gcc/gfx-only/*.conf ./conf/
 
cd $WORK/build
 
cd $WORK/build
 
cp conf/local-wayland.conf conf/local.conf
 
cp conf/local-wayland.conf conf/local.conf
 
</syntaxhighlight>
 
</syntaxhighlight>
-->
 
#: <syntaxhighlight lang="bash">
 
cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/<h3ulcb|m3ulcb>/poky-gcc/bsp/*.conf ./conf/
 
</syntaxhighlight>
 
<!-- Yocto BSP v4.1.0 supports only BSP and not supports gfx/mmp now
 
# (Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support)
 
# Edit local.conf with evaluation packages requirements:
 
#: <syntaxhighlight lang="bash">
 
DISTRO_FEATURES_append = " use_eva_pkg"
 
</syntaxhighlight>
 
-->
 
 
# Start the build
 
# Start the build
<!-- Yocto BSP v4.1.0 supports only BSP and not supports gfx/mmp now
 
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
bitbake core-image-weston
 
bitbake core-image-weston
</syntaxhighlight>
 
-->
 
#: <syntaxhighlight lang="bash">
 
bitbake core-image-minimal
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
# Building image can take up to a few hours depending on your host system performance.<br>After the build has been completed successfully, you should see the output similar to:
 
# Building image can take up to a few hours depending on your host system performance.<br>After the build has been completed successfully, you should see the output similar to:
Line 264: Line 204:
 
#: and the command prompt should return.
 
#: and the command prompt should return.
 
# Bitbake has generated all the necessary files in ./tmp/deploy/images directory. <br/>You can verify its content:
 
# Bitbake has generated all the necessary files in ./tmp/deploy/images directory. <br/>You can verify its content:
<!-- Yocto BSP v4.1.0 supports only BSP and not supports gfx/mmp now
 
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
$ ls -1 `find ./tmp/deploy/images/h3ulcb/ -maxdepth 1 -type l -print`
 
$ ls -1 `find ./tmp/deploy/images/h3ulcb/ -maxdepth 1 -type l -print`
Line 274: Line 213:
 
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.tar.gz
 
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.tar.gz
 
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.testdata.json
 
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.testdata.json
./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz
 
./tmp/deploy/images/h3ulcb/r8a7795-es1-h3ulcb-h3ulcb.dtb
 
./tmp/deploy/images/h3ulcb/r8a7795-es1-h3ulcb.dtb
 
./tmp/deploy/images/h3ulcb/r8a7795-h3ulcb-4x2g-h3ulcb.dtb
 
./tmp/deploy/images/h3ulcb/r8a7795-h3ulcb-4x2g.dtb
 
./tmp/deploy/images/h3ulcb/r8a7795-h3ulcb-h3ulcb.dtb
 
./tmp/deploy/images/h3ulcb/r8a7795-h3ulcb.dtb
 
./tmp/deploy/images/h3ulcb/u-boot-elf-h3ulcb-4x2g.srec
 
./tmp/deploy/images/h3ulcb/u-boot-elf-h3ulcb.srec
 
./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin
 
./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin-r8a7795_h3ulcb
 
./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin-r8a7795_h3ulcb-4x2g
 
./tmp/deploy/images/h3ulcb/u-boot.bin
 
./tmp/deploy/images/h3ulcb/u-boot.bin-r8a7795_h3ulcb
 
./tmp/deploy/images/h3ulcb/u-boot.bin-r8a7795_h3ulcb-4x2g
 
</syntaxhighlight>
 
-->
 
#: <syntaxhighlight lang="bash">
 
$ ls -1 `find ./tmp/deploy/images/h3ulcb/ -maxdepth 1 -type l -print`
 
./tmp/deploy/images/h3ulcb/Image
 
./tmp/deploy/images/h3ulcb/Image-h3ulcb.bin
 
./tmp/deploy/images/h3ulcb/core-image-minimal-h3ulcb.ext4
 
./tmp/deploy/images/h3ulcb/core-image-minimal-h3ulcb.manifest
 
./tmp/deploy/images/h3ulcb/core-image-minimal-h3ulcb.tar.bz2
 
./tmp/deploy/images/h3ulcb/core-image-minimal-h3ulcb.tar.gz
 
./tmp/deploy/images/h3ulcb/core-image-minimal-h3ulcb.testdata.json
 
 
./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz
 
./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz
 
./tmp/deploy/images/h3ulcb/r8a7795-es1-h3ulcb-h3ulcb.dtb
 
./tmp/deploy/images/h3ulcb/r8a7795-es1-h3ulcb-h3ulcb.dtb

Revision as of 23:36, 22 September 2020


Introduction

This page contains information on building and running Yocto on:

NOTE: USE OFFICIAL DOCUMENTATION provided with R-Car BSPs FOR H3SK/M3SK boards

Note Note: This version does not support Wayland/weston and Multimedia Packages.


Topic

R-Car Starter Kit is available

R-Car Starter Kit information
Board Name SoC version Hardware information Where to buy
R-Car Starter Kit Premier (H3) v3.0 Click here Click here
R-Car Starter Kit Pro (M3) v3.0 Click here Click here

R-Car Starter Kit Premier(H3 v3.0) Manufacturing Plan

  • 1st lot : Jul, 2020 (Sold Out)
  • 2nd lot : Oct, 2020 (For Sale)
  • 3rd lot : Dec, 2020 (Under manufacturing)

    R-Car Starter Kit Pro(M3 v3.0) Manufacturing Plan

  • 1st lot : Jul, 2020 (Sold out)
  • 2nd lot : Sep, 2020 (For sale)
  • 3rd lot : Under planning

    SW Release Information

    Board name SW name Release date Note
    R-Car Starter Kit ( Premier / Pro ) Yocto v4.1.0 2020/08/06 This version does not support MMP.
    GFX(except for Wayland/weston) is supported from 2020/09/23.
    Yocto v3.21.0 2019/07/09 New R-Car Starter Kit Pro(RTP8J77961ASKB0SK0SA05A) is supported from 2020/07/10.
    Kingfisher Infotainment Board Android P [New!!] 2020/09/29 Only R-Car Starter Kit Premier(R-Car H3) + Kingfisher is supported.
    Yocto v3.21.0 2019/08/07 To check for latest information, please refer to the meta-rcar.
    New R-Car Starter Kit Pro(RTP8J77961ASKB0SK0SA05A) is supported from 2020/08/02.
    Yocto v4.1.0 2020/10/23 This version does not support MMP.

    [Note]:
    Currently, when you download the package from the following site, the file name is automatically changed.
    https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard.html
    See the "Required packages" chapter on each page.



    Yocto versions

    Poky-3.0.2 is supported with Yocto v4.1.0.
    Specific commit of meta-openembedded is required.

    Host PC

    Ubuntu 16.04 LTS (64bit) is recommended as OS. 32bit version is not supported.

    Required packages

    1. Download evaluation version of proprietary graphics package from Renesas.
      To download Graphics library and related Linux drivers, please use the following link:
      https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard.html
      Download two files:
      R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
      R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
    1. Install required packages
      Ubuntu and Debian
      sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
           build-essential chrpath socat libsdl1.2-dev xterm python-crypto cpio python python3 \
           python3-pip python3-pexpect xz-utils debianutils iputils-ping libssl-dev
      
      Fedora
      sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
           diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
           ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \
           SDL-devel xterm python-crypto cpio python python3 python3-pip python3-pexpect \
           ghc-lzma-conduit iputils openssl
      
      Refer to Yocto Project Quick Start for more information.

    Building the BSP for Renesas H3 Starter Kit, M3 Starter Kit

    NOTE: to have ADAS View and HAD Solution kits supported follow instructions: R-Car Yocto Gen3 ADAS

    Build using script

    This example is for H3ULCB board.
    If you use other board, you need to modify the script.

    1. Directory Structure
      |--build.sh
      `--proprietary
         |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
         `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
      
    2. Build script(build.sh)
      #!/bin/bash
      
      BOARD_LIST=("h3ulcb" "m3ulcb")
      TARGET_BOARD=$1
      PROPRIETARY_DIR=`pwd`/proprietary
      WORK=`pwd`/${TARGET_BOARD}
      
      Usage () {
          echo "Usage: $0 \${TARGET_BOARD_NAME}"
          echo "BOARD_NAME list: "
          for i in ${BOARD_LIST[@]}; do echo "  - $i"; done
          exit
      }
      
      # Check Param.
      if ! `IFS=$'\n'; echo "${BOARD_LIST[*]}" | grep -qx "${TARGET_BOARD}"`; then
          Usage
      fi
      
      # Create a directory and switch to it
      mkdir -p ${WORK}
      cd ${WORK}
      
      # Clone basic Yocto layers in parallel
      git clone git://git.yoctoproject.org/poky &
      git clone git://git.openembedded.org/meta-openembedded &
      git clone git://github.com/renesas-rcar/meta-renesas &
      
      # Wait for all clone operations
      wait
      
      # Switch to proper branches/commits
      cd ${WORK}/poky
      git checkout -b tmp 5e1f52edb7a9f790fb6cb5d96502f3690267c1b1
      cd ${WORK}/meta-openembedded
      git checkout -b tmp 9e60d30669a2ad0598e9abf0cd15ee06b523986b
      cd ${WORK}/meta-renesas
      git checkout -b tmp f6ccae7cfb669937aac221ff5cb6a13b36eff951
      
      # Populate meta-renesas with proprietary software packages
      cd ${PROPRIETARY_DIR}
      unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
      unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
      cd ${WORK}/meta-renesas
      sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f ${PROPRIETARY_DIR}
      
      cd ${WORK}
      source poky/oe-init-build-env ${WORK}/build
      
      #cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/bsp/*.conf ./conf/
      cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/gfx-only/*.conf ./conf/
      #cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/mmp/*.conf ./conf/
      
      cd ${WORK}/build
      cp conf/local-wayland.conf conf/local.conf
      
      bitbake core-image-weston
      
    3. build
      ./build.sh <target_board_name>
      
      If the build completes successfully, all the necessary files are generated in a following directory:
      ./<target_board_name>/build/tmp/deploy/images/<target_board_name>
      

    Build using manual steps

    1. Create a directory and switch to it
      Warning! Yocto builds require a lot of disk space (up to 100 GB). Make sure you have got enough before starting the build.
      mkdir build
      cd build
      export WORK=`pwd`
      
    2. Clone basic Yocto layers:
      cd $WORK
      git clone git://git.yoctoproject.org/poky
      git clone git://git.openembedded.org/meta-openembedded
      git clone git://github.com/renesas-rcar/meta-renesas
      
    3. Switch to proper branches/commits
      cd $WORK/poky
      git checkout -b tmp 5e1f52edb7a9f790fb6cb5d96502f3690267c1b1
      cd $WORK/meta-openembedded
      git checkout -b tmp 9e60d30669a2ad0598e9abf0cd15ee06b523986b
      cd $WORK/meta-renesas
      git checkout -b tmp f6ccae7cfb669937aac221ff5cb6a13b36eff951
      
      Another versions are not tested for compatibility.
      Legacy BSP instruction can be found here R-Car Yocto Gen3 legacy
    4. Download proprietary driver modules to $WORK/proprietary folder
      You should see the following files:
      $ ls -1 $WORK/proprietary/*.zip
      R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
      R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
      
    5. Populate meta-renesas with proprietary software packages.
      export PKGS_DIR=$WORK/proprietary
      cd $PKGS_DIR
      unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20200910.zip
      unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20200910.zip
      cd $WORK/meta-renesas
      sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f $PKGS_DIR
      unset PKGS_DIR
      
    6. Setup build environment
      cd $WORK
      source poky/oe-init-build-env $WORK/build
      
    7. Prepare default configuration files.
      cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/<h3ulcb|m3ulcb>/poky-gcc/gfx-only/*.conf ./conf/
      cd $WORK/build
      cp conf/local-wayland.conf conf/local.conf
      
    8. Start the build
      bitbake core-image-weston
      
    9. Building image can take up to a few hours depending on your host system performance.
      After the build has been completed successfully, you should see the output similar to:
      NOTE: Tasks Summary: Attempted 4704 tasks of which 31 didn't need to be rerun and all succeeded.
      
      and the command prompt should return.
    10. Bitbake has generated all the necessary files in ./tmp/deploy/images directory.
      You can verify its content:
      $ ls -1 `find ./tmp/deploy/images/h3ulcb/ -maxdepth 1 -type l -print`
      ./tmp/deploy/images/h3ulcb/Image
      ./tmp/deploy/images/h3ulcb/Image-h3ulcb.bin
      ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.ext4
      ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.manifest
      ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.tar.bz2
      ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.tar.gz
      ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.testdata.json
      ./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz
      ./tmp/deploy/images/h3ulcb/r8a7795-es1-h3ulcb-h3ulcb.dtb
      ./tmp/deploy/images/h3ulcb/r8a7795-es1-h3ulcb.dtb
      ./tmp/deploy/images/h3ulcb/r8a7795-h3ulcb-4x2g-h3ulcb.dtb
      ./tmp/deploy/images/h3ulcb/r8a7795-h3ulcb-4x2g.dtb
      ./tmp/deploy/images/h3ulcb/r8a7795-h3ulcb-h3ulcb.dtb
      ./tmp/deploy/images/h3ulcb/r8a7795-h3ulcb.dtb
      ./tmp/deploy/images/h3ulcb/u-boot-elf-h3ulcb-4x2g.srec
      ./tmp/deploy/images/h3ulcb/u-boot-elf-h3ulcb.srec
      ./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin
      ./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin-r8a7795_h3ulcb
      ./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin-r8a7795_h3ulcb-4x2g
      ./tmp/deploy/images/h3ulcb/u-boot.bin
      ./tmp/deploy/images/h3ulcb/u-boot.bin-r8a7795_h3ulcb
      ./tmp/deploy/images/h3ulcb/u-boot.bin-r8a7795_h3ulcb-4x2g
      
      Image is a Kernel image, *.dtb is a blob file, core-image-<image_type>-<board_name>.tar.bz2 is the rootfs, modules-<board_name>.tgz are kernel modules.
    11. You can now proceed with running Yocto images

    Build SDK

    • After building BSP you may build SDK:
      bitbake core-image-weston -c populate_sdk
      
    • After build finished the SDK installation script may be found in following path:
      tmp/deploy/sdk/poky-glibc-x86_64-core-image-weston-aarch64-toolchain-*.sh
      
    • Install SDK by run the following command and follow instructions on the screen:
      ./tmp/deploy/sdk/poky-glibc-x86_64-core-image-weston-aarch64-toolchain-*.sh
      

    Running Yocto images

    Linux kernel can be booted from microSD card or from TFTP. Root FS can be mounted from micro SD card or via NFS.

    Loading kernel via TFTP and rootfs via NFS

    Follow these steps to setup working TFTP and NFS server:

    1. Setup a TFTP server.
      Ubuntu
      Install tftpd-hpa package along with tftp tools:
      sudo apt-get install tftp tftpd-hpa
      
      Fedora
      1. Install necessary packages:
        sudo yum install tftp-server tftp
        
        tftp-server is a part of xinetd. See Fedora manual for more information.
      2. Enable TFTP server:
        sudo vi /etc/xinetd.d/tftp
        
        Set
        disable = no
        
        Save file and exit.
      3. Start xinetd:
        sudo systemctl start xinetd.service
        sudo systemctl enable xinetd.service
        
    2. Copy Image and XXXX.dtb from $WORK/build/tmp/deploy/images/<board_name>/ to TFTP server root.
      Ubuntu
      cp $WORK/build/tmp/deploy/images/h3ulcb/Image /srv/tftp/
      cp $WORK/build/tmp/deploy/images/h3ulcb/XXXX.dtb /srv/tftp/
      
      Fedora
      cp $WORK/build/tmp/deploy/images/h3ulcb/Image /var/lib/tftpboot/
      cp $WORK/build/tmp/deploy/images/h3ulcb/XXXX.dtb /var/lib/tftpboot/
      
      Which version is my H3SK board?
    3. Verify that TFTP server is working.
      tftp localhost -c get Image && ls Image
      
    4. Setup NFS server.
      Debian/Ubuntu
      1. Install necessary packages:
        sudo apt-get install nfs-kernel-server nfs-common
        
      2. Start NFS server:
        sudo /etc/init.d/nfs-kernel-server start
        
      Fedora
      1. Install necessary packages:
        • sudo yum install nfs-utils
          
      2. Enable and start nfs server:
        sudo systemctl enable rpcbind.service 
        sudo systemctl enable nfs-server.service 
        sudo systemctl enable nfs-lock.service 
        sudo systemctl enable nfs-idmap.service
        sudo systemctl start rpcbind.service 
        sudo systemctl start nfs-server.service 
        sudo systemctl start nfs-lock.service 
        sudo systemctl start nfs-idmap.service
        
    5. Export root FS to NFS. (Change IMAGE and MACHINE to fit your build).
      1. Unpack rootfs to a dedicated directory:
        IMAGE=weston
        MACHINE=h3ulcb|m3ulcb
        NFS_ROOT=/nfs/${MACHINE}
        sudo mkdir -p "${NFS_ROOT}"
        sudo rm -rf "${NFS_ROOT}"/*
        sudo tar -xjf "${WORK}/build/tmp/deploy/images/${MACHINE}/core-image-${IMAGE}-${MACHINE}-*.tar.bz2" -C "${NFS_ROOT}"
        sync
        
      2. Edit /etc/exports:
        sudo vi /etc/exports
        
        add
        /nfs/h3ulcb	*(rw,no_subtree_check,sync,no_root_squash,no_all_squash)
        /nfs/m3ulcb	*(rw,no_subtree_check,sync,no_root_squash,no_all_squash)
        
        Save the file and exit.
      3. Force NFS server to re-read /etc/exports
        sudo exportfs -a
        
    6. Verify that NFS is working.
      [builduser@buildmachine ~]$ showmount -e localhost
      Export list for localhost:
      /nfs/h3ulcb *
      /nfs/m3ulcb *
      
    7. Boot into U-Boot command prompt
      1. Connect to serial console over microUSB using minicom or picocom.
      2. Switch the board on or reset it. Press any key to stop U-Boot automatic countdown.
      Refer to H3SK board page, M3SK board page for more information.
    8. Configure Ethernet, TFTP, and kernel command line in U-Boot:
      setenv ipaddr <board-ip>
      setenv serverip <your-computer-ip>
      setenv dtb <your-dtb-file-name>
      setenv bootcmd 'tftp 0x48080000 Image; tftp 0x48000000 ${dtb}; booti 0x48080000 - 0x48000000'
      setenv bootargs 'ignore_loglevel rw root=/dev/nfs nfsroot=<your-computer-ip>:<nfs-path>,nfsvers=3 ip=<board-ip>:<your-computer-ip>::255.255.255.0:h3ulcb'
      saveenv
      
      Replace <board-ip> with the proper IP address for the board. Replace <your-computer-ip> with the IP address of your computer, where tftp and nfs servers are installed. Replace <nfs-path> with the exported path of the root FS.
      For example:
      setenv ipaddr 192.168.1.3
      setenv serverip 192.168.1.2
      setenv dtb r8a7795-h3ulcb.dtb
      setenv bootcmd 'tftp 0x48080000 Image; tftp 0x48000000 ${dtb}; booti 0x48080000 - 0x48000000'
      setenv bootargs 'ignore_loglevel rw root=/dev/nfs nfsroot=192.168.1.2:/nfs/h3ulcb,nfsvers=3 ip=192.168.1.3:192.168.1.2::255.255.255.0:h3ulcb'
      saveenv
      
      You can also use
      dhcp
      
      command to obtain information from DHCP server.
      Note: You can always see the environment with printenv command. Refer to U-Boot manual for details.
    9. Verify the connection over Ethernet from U-Boot:
      ping <your-computer-ip>
      
      You should see:
      => ping 192.168.1.2
      ravb:0 is connected to ravb.  Reconnecting to ravb
      ravb Waiting for PHY auto negotiation to complete.. done
      ravb: 100Base/Full
      Using ravb device
      host 192.168.1.2 is alive
      
    10. Reset the board by pushing reset button
      Refer to H3SK board page, M3SK board page for more information.
    11. The board should boot the kernel:
      [    0.000147] NOTICE:  BL2: R-Car H3 Initial Program Loader(CA57)
      [    0.004584] NOTICE:  BL2: Initial Program Loader(Rev.2.0.6)
      [    0.010117] NOTICE:  BL2: PRR is R-Car H3 Ver.3.0
      [    0.014786] NOTICE:  BL2: Board is Starter Kit Rev.2.0
      [    0.019898] NOTICE:  BL2: Boot device is HyperFlash(80MHz)
      [    0.025325] NOTICE:  BL2: LCM state is CM
      [    0.029366] NOTICE:  BL2: AVS setting succeeded. DVFS_SetVID=0x53
      [    0.035342] NOTICE:  BL2: CH0: 0x400000000 - 0x47fffffff, 2 GiB
      [    0.041203] NOTICE:  BL2: CH1: 0x500000000 - 0x57fffffff, 2 GiB
      [    0.047078] NOTICE:  BL2: CH2: 0x600000000 - 0x67fffffff, 2 GiB
      [    0.052954] NOTICE:  BL2: CH3: 0x700000000 - 0x77fffffff, 2 GiB
      [    0.058843] NOTICE:  BL2: DDR3200(rev.0.40)
      [    0.074243] NOTICE:  BL2: [COLD_BOOT]
      [    0.083820] NOTICE:  BL2: DRAM Split is 4ch(DDR f)
      [    0.087119] NOTICE:  BL2: QoS is default setting(rev.0.11)
      [    0.092563] NOTICE:  BL2: DRAM refresh interval 1.95 usec
      [    0.097919] NOTICE:  BL2: Periodic Write DQ Training
      [    0.102951] NOTICE:  BL2: v1.5(release):af9f429
      [    0.107337] NOTICE:  BL2: Built : 07:10:13, Jul 15 2020
      [    0.112525] NOTICE:  BL2: Normal boot
      [    0.116165] NOTICE:  BL2: dst=0xe6324100 src=0x8180000 len=512(0x200)
      [    0.122553] NOTICE:  BL2: dst=0x43f00000 src=0x8180400 len=6144(0x1800)
      [    0.129184] NOTICE:  BL2: dst=0x44000000 src=0x81c0000 len=65536(0x10000)
      [    0.136402] NOTICE:  BL2: dst=0x44100000 src=0x8200000 len=1048576(0x100000)
      [    0.151227] NOTICE:  BL2: dst=0x50000000 src=0x8640000 len=1048576(0x100000)
      [    0.165206] NOTICE:  BL2: Booting BL31
      
      
      U-Boot 2020.01 (Jul 15 2020 - 06:40:13 +0000)
      
      CPU: Renesas Electronics R8A7795 rev 3.0
      Model: Renesas H3ULCB board based on r8a7795 ES2.0+ with 8GiB (4 x 2 GiB)
      DRAM:  7.9 GiB
      Bank #0: 0x048000000 - 0x0bfffffff, 1.9 GiB
      Bank #1: 0x500000000 - 0x57fffffff, 2 GiB
      Bank #2: 0x600000000 - 0x67fffffff, 2 GiB
      Bank #3: 0x700000000 - 0x77fffffff, 2 GiB
      
      MMC:   sd@ee100000: 0, sd@ee140000: 1
      Loading Environment from MMC... OK
      In:    serial@e6e88000
      Out:   serial@e6e88000
      Err:   serial@e6e88000
      Net:   eth0: ethernet@e6800000
      Hit any key to stop autoboot:  0
      Using ethernet@e6800000 device
      TFTP from server 192.168.0.1; our IP address is 192.168.0.2
      Filename '/Image'.
      Load address: 0x48080000
      Loading: #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               #################################################################
               ##########################################################
               781.3 KiB/s
      done
      Bytes transferred = 27556352 (1a47a00 hex)
      Using ethernet@e6800000 device
      TFTP from server 192.168.0.1; our IP address is 192.168.0.2
      Filename '/r8a7795-h3ulcb-4x2g.dtb'.
      Load address: 0x48000000
      Loading: ######
               744.1 KiB/s
      done
      Bytes transferred = 76285 (129fd hex)
      ## Flattened Device Tree blob at 48000000
         Booting using the fdt blob at 0x48000000
         Loading Device Tree to 0000000053fea000, end 0000000053fff9fc ... OK
      
      Starting kernel ...
      

    Loading kernel and rootfs via eMMC/SD card

    This section describes steps that are necessary for preparing and booting from SD card.

    Preparing eMMC/SD card

    In order to prepare you SD card, follow these instructions on host machine:

    1. Partion your SD card to set 1 partition and ID=83 (Linux)
      Make sure the SD card doesn't contain any important files.
      WARNING! These steps may erase the SD card completely. All files my be lost.
      $ fdisk /dev/mmcblk0
      -> d
      -> n
      -> p
      -> 1
      -> t
      -> 83
      
    2. Format this partition to ext3 (or ext4)
      $ mkfs.ext3 /dev/mmcblk0p1
      
    3. Mount this partition on your host to any directory and upack the core-image-*.tar.bz2 into mounted folder. And Copy Image and XXXX.dtb from $WORK/build/tmp/deploy/images/<board_name>/ to sd card /boot.
      $ mount /dev/mmcblk0p1 /mnt
      $ cd <your_yocto_build_directory>
      $ IMAGE=weston
      $ MACHINE=h3ulcb|m3ulcb
      $ tar xfj  build/tmp/deploy/images/${MACHINE}/core-image-${IMAGE}-${MACHINE}-*.rootfs.tar.bz2  -C /mnt
      $ cp $WORK/build/tmp/deploy/images/${MACHINE}/XXXX.dtb /mnt/boot/
      
      NOTE: probably you need to be a root user, hence use "sudo"

    Configure U-Boot to boot from SD card

    • Proper U-Boot command to boot from SD:
      # setenv bootargs 'rw root=/dev/mmcblk1p1 rootwait'
      # ext2load mmc 0:1 0x48080000 /boot/Image
      # ext2load mmc 0:1 0x48000000 /boot/XXXX.dtb
      # booti 0x48080000 - 0x48000000
      
      Note from user:
      When I created my image with mkfs.ext3, and booted with rootfstype=ext3, the kernel could not find mount the filesystem.
      The kernel boot gave an error message:
      "EXT4-fs (mmcblk1p1): couldn't mount as ext3 due to feature incompatibilities".
      I switched to 'rootfstype=ext4' in my bootargs, and the kernel booted OK.
    • Example of U-Boot environment variables:
      baudrate=115200
      bootargs_emmc=rw root=/dev/mmcblk0p1 rootwait
      bootargs_nfs=rw root=/dev/nfs rootwait ip=dhcp
      bootargs_sd0=rw root=/dev/mmcblk1p1 rootwait
      bootcmd=run bootcmd_sd0
      bootcmd_emmc=set bootargs ${bootargs_emmc};ext2load mmc 1:1 0x48080000 /boot/Image;ext2load mmc 1:1 0x48000000 /boot/${dtb};run booti_cmd
      bootcmd_nfs=set bootargs ${bootargs_nfs};bootp 0x48080000 Image;tftp 0x48000000 ${dtb};run booti_cmd
      bootcmd_sd0=set bootargs ${bootargs_sd0};ext2load mmc 0:1 0x48080000 /boot/Image;ext2load mmc 0:1 0x48000000 /boot/${dtb};run booti_cmd
      bootdelay=3
      booti_cmd=booti 0x48080000 - 0x48000000
      dtb=r8a7795-h3ulcb.dtb
      ethact=ravb
      ethaddr=2E:09:0A:00:BE:11
      fdt_high=0xffffffffffffffff
      initrd_high=0xffffffffffffffff
      stderr=serial
      stdin=serial
      stdout=serial
      ver=U-Boot 2015.04 (Sep 23 2016 - 13:45:29)<br>
      Environment size: 1092/131068 bytes
      
    • To verify the SD card, type the following in U-Boot prompt:
      => mmc dev 0 
      switch to partitions #0, OK
      mmc0 is current device
      => mmc info
      Device: sd@ee100000
      Manufacturer ID: 3
      OEM: 5344
      Name: SC32G
      Bus Speed: 199999992
      Mode: UHS SDR104 (208MHz)
      Rd Block Len: 512
      SD version 3.0
      High Capacity: Yes
      Capacity: 29.7 GiB
      Bus Width: 4-bit
      Erase Group Size: 512 Bytes
      => ext2ls mmc 0:1 /boot
      <DIR>       4096 .
      <DIR>       4096 ..
              27556352 Image-5.4.0-yocto-standard
      <SYM>         26 Image
                 77264 r8a7795-es1-h3ulcb.dtb
                 76285 r8a7795-h3ulcb-4x2g.dtb
                 76269 r8a7795-h3ulcb.dtb
      

    Q&A site

    http://renesasrulz.com/r-car-h3-m3-cockpit/

    FAQ page

    https://elinux.org/R-Car/Boards/Yocto-Gen3-CommonFAQ

    FAQ

    How do I increase USB bandwidth

    1. Download:
      M3SK File:M3v10 usb20 iso mode.zip
      H3SK WS1.1 (RTP0RC7795SKBX0010SA00) File:H3v11 usb20 iso mode.zip
      H3SK WS2.0 (RTP0RC77951SKBX010SA00) File:H3v20 usb20 iso mode.zip
    2. Setting
      # <Install Driver>
      $ modprobe qos
      # <Change directory to csv path>
      $ cd /path_to_csv
      # <Store QoS parameters to QoS SRAM>
      $ qos_tp setall file.csv
      # <Reflect Qos SRAM to QoS controller>
      $ qos_tp switch
      

    How do access to USB memory from U-boot(Yocto v3.13.0 or later)

    1. Some USB memory may not be recognized.
      => usb start
      starting USB...
      USB0:   USB EHCI 1.10
      scanning bus 0 for devices... EHCI timed out on TD - token=0x80008d80
      
            USB device not accepting new address (error=80000000)
      1 USB Device(s) found
             scanning usb for storage devices... 0 Storage Device(s) found
      =>
      
    2. [How to fix] Set the "usb_pgood_delay 2000" variable
      => setenv usb_pgood_delay 2000
      => saveenv
      => reset
      => usb start
      

    Known issues and limitations

    1. [SW limitation] Yocto v3.4.0 or later doesn't support RTP0RC7795SKBX0010SA00(H3 v1.1 Starter Kit).
      Please use the H3 v2.0 or v3.0 SK
    2. [Known issue] If you encounter a kernel hang-up while using Yocto v3.4.0 or later, please refer to the following pages.
      H3 SK: No.1 of R-Car/Boards/H3SK#Known_Issues
      M3 SK: No.2 of R-Car/Boards/M3SK#Known_Issues
    3. [Known issue] Since kernel cannot boot when eMMC HS400 is enabled, SD/MMC driver supports up to HS200.