R-Car/Chromium/m90

From eLinux.org
< R-Car‎ | Chromium
Revision as of 18:39, 8 June 2021 by Y.H. (talk | contribs) (Environment)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Introduction

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

See also:

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 (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



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.7.0 + Yocto Project 3.2.2(Poky-3.2.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

90.0.4430.93

Layer information

Layer Repo Branch Commit ID
meta-browser git://github.com/OSSystems/meta-browser master a5a5f277740a8434377f9844c62574efb17a4fa0
meta-clang git://github.com/kraj/meta-clang gatesgarth 04a1194c78563524659f27941304e564956792b1
meta-python2 git://git.openembedded.org/meta-python2 gatesgarth d9662a41f67c3425a356bce4ec29f82058127344

Required packages

Proprietary evaluation package

  1. 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-weston9-20210324.zip
    • R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-weston9-20210324.zip

Host PC required package

  1. Install required packages
    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_m90.sh
    `--proprietary
       |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-weston9-20210324.zip
       `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-weston9-20210324.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=gatesgarth-dev_v4.7.0.xml
    META_BROWSER_COMMIT=a5a5f277740a8434377f9844c62574efb17a4fa0 # m90
    META_CLANG_COMMIT=04a1194c78563524659f27941304e564956792b1
    META_PYTHON2_COMMIT=d9662a41f67c3425a356bce4ec29f82058127344
    
    GFX_MMP_LIB=R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-weston9-20210324.zip
    GFX_MMP_DRIVER=R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-weston9-20210324.zip
    
    YOCTO_PROJECT_CODENAME=$(echo ${REPO_MANIFEST} | cut -d '-' -f1)
    
    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 ${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}/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
    
    # 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/meta-chromium
    bitbake-layers add-layer ../meta-openembedded/meta-networking # for ntp
    
    bitbake core-image-weston
    
  3. build
    ./build_m90.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>_m90/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.