R-Car/Chromium/m88

From eLinux.org
Jump to: navigation, search


Introduction

This page contains information how to run chromium on R-Car Gen3 devices.

See also:

Topic

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 (latest) [New!!] 2022/02/08 Prebuilt binary is available in Quick startup guide page. (Updated on 2022/03/18)


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



Yocto versions

Poky-3.1.2 is supported with "Yocto v4.1.0 + Yocto Project 3.1.2".


Environment

Host PC

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

See also:

Yocto BSP

Community Yocto BSP "Yocto v4.1.0 + Yocto Project 3.1.2".
For more information, see R-Car Gen3 Community Yocto BSP Release Note.

Confirmed Board

Board SoC Confirmed
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:

Chromium Version

88.0.4324.150

Layer information

Layer Repo Branch Commit ID
meta-browser git://github.com/OSSystems/meta-browser master dcfb4cedc238eee8ed9bd6595bdcacf91c562f67
meta-clang git://github.com/kraj/meta-clang dunfell e63d6f9abba5348e2183089d6ef5ea384d7ae8d8
meta-python2 git://git.openembedded.org/meta-python2 dunfell 07dca1e54f82a06939df9b890c6d1ce1e3197f75

Required packages

Proprietary evaluation package

  1. Download evaluation version of proprietary graphics package from Renesas.
    To download Graphics library and related Linux drivers, please use the following link:
    Download two files:
    • R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-weston8-20200923.zip
    • R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-weston8-20200923.zip

Host PC required package

  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
    
    Refer to Yocto Project Quick Start for more information.


Building the BSP with Chromium browser

Build using script

  1. Directory Structure
    |--build_m88.sh
    `--proprietary
       |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-weston8-20200923.zip
       `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-weston8-20200923.zip
    
  2. build script
    #!/bin/bash
    
    BOARD_LIST=("h3ulcb" "m3ulcb")
    TARGET_BOARD=$1
    PROPRIETARY_DIR=`pwd`/proprietary
    MILESTONE=$(basename ${0%.*} |cut -d'_' -f2)
    WORK=`pwd`/${TARGET_BOARD}_${MILESTONE}
    
    REPO_MANIFEST=dunfell-dev_v4.1.0.xml
    META_BROWSER_COMMIT=dcfb4cedc238eee8ed9bd6595bdcacf91c562f67 # 88.0.4324.150
    META_CLANG_COMMIT=e63d6f9abba5348e2183089d6ef5ea384d7ae8d8
    META_PYTHON2_COMMIT=07dca1e54f82a06939df9b890c6d1ce1e3197f75
    
    GFX_MMP_LIB=R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-weston8-20200923.zip
    GFX_MMP_DRIVER=R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-weston8-20200923.zip
    
    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 and switch to proper branches/commits
    curl https://storage.googleapis.com/git-repo-downloads/repo > ./repo
    chmod a+x ./repo
    ./repo init -b master -m ${REPO_MANIFEST} -u https://github.com/renesas-rcar/rcar-manifest.git
    ./repo sync
    ./repo forall -c git reset --hard
    ./repo forall -c git clean -df
    
    # Clone layers in parallel
    cd ${WORK}
    git clone git://github.com/OSSystems/meta-browser &
    git clone git://github.com/kraj/meta-clang -b dunfell &
    git clone git://git.openembedded.org/meta-python2 -b dunfell &
    
    # Wait for all clone operations
    wait
    
    # Switch to proper branches/commits
    cd ${WORK}/meta-browser
    git pull; git checkout -B tmp ${META_BROWSER_COMMIT}; git clean -fd
    cd ${WORK}/meta-clang
    git pull; git checkout -B tmp ${META_CLANG_COMMIT}; git clean -fd
    cd ${WORK}/meta-python2
    git pull; git checkout -B tmp ${META_PYTHON2_COMMIT}; git clean -fd
    
    # Apply patch to support H3 v3 SK equipped with Single-ranked DDR
    cd ${WORK}
    curl -sO  https://elinux.org/images/2/22/H3SK-SingleRankedDDR_v2.zip
    unzip -qo H3SK-SingleRankedDDR_v2.zip
    cd ${WORK}/meta-renesas
    patch -p1 < ../H3SK-SingleRankedDDR_v2.diff
    
    # Populate meta-renesas with proprietary software packages
    PROP_DIR=${WORK}/proprietary
    mkdir -p ${PROP_DIR}
    unzip -qo ${PROPRIETARY_DIR}/${GFX_MMP_LIB} -d ${PROP_DIR}
    unzip -qo ${PROPRIETARY_DIR}/${GFX_MMP_DRIVER} -d ${PROP_DIR}
    cd $WORK/meta-renesas
    sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f ${PROP_DIR}
    
    cd ${WORK}
    source poky/oe-init-build-env ${WORK}/build
    
    cd ${WORK}/build
    cp ${WORK}/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/mmp/*.conf ./conf/
    cp conf/local-wayland.conf conf/local.conf
    
    cat << 'EOS' >> conf/local.conf
    DISTRO_FEATURES_append = " h264enc_lib"
    PACKAGECONFIG_pn-chromium-ozone-wayland =" proprietary-codecs"
    IMAGE_INSTALL_append = " chromium-ozone-wayland"
    IMAGE_INSTALL_append = " ntp"
    EOS
    
    # Setting for building Chromium
    ulimit -n 8192
    
    # Add layers
    bitbake-layers add-layer ../meta-python2
    bitbake-layers add-layer ../meta-clang
    bitbake-layers add-layer ../meta-browser
    bitbake-layers add-layer ../meta-openembedded/meta-networking # for ntp
    
    bitbake core-image-weston
    
  3. build
    ./build_m88.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>_m88/build/tmp/deploy/images/<target_board_name>
    
    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.
  4. You can now proceed with Running Yocto images

Running Yocto images

Linux kernel can be booted from microSD/USB memory/eMMC/TFTP.
Root FS can be mounted from microSD/USB memory/eMMC/NFS.
See also R-Car/Boards/Yocto-Gen3#Running_Yocto_images.

How to run Chromium

chromium --no-sandbox

How to test

Test H3 v3.0(1rank DDR) M3 v3.0
Launch Chromium OK OK
Maximize window of Chromium OK OK
Show "About Chromium" OK OK
Search youtube using google OK OK
Play video/audio on youtube OK OK
Run webgl sample(Aquarium) OK OK

18px <translate> Note:</translate> NT='Not Tested'

Q&A site

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

FAQ page

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

Known issues and limitations

See also R-Car/Boards/Yocto-Gen3#Known_issues_and_limitations.