R-Car/Boards/CCPF-SK/Yocto-Gen3/v5.5.0
|
Introduction
This page contains information abot building and running Yocto on:
If prebuilt binary of Yocto BSP is needed, please refer to the following:
Topic
EOL Notification of the M3SK
Production of M3SK is discontinued.
See M3SK page for detail.
The new version of R-Car Starter Kit Premier is now on sale !!
- Equipped with R-Car H3e-2G
-
(En) https://www.renesas.com/jp/en/about/press-room/renesas-launches-r-car-gen3e-20-percent-higher-cpu-speed-automotive-infotainment-cockpit-and-digital
(Zh) https://www.renesas.com/jp/zh/about/press-room/renesas-launches-r-car-gen3e-20-percent-higher-cpu-speed-automotive-infotainment-cockpit-and-digital
(Jp) https://www.renesas.com/jp/ja/about/press-room/renesas-launches-r-car-gen3e-20-percent-higher-cpu-speed-automotive-infotainment-cockpit-and-digital
- CPU performance is increased 20% by supporting up to 2GHz frequency over past products.
- You can buy from here.
SW Release Information
Board name | SW name | Release date | Note |
---|---|---|---|
R-Car Starter Kit ( Premier / Pro ) | Yocto v5.9.0 (stable) [New!!] | 2022/02/08 | |
Kingfisher Infotainment Board | Yocto v5.9.0 (stable) [New!!] | 2022/02/14 | To check for latest information, please refer to the meta-rcar/tree/v5.9.0. |
Android 10 (stable) | 2021/07/26 | R-Car Starter Kit Premier(R-Car H3) + Kingfisher is supported. R-Car Starter Kit Pro(RTP8J77961ASKB0SK0SA05A) + Kingfisher is also supported from 2021/11/25. | |
Android P (stable) | 2020/09/29 | R-Car Starter Kit Premier(R-Car H3) + Kingfisher is supported. R-Car Starter Kit Pro(RTP8J77961ASKB0SK0SA05A) + Kingfisher is also supported from 2021/03/16. | |
CCPF-SK Board | Yocto v5.9.0 (stable) [New!!] | 2022/02/08 | Prebuilt binary is available in Quick startup guide page. (Updated on 2022/03/18) |
Software revisions
Software | Revision |
---|---|
Yocto Project | 3.1.8 |
aarch64-poky-linux-gcc (GCC) | 9.3 |
Wayland/Weston | 1.18.0/8.0.0 |
GStreamer | 1.16.3 |
Kernel Ver | 5.10.41 |
Userland 64/32bit | 64 |
U-Boot | 2020.10 |
OP_TEE | 3.13.0 |
OpenGL ES | 3.2 |
Environment
Host PC
Ubuntu 18.04/20.04 LTS (64bit) is recommended as OS. 32bit version is not supported.
Confirmed Board
Board | SoC | Confirmed |
---|---|---|
R-Car Starter Kit Premier | H3e-2G v3.0 | OK |
R-Car Starter Kit Premier | H3 v3.0 (1rank DDR) | OK |
R-Car Starter Kit Premier | H3 v3.0 (2rank DDR) | NT |
R-Car Starter Kit Premier | H3 v2.0 with 8GB DDR | NT |
R-Car Starter Kit Premier | H3 v2.0 with 4GB DDR | NT |
R-Car Starter Kit Pro | M3 v3.0 | OK |
R-Car Starter Kit Pro | M3 v1.0 | NT |
18px <translate> Note:</translate> NT='Not Tested'
See also:
Required packages
- 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 two files:
- R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20210921.zip
- R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20210921.zip
- Graphic drivers are required for Wayland. Multimedia drivers are optional.
- Install required packages
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa \ libsdl1.2-dev pylint3 xterm
- Refer to Yocto Project Quick Start for more information.
Building the BSP for CCPF-SK
What is different between "MMP" and "MMP-dist".
- MMP is minimal BSP which contains GFX/MMP evaluation package.
- MMP-dist is MMP + some additional packages(For debug, development, benchmark, and so on).
- MMP-dist release package(core-image-weston-release) is distributed on R-Car/Boards/CCPF-SK/GettingStarted
MMP case
Using build script
- Directory Structure
|--build.sh `--proprietary |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20210921.zip `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20210921.zip
- Build script(build.sh)
#!/bin/bash BOARD_LIST=("h3ulcb" "m3ulcb") TARGET_BOARD=$1 PROPRIETARY_DIR=`pwd`/proprietary WORK=`pwd`/${TARGET_BOARD} POKY_COMMIT=6ebb33bdaccaeadff0c85aab27acf35723df00d8 META_OE_COMMIT=c38d2a74f762a792046f3d3c377827b08aade513 META_RENESAS_COMMIT=0fe77668f5d9a31a5d10449988c3d8fb8dc475c5 META_RENESAS_CCPF_COMMIT=b49b57d6e68d5cda70aefbed34e06903484c573b GFX_MMP_LIB=R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20210921.zip GFX_MMP_DRIVER=R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20210921.zip Usage () { echo "Usage: $0 \${TARGET_BOARD_NAME}" echo "BOARD_NAME list: " for i in ${BOARD_LIST[@]}; do echo " - $i"; done echo "BUILD_DIR is $BUILD_TYPE" 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 https://github.com/renesas-rcar/meta-renesas & git clone https://github.com/renesas-rcar/meta-renesas-ccpf & # Wait for all clone operations wait # Switch to proper branches/commits cd ${WORK}/poky git checkout -b tmp ${POKY_COMMIT} cd ${WORK}/meta-openembedded git checkout -b tmp ${META_OE_COMMIT} cd ${WORK}/meta-renesas git checkout -b tmp ${META_RENESAS_COMMIT} cd ${WORK}/meta-renesas-ccpf git checkout -b tmp ${META_RENESAS_CCPF_COMMIT} # Populate meta-renesas with proprietary software packages WORK_PROP_DIR=${WORK}/proprietary mkdir -p ${WORK_PROP_DIR} unzip -qo ${PROPRIETARY_DIR}/${GFX_MMP_LIB} -d ${WORK_PROP_DIR} unzip -qo ${PROPRIETARY_DIR}/${GFX_MMP_DRIVER} -d ${WORK_PROP_DIR} cd ${WORK}/meta-renesas sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f ${WORK_PROP_DIR} cd ${WORK} TEMPLATECONF=$PWD/meta-renesas-ccpf/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}-ccpf-sk/mmp/ \ source poky/oe-init-build-env ${WORK}/build bitbake core-image-weston
- build
./build.sh <target_board_name>
- 18px <translate> Note:</translate> target_board_name is "h3ulcb" or "m3ulcb".
- 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>
Manual steps
- 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`
- Clone basic Yocto layers:
cd $WORK git clone git://git.yoctoproject.org/poky git clone git://git.openembedded.org/meta-openembedded git clone https://github.com/renesas-rcar/meta-renesas git clone https://github.com/renesas-rcar/meta-renesas-ccpf
- Switch to proper branches/commits
cd $WORK/poky git checkout -b tmp 6ebb33bdaccaeadff0c85aab27acf35723df00d8 cd $WORK/meta-openembedded git checkout -b tmp c38d2a74f762a792046f3d3c377827b08aade513 cd $WORK/meta-renesas git checkout -b tmp 0fe77668f5d9a31a5d10449988c3d8fb8dc475c5 cd $WORK/meta-renesas-ccpf git checkout -b tmp b49b57d6e68d5cda70aefbed34e06903484c573b
- Another versions are not tested for compatibility.
- Create $WORK/../proprietary folder, then download proprietary driver modules to it.
- See also Required_packages
- You should see the following files:
$ ls -1 $WORK/../proprietary/*.zip R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20210921.zip R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20210921.zip
- 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-20210921.zip unzip -qo R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20210921.zip cd $WORK/meta-renesas sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f $PKGS_DIR unset PKGS_DIR
- Setup build environment
cd $WORK TEMPLATECONF=$PWD/meta-renesas-ccpf/meta-rcar-gen3/docs/sample/conf/<h3ulcb|m3ulcb>-ccpf-sk/mmp/ \ source poky/oe-init-build-env ${WORK}/build
- Start the build
bitbake core-image-weston
- 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.
- Bitbake has generated all the necessary files in ./tmp/deploy/images directory.
You can verify its content: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-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.testdata.json ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.wic.bmap ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.wic.xz ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.wic.xz.sha256sum ./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz ./tmp/deploy/images/h3ulcb/r8a77950-ulcb-h3ulcb.dtb ./tmp/deploy/images/h3ulcb/r8a77950-ulcb.dtb ./tmp/deploy/images/h3ulcb/r8a77951-ulcb-ccpf-sk-h3ulcb.dtb ./tmp/deploy/images/h3ulcb/r8a77951-ulcb-ccpf-sk.dtb ./tmp/deploy/images/h3ulcb/r8a77951-ulcb-h3ulcb.dtb ./tmp/deploy/images/h3ulcb/r8a77951-ulcb.dtb ./tmp/deploy/images/h3ulcb/r8a779m1-ulcb-h3ulcb.dtb ./tmp/deploy/images/h3ulcb/r8a779m1-ulcb.dtb ./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-initial-env-h3ulcb-r8a7795_h3ulcb ./tmp/deploy/images/h3ulcb/u-boot-initial-env-r8a7795_h3ulcb ./tmp/deploy/images/h3ulcb/u-boot.bin ./tmp/deploy/images/h3ulcb/u-boot.bin-r8a7795_h3ulcb
- 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.
- You can now proceed with running Yocto images
MMP-dist case
build script
- Build script(build.sh)
#!/bin/bash BOARD_LIST=("h3ulcb" "m3ulcb") TARGET_BOARD=$1 PROPRIETARY_DIR=`pwd`/proprietary WORK=`pwd`/${TARGET_BOARD} POKY_COMMIT=6ebb33bdaccaeadff0c85aab27acf35723df00d8 META_OE_COMMIT=c38d2a74f762a792046f3d3c377827b08aade513 META_RENESAS_COMMIT=0fe77668f5d9a31a5d10449988c3d8fb8dc475c5 META_RENESAS_CCPF_COMMIT=b49b57d6e68d5cda70aefbed34e06903484c573b YOCTO_PROJECT_CODENAME="dunfell" META_BROWSER_COMMIT=157c2dcc26304edc2543e5f45e74daf70ef2b7a6 # m92 META_CLANG_COMMIT=76c6751d721a4265e01bb71d8dc4fb46dca6602f META_PYTHON2_COMMIT=b901080cf57d9a7f5476ab4d96e56c30db8170a8 GFX_MMP_LIB=R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-2021921.zip GFX_MMP_DRIVER=R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20210921.zip Usage () { echo "Usage: $0 \${TARGET_BOARD_NAME}" echo "BOARD_NAME list: " for i in ${BOARD_LIST[@]}; do echo " - $i"; done echo "BUILD_DIR is $BUILD_TYPE" 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 https://github.com/renesas-rcar/meta-renesas & git clone https://github.com/renesas-rcar/meta-renesas-ccpf & git clone git://github.com/OSSystems/meta-browser & git clone git://github.com/kraj/meta-clang -b ${YOCTO_PROJECT_CODENAME} & git clone git://git.openembedded.org/meta-python2 -b ${YOCTO_PROJECT_CODENAME} & # Wait for all clone operations wait # Switch to proper branches/commits cd ${WORK}/poky git checkout -b tmp ${POKY_COMMIT} cd ${WORK}/meta-openembedded git checkout -b tmp ${META_OE_COMMIT} cd ${WORK}/meta-renesas git checkout -b tmp ${META_RENESAS_COMMIT} cd ${WORK}/meta-renesas-ccpf git checkout -b tmp ${META_RENESAS_CCPF_COMMIT} cd ${WORK}/meta-browser git checkout -B tmp ${META_BROWSER_COMMIT} cd ${WORK}/meta-clang git checkout -B tmp ${META_CLANG_COMMIT} cd ${WORK}/meta-python2 git checkout -B tmp ${META_PYTHON2_COMMIT} # Populate meta-renesas with proprietary software packages WORK_PROP_DIR=${WORK}/proprietary mkdir -p ${WORK_PROP_DIR} unzip -qo ${PROPRIETARY_DIR}/${GFX_MMP_LIB} -d ${WORK_PROP_DIR} unzip -qo ${PROPRIETARY_DIR}/${GFX_MMP_DRIVER} -d ${WORK_PROP_DIR} cd ${WORK}/meta-renesas sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f ${WORK_PROP_DIR} cd ${WORK} rm -rf ${WORK}/build/conf TEMPLATECONF=$PWD/meta-renesas-ccpf/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}-ccpf-sk/mmp-dist/ \ source poky/oe-init-build-env ${WORK}/build ulimit -n 8192 bitbake core-image-weston ### For building binary package which is released on eLinux ### #cp -f ${WORK}/meta-renesas-ccpf/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}-ccpf-sk/mmp-dist/site.conf.sample \ # ${WORK}/build/conf/site.conf #bitbake core-image-weston-release
18px <translate> Note:</translate> Building mmp-dist release package(core-image-weston-release)
- If it needs to build core-image-weston-release, please uncomment following code in build script.
- core-image-weston-release: See also R-Car/Boards/CCPF-SK/Yocto-Gen3/v5.5.0#Building_the_BSP_for_CCPF-SK.
#cp -f ${WORK}/meta-renesas-ccpf/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}-ccpf-sk/mmp-dist/site.conf.sample \ # ${WORK}/build/conf/site.conf #bitbake core-image-weston-release
- If the build completes successfully, all the necessary files are generated in a following directory:
./<target_board_name>/build/tmp/deploy/release/
Build SDK
Refer to Build SDK on the Yocto-Gen3 page.
Running Yocto images
Refer to Running Yocto images on the Yocto-Gen3 page.
Relationship diagram between each SK board and DTB file
Board name | SoC version | DTB file | |
---|---|---|---|
H3SK | 2.0 2.0 2.0/3.0 |
RTP0RC77951SKBX010SA00 RTP0RC77951SKBX010SA01 RTP0RC77951SKBX010SA03 |
r8a77951-ulcb.dtb |
H3e-2G SK | 3.0 | RTP8J779M1ASKB0SK0SA003 | r8a779m1-ulcb.dtb |
M3SK | 1.0 | r8a77960-ulcb-ccpf-sk.dtb | |
M3SK | 3.0 | r8a77961-ulcb-ccpf-sk.dtb |
S/W support status
Support list
Functions | Status |
---|---|
CAN | ok |
USB2.0 | ok |
USB3.0 | ok |
HDMI1(only H3SK) | ok |
Camera 0 | Not supported |
Camera 1 | Not supported |
NVMe | ok |
S2RAM(Suspend to RAM) | ok |
fan control | ok(May fail in NVMe connection state.) |
Note:
- "ok" - Function succeeded in the simple test as below.
- "NT" - Function wasn't tested
- Please connect USB 3.0 device to USB 3.0 port and USB2.0 device to USB 2.0 port.
How to test some capabilities
CAN
Ex.) loop back
- connect pin2 and pin6, pin3 and pin7
root@h3ulcb:~# ip link set can0 up type can bitrate 125000 root@h3ulcb:~# ip link set can1 up type can bitrate 125000 root@h3ulcb:~# candump can0& root@h3ulcb:~# cangen can1 -I i -L i -D i (Ctrl+C) root@h3ulcb:~# candump can1& root@h3ulcb:~# cangen can0 -I i -L i -D i
NVMe
root@h3ulcb:~# dmesg | grep nvme
nvme nvme0: pci function 0000:01:00.0
nvme 0000:01:00.0: enabling device (0000 -> 0002)
nvme nvme1: pci function 0001:01:00.0
nvme 0001:01:00.0: enabling device (0000 -> 0002)
nvme nvme0: 8/0/0 default/read/poll queues
nvme nvme1: 8/0/0 default/read/poll queues
root@h3ulcb:~# mount /dev/nvme0n1p1 /mnt
EXT4-fs (nvme0n1p1): mounted filesystem with ordered data mode. Opts: (null)
root@h3ulcb:~# ls /mnt
root@h3ulcb:~# umount /mnt
root@h3ulcb:~# mount /dev/nvme1n1p1 /mnt
EXT4-fs (nvme1n1p1): mounted filesystem with ordered data mode. Opts: (null)
root@h3ulcb:~# ls /mnt
root@h3ulcb:~# umount /mnt
S2RAM
Push SW6 or execute 'systemctl suspend' to enter Suspend to RAM. it can wake-up by SW4.
fan control
To use the fan control function, to upgrade RL78 RL78 needs to be updated.
less than 35 degrees | 0% |
above 35 degrees and below 50 degrees | 50% |
above 50 degrees | 100% |
This function can be stopped by "systemctl stop ccpsk-control".
Known issues and limitations
- Refer to R-Car/Boards/CCPF-SK#Known_Issues.
- Refer to R-Car/Boards/Yocto-Gen3/v5.5.0#Known_issues_and_limitations.
Q&A site
https://community.renesas.com/automotive/r-car-h3-m3-cockpit/
FAQ site
- https://en-support.renesas.com/knowledgeBase/category/31363 (English page)
- https://ja-support.renesas.com/knowledgeBase/category/31403 (Japanese page)