Difference between revisions of "R-Car/Boards/Yocto-Gen3/v3.21.0"
(→Known issues and limitations) |
(→Build using manual steps) |
||
(87 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Template:R-Car-Gen3-Navbox}} | ||
{{TOC right}} | {{TOC right}} | ||
+ | [[Category:R-Car]] | ||
+ | [[Category:R-Car Gen3]] | ||
+ | |||
+ | == Introduction == | ||
This page contains information on building and running Yocto on: | This page contains information on building and running Yocto on: | ||
− | * [[R-Car/Boards/H3SK | Renesas R-Car-H3 Starter Kit Premier]] (unofficial name - H3ULCB) | + | * [[R-Car/Boards/H3SK | Renesas R-Car-H3 Starter Kit Premier]] (unofficial name - H3ULCB) |
− | * [[R-Car/Boards/M3SK | Renesas R-Car-M3 Starter Kit Pro]] (unofficial name - M3ULCB) | + | * [[R-Car/Boards/M3SK | Renesas R-Car-M3 Starter Kit Pro]] (unofficial name - M3ULCB) |
+ | ** https://www.renesas.com/us/en/products/automotive-products/automotive-system-chips-socs/r-car-h3-m3-starter-kit | ||
+ | '''NOTE: USE OFFICIAL DOCUMENTATION provided with R-Car BSPs FOR H3SK/M3SK boards''' | ||
+ | <br/> | ||
+ | See also: | ||
+ | * Latest version [[R-Car/Boards/Yocto-Gen3 ]] | ||
+ | * Stable version [[R-Car/Boards/Yocto-Gen3-stable ]] | ||
+ | |||
+ | == Topic == | ||
+ | {{Template:R-Car-Gen3-SK-Topic}} | ||
+ | |||
+ | == Software revisions == | ||
− | + | {| class="wikitable" | |
− | + | |- | |
− | [http://git.yoctoproject.org/cgit/cgit.cgi/poky/tag/?id=yocto-2. | + | ! Software !! Revision |
− | + | |- | |
− | + | | Yocto Project || [http://git.yoctoproject.org/cgit/cgit.cgi/poky/tag/?id=yocto-2.4.3 2.4.3] | |
+ | |- | ||
+ | | Toolchain gcc-poky || 7.3 | ||
+ | |- | ||
+ | | Wayland/Weston || 1.13.0/2.0.0 | ||
+ | |- | ||
+ | | GStreamer || 1.12.2 | ||
+ | |- | ||
+ | | Kernel Ver || LTSI 4.14.75 | ||
+ | |- | ||
+ | | Userland 64/32bit || 64 | ||
+ | |- | ||
+ | | U-Boot || 2018.09 | ||
+ | |- | ||
+ | | OP_TEE || 3.1.0 | ||
+ | |- | ||
+ | | OpenGL ES || 3.2 | ||
+ | |- | ||
+ | |} | ||
− | == | + | == Host PC == |
− | + | Ubuntu 16.04 LTS (64bit) is recommended as OS. 32bit version is not supported. <br/> | |
− | + | Ubuntu 18.04 LTS 64bit is also supported.<br/> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | + | == 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: |
+ | #:: https://www.renesas.com/us/en/application/automotive/r-car-h3-m3-h2-m2-e2-documents-software | ||
+ | #: Download two files: | ||
+ | #:: R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip | ||
+ | #:: R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip | ||
+ | #: <br/> | ||
+ | #: Graphic drivers are required for Wayland. Multimedia drivers are optional. | ||
+ | # Install required packages | ||
+ | #: '''Ubuntu and Debian''' | ||
+ | #:: <syntaxhighlight lang="bash"> | ||
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ | 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 \ | build-essential chrpath socat libsdl1.2-dev xterm python-crypto cpio python python3 \ | ||
python3-pip python3-pexpect xz-utils debianutils iputils-ping libssl-dev | python3-pip python3-pexpect xz-utils debianutils iputils-ping libssl-dev | ||
− | </ | + | </syntaxhighlight> |
− | + | #: '''Fedora''' | |
− | + | #:: <syntaxhighlight lang="bash"> | |
− | < | ||
sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ | sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ | ||
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ | diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ | ||
Line 36: | Line 71: | ||
SDL-devel xterm python-crypto cpio python python3 python3-pip python3-pexpect \ | SDL-devel xterm python-crypto cpio python python3 python3-pip python3-pexpect \ | ||
ghc-lzma-conduit iputils openssl | ghc-lzma-conduit iputils openssl | ||
− | </ | + | </syntaxhighlight> |
− | Refer to [http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html#packages Yocto Project Quick Start] for more information. | + | #: Refer to [http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html#packages Yocto Project Quick Start] for more information. |
− | |||
− | |||
== Building the BSP for Renesas H3 Starter Kit, M3 Starter Kit == | == 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/Boards/Yocto-Gen3-ADAS | R-Car Yocto Gen3 ADAS]] | NOTE: to have ADAS View and HAD Solution kits supported follow instructions: [[R-Car/Boards/Yocto-Gen3-ADAS | R-Car Yocto Gen3 ADAS]] | ||
− | < | + | |
− | < | + | === Build using script === |
− | Warning! Yocto builds require a lot of disk space (up to 100 GB). Make sure you have got enough before starting the build. | + | This example is for H3ULCB board.<br/> |
− | < | + | If you use other board, you need to modify the script.<br/> |
+ | # Directory Structure | ||
+ | #: <syntaxhighlight lang="bash"> | ||
+ | |--build.sh | ||
+ | `--proprietary | ||
+ | |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip | ||
+ | `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip | ||
+ | </syntaxhighlight> | ||
+ | # Build script(build.sh) | ||
+ | #: <syntaxhighlight lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | #Set the target board | ||
+ | TARGET_BOARD=h3ulcb | ||
+ | #TARGET_BOARD=m3ulcb | ||
+ | |||
+ | # Create a directory and switch to it | ||
+ | mkdir $TARGET_BOARD | ||
+ | cd $TARGET_BOARD | ||
+ | WORK=`pwd` | ||
+ | echo $WORK | ||
+ | |||
+ | # Clone basic Yocto layers in parallel | ||
+ | git clone git://git.yoctoproject.org/poky & | ||
+ | git clone git://git.linaro.org/openembedded/meta-linaro.git & | ||
+ | git clone git://git.openembedded.org/meta-openembedded & | ||
+ | git clone https://github.com/renesas-rcar/meta-renesas & | ||
+ | |||
+ | # Wait for all clone operations | ||
+ | wait | ||
+ | |||
+ | # Switch to proper branches/commits | ||
+ | cd $WORK/poky | ||
+ | git checkout -b tmp 7e7ee662f5dea4d090293045f7498093322802cc | ||
+ | cd $WORK/meta-openembedded | ||
+ | git checkout -b tmp 352531015014d1957d6444d114f4451e241c4d23 | ||
+ | cd $WORK/meta-linaro | ||
+ | git checkout -b tmp 75dfb67bbb14a70cd47afda9726e2e1c76731885 | ||
+ | cd $WORK/meta-renesas | ||
+ | git checkout -b tmp e5267d02de785b972aa78afecfff390168e11a6d | ||
+ | |||
+ | # Populate meta-renesas with proprietary software packages | ||
+ | cd $WORK/meta-renesas | ||
+ | sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $WORK/../proprietary | ||
+ | |||
+ | 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 | ||
+ | echo 'DISTRO_FEATURES_append = " use_eva_pkg"' >> $WORK/build/conf/local.conf | ||
+ | |||
+ | bitbake core-image-weston | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | # build | ||
+ | #: <syntaxhighlight lang="bash"> | ||
+ | ./build.sh | ||
+ | </syntaxhighlight> | ||
+ | #: If the build completes successfully, all the necessary files are generated in a following directory: | ||
+ | #:: <syntaxhighlight lang="text"> | ||
+ | ./<target_board_name>/build/tmp/deploy/images/<target_board_name> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Build using 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. | ||
+ | #: <syntaxhighlight lang="bash"> | ||
mkdir build | mkdir build | ||
cd build | cd build | ||
export WORK=`pwd` | export WORK=`pwd` | ||
− | </ | + | </syntaxhighlight> |
− | + | # Clone basic Yocto layers: | |
− | + | #: <syntaxhighlight lang="bash">cd $WORK | |
− | < | ||
− | cd $WORK | ||
git clone git://git.yoctoproject.org/poky | git clone git://git.yoctoproject.org/poky | ||
git clone git://git.openembedded.org/meta-openembedded | git clone git://git.openembedded.org/meta-openembedded | ||
git clone git://git.linaro.org/openembedded/meta-linaro.git | git clone git://git.linaro.org/openembedded/meta-linaro.git | ||
− | git clone | + | git clone https://github.com/renesas-rcar/meta-renesas |
− | </ | + | </syntaxhighlight> |
− | + | # Switch to proper branches/commits <span style="color:#ff0000;">(2022/08/25 updated)</span> | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | |||
− | Switch to proper branches/commits | ||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | < | ||
− | |||
− | |||
− | |||
cd $WORK/poky | cd $WORK/poky | ||
− | git checkout -b tmp | + | git checkout -b tmp 7e7ee662f5dea4d090293045f7498093322802cc |
cd $WORK/meta-openembedded | cd $WORK/meta-openembedded | ||
− | git checkout -b tmp | + | git checkout -b tmp 352531015014d1957d6444d114f4451e241c4d23 |
cd $WORK/meta-linaro | cd $WORK/meta-linaro | ||
− | git checkout -b tmp | + | git checkout -b tmp 75dfb67bbb14a70cd47afda9726e2e1c76731885 |
cd $WORK/meta-renesas | cd $WORK/meta-renesas | ||
− | git checkout -b tmp | + | git checkout -b tmp e5267d02de785b972aa78afecfff390168e11a6d <= 2022/08/25 updated |
− | </ | + | </syntaxhighlight> |
− | + | #: 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]] |
− | Another versions are not tested for compatibility. | + | # Create $WORK/../proprietary folder, then download proprietary driver modules to it. |
− | Legacy BSP instruction can be found here [[R-Car/Boards/Yocto-Gen3-legacy | R-Car Yocto Gen3 legacy]] | + | #: See also [[{{PAGENAME}}#Required_packages | Required_packages]] |
− | + | #: You should see the following files: | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | + | $ ls -1 $WORK/../proprietary/*.zip | |
− | + | R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip | |
− | + | R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip | |
− | + | </syntaxhighlight> | |
− | + | # Populate meta-renesas with proprietary software packages. | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | + | export PKGS_DIR=$WORK/../proprietary | |
− | |||
− | |||
− | |||
− | |||
− | You should see the following files: | ||
− | < | ||
− | |||
− | |||
− | |||
− | $ ls -1 $WORK/ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux- | ||
− | R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers- | ||
− | </ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Populate meta-renesas with proprietary software packages. | ||
− | < | ||
− | export PKGS_DIR=$WORK/proprietary | ||
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_evaproprietary_softwares.sh -f $PKGS_DIR | ||
unset PKGS_DIR | unset PKGS_DIR | ||
− | </ | + | </syntaxhighlight> |
− | + | # Setup build environment | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | |||
− | Setup build environment | ||
− | < | ||
cd $WORK | cd $WORK | ||
− | source poky/oe-init-build-env | + | source poky/oe-init-build-env $WORK/build |
− | + | </syntaxhighlight> | |
− | </ | + | # Prepare default configuration files. |
− | + | #: <syntaxhighlight lang="bash"> | |
− | |||
− | Prepare default configuration files. | ||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
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/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 | ||
− | </ | + | </syntaxhighlight> |
− | + | # (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"> | |
− | |||
− | (Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support) | ||
− | |||
− | |||
− | |||
− | Edit local.conf with evaluation packages requirements: | ||
− | < | ||
− | |||
− | |||
− | |||
DISTRO_FEATURES_append = " use_eva_pkg" | DISTRO_FEATURES_append = " use_eva_pkg" | ||
− | </ | + | </syntaxhighlight> |
− | + | # Start the build | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | |||
− | |||
− | |||
− | Start the build | ||
− | < | ||
bitbake core-image-weston | bitbake core-image-weston | ||
− | </ | + | </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: | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | |||
− | 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: | ||
− | < | ||
NOTE: Tasks Summary: Attempted 4704 tasks of which 31 didn't need to be rerun and all succeeded. | NOTE: Tasks Summary: Attempted 4704 tasks of which 31 didn't need to be rerun and all succeeded. | ||
− | </ | + | </syntaxhighlight> |
− | 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: | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | |||
− | Bitbake has generated all the necessary files in ./tmp/deploy/images directory. <br/> | ||
− | You can verify its content: | ||
− | < | ||
$ ls -1 `find ./tmp/deploy/images/h3ulcb/ -maxdepth 1 -type l -print` | $ ls -1 `find ./tmp/deploy/images/h3ulcb/ -maxdepth 1 -type l -print` | ||
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.cpio.gz | ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.cpio.gz | ||
Line 211: | Line 225: | ||
./tmp/deploy/images/h3ulcb/Image-h3ulcb.bin | ./tmp/deploy/images/h3ulcb/Image-h3ulcb.bin | ||
./tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb | ./tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb | ||
+ | ./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-4x2g.dtb | ||
./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb | ./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb | ||
./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz | ./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz | ||
Line 217: | Line 232: | ||
./tmp/deploy/images/h3ulcb/u-boot-elf.srec | ./tmp/deploy/images/h3ulcb/u-boot-elf.srec | ||
./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin | ./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin | ||
− | </ | + | </syntaxhighlight> |
− | '''Image''' is a Kernel image, '''*.dtb''' is a blob file, '''core-image-weston-h3ulcb.tar.bz2''' is the rootfs, '''modules-h3ulcb.tgz''' are kernel modules. | + | #: '''Image''' is a Kernel image, '''*.dtb''' is a blob file, '''core-image-weston-h3ulcb.tar.bz2''' is the rootfs, '''modules-h3ulcb.tgz''' are kernel modules. |
− | + | # You can now proceed with running Yocto images | |
− | |||
− | You can now proceed with running Yocto images | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Build SDK == | == Build SDK == | ||
− | After building BSP you may build SDK: | + | * After building BSP you may build SDK: |
− | < | + | *: <syntaxhighlight lang="text">bitbake core-image-weston -c populate_sdk</syntaxhighlight> |
− | bitbake core-image-weston -c populate_sdk | + | * After build finished the SDK installation script may be found in following path: |
− | </ | + | *: <syntaxhighlight lang="text">tmp/deploy/sdk/poky-glibc-x86_64-core-image-weston-aarch64-toolchain-*.sh</syntaxhighlight> |
− | After build finished the SDK installation script may be found in following path: | + | * Install SDK by run the following command and follow instructions on the screen: |
− | < | + | *: <syntaxhighlight lang="text">./tmp/deploy/sdk/poky-glibc-x86_64-core-image-weston-aarch64-toolchain-*.sh</syntaxhighlight> |
− | tmp/deploy/sdk/poky-glibc-x86_64-core-image-weston-aarch64-toolchain-*.sh | + | * setup environment variables for each compilation on each Host PCs |
− | </ | + | *: <syntaxhighlight lang="text">cd (Your working directory) |
− | Install SDK by run the following command and follow instructions on the screen: | + | source /opt/poky/2.4.3/environment-setup-aarch64-poky-linux |
− | < | + | export LDFLAGS=”” |
− | ./tmp/deploy/sdk/poky-glibc-x86_64-core-image-weston-aarch64-toolchain-*.sh | + | ${CC} (Your source code).c …..</syntaxhighlight> |
− | </ | ||
== Running Yocto images == | == 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. | Linux kernel can be booted from microSD card or from TFTP. Root FS can be mounted from micro SD card or via NFS. | ||
+ | |||
+ | === Combination of board and dtb file === | ||
+ | Please refer to [[R-Car/Boards/Yocto-Gen3-CommonFAQ/Which_dtb_file_is_required_to_boot_linux_on_the_R-Car_Starter_Kit_board_%3F | here ]]. | ||
=== Loading kernel via TFTP and rootfs via NFS === | === Loading kernel via TFTP and rootfs via NFS === | ||
Follow these steps to setup working TFTP and NFS server: | Follow these steps to setup working TFTP and NFS server: | ||
− | + | # Setup a TFTP server. | |
− | + | #: '''Ubuntu''' | |
− | Setup a TFTP server. | + | #: Install '''tftpd-hpa''' package along with tftp tools: |
− | + | #: <syntaxhighlight lang="bash"> | |
− | Install '''tftpd-hpa''' package along with tftp tools: | ||
− | < | ||
sudo apt-get install tftp tftpd-hpa | sudo apt-get install tftp tftpd-hpa | ||
− | </ | + | </syntaxhighlight> |
− | + | #: '''Fedora''' | |
− | + | ## Install necessary packages: | |
− | + | ##: <syntaxhighlight lang="bash"> | |
− | |||
− | Install necessary packages: | ||
− | < | ||
sudo yum install tftp-server tftp | sudo yum install tftp-server tftp | ||
− | </ | + | </syntaxhighlight> |
− | tftp-server is a part of xinetd. See [http://docs.fedoraproject.org/en-US/Fedora/20/html/Installation_Guide/ch13s05s03.html Fedora manual] for more information. | + | ##: tftp-server is a part of xinetd. See [http://docs.fedoraproject.org/en-US/Fedora/20/html/Installation_Guide/ch13s05s03.html Fedora manual] for more information. |
− | + | ## Enable TFTP server: | |
− | + | ##: <syntaxhighlight lang="bash"> | |
− | Enable TFTP server: | ||
− | < | ||
sudo vi /etc/xinetd.d/tftp | sudo vi /etc/xinetd.d/tftp | ||
− | </ | + | </syntaxhighlight> |
− | Set < | + | ##: Set <syntaxhighlight lang="bash"> |
− | + | disable = no | |
− | + | </syntaxhighlight> | |
− | Start xinetd: | + | ##: Save file and exit. |
− | < | + | ## Start xinetd: |
+ | ##: <syntaxhighlight lang="bash"> | ||
sudo systemctl start xinetd.service | sudo systemctl start xinetd.service | ||
sudo systemctl enable xinetd.service | sudo systemctl enable xinetd.service | ||
− | </ | + | </syntaxhighlight> |
− | + | # Copy '''Image''' and '''Image-r8a7795-h3ulcb.dtb''' (for ws2.0 silicon) and/or '''Image-r8a7795-h3ulcb-4x2g.dtb''' (for RTP0RC77951SKBX010SA03(DDR 8GiB)) and/or '''Image-r8a7795-es1-h3ulcb.dtb''' (for ws1.1) from $WORK/build/tmp/deploy/images/h3ulcb/ to TFTP server root. | |
− | + | #: '''Ubuntu''' | |
− | + | #:: <syntaxhighlight lang="bash"> | |
− | |||
− | |||
− | |||
− | Copy '''Image''' and '''Image-r8a7795-h3ulcb.dtb''' (for ws2.0 silicon) and/or '''Image-r8a7795-es1-h3ulcb.dtb''' (for ws1.1) from $WORK/build/tmp/deploy/images/h3ulcb/ to TFTP server root. | ||
− | |||
− | < | ||
cp $WORK/build/tmp/deploy/images/h3ulcb/Image /srv/tftp/ | cp $WORK/build/tmp/deploy/images/h3ulcb/Image /srv/tftp/ | ||
cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb /srv/tftp/ | cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb /srv/tftp/ | ||
cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb /srv/tftp/ | cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb /srv/tftp/ | ||
− | </ | + | cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-4x2g.dtb /srv/tftp/ |
− | + | </syntaxhighlight> | |
− | + | #: ''' Fedora''' | |
− | < | + | #:: <syntaxhighlight lang="bash"> |
cp $WORK/build/tmp/deploy/images/h3ulcb/Image /var/lib/tftpboot/ | cp $WORK/build/tmp/deploy/images/h3ulcb/Image /var/lib/tftpboot/ | ||
cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb /var/lib/tftpboot/ | cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb /var/lib/tftpboot/ | ||
cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb /var/lib/tftpboot/ | cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb /var/lib/tftpboot/ | ||
− | </ | + | cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-4x2g.dtb /var/lib/tftpboot/ |
− | [ | + | </syntaxhighlight> |
− | + | #: [[R-Car/Boards/H3SK#H3SK_has_several_kinds_of_boards | Which version is my H3SK board?]] | |
− | + | # Verify that TFTP server is working. | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | Verify that TFTP server is working. | ||
− | < | ||
tftp localhost -c get Image && ls Image | tftp localhost -c get Image && ls Image | ||
− | </ | + | </syntaxhighlight> |
− | + | # Setup NFS server. | |
− | + | #: '''Debian/Ubuntu''' | |
− | + | ## Install necessary packages: | |
− | Setup NFS server. | + | ##: <syntaxhighlight lang="bash"> |
− | |||
− | |||
− | |||
− | Install necessary packages: | ||
− | < | ||
sudo apt-get install nfs-kernel-server nfs-common | sudo apt-get install nfs-kernel-server nfs-common | ||
− | </ | + | </syntaxhighlight> |
− | + | ## Start NFS server: | |
− | + | ##: <syntaxhighlight lang="bash"> | |
− | Start NFS server: | ||
− | < | ||
sudo /etc/init.d/nfs-kernel-server start | sudo /etc/init.d/nfs-kernel-server start | ||
− | </ | + | </syntaxhighlight> |
− | + | #: '''Fedora''' | |
− | + | ## Install necessary packages: | |
− | + | ##* <syntaxhighlight lang="bash"> | |
− | |||
− | |||
− | |||
− | Install necessary packages: | ||
− | < | ||
sudo yum install nfs-utils | sudo yum install nfs-utils | ||
− | </ | + | </syntaxhighlight> |
− | + | ## Enable and start nfs server: | |
− | + | ##: <syntaxhighlight lang="bash"> | |
− | Enable and start nfs server: | ||
− | < | ||
sudo systemctl enable rpcbind.service | sudo systemctl enable rpcbind.service | ||
sudo systemctl enable nfs-server.service | sudo systemctl enable nfs-server.service | ||
Line 348: | Line 327: | ||
sudo systemctl start nfs-lock.service | sudo systemctl start nfs-lock.service | ||
sudo systemctl start nfs-idmap.service | sudo systemctl start nfs-idmap.service | ||
− | </ | + | </syntaxhighlight> |
− | + | # Export root FS to NFS. (Change IMAGE and MACHINE to fit your build). | |
− | + | ## Unpack rootfs to a dedicated directory: | |
− | + | ##: <syntaxhighlight lang="text"> | |
− | |||
− | |||
− | Export root FS to NFS. (Change IMAGE and MACHINE to fit your build). | ||
− | |||
− | |||
− | Unpack rootfs to a dedicated directory: | ||
− | < | ||
IMAGE=weston | IMAGE=weston | ||
MACHINE=h3ulcb|m3ulcb | MACHINE=h3ulcb|m3ulcb | ||
Line 366: | Line 338: | ||
sudo tar -xjf "${WORK}/build/tmp/deploy/images/${MACHINE}/core-image-${IMAGE}-${MACHINE}-*.tar.bz2" -C "${NFS_ROOT}" | sudo tar -xjf "${WORK}/build/tmp/deploy/images/${MACHINE}/core-image-${IMAGE}-${MACHINE}-*.tar.bz2" -C "${NFS_ROOT}" | ||
sync | sync | ||
− | </ | + | </syntaxhighlight> |
− | + | ## Edit '''/etc/exports''': | |
− | + | ##: <syntaxhighlight lang="bash"> | |
− | Edit '''/etc/exports''': | ||
− | < | ||
sudo vi /etc/exports | sudo vi /etc/exports | ||
− | </ | + | </syntaxhighlight> |
− | add | + | ##: add |
− | < | + | ##: <syntaxhighlight lang="text"> |
/nfs/h3ulcb *(rw,no_subtree_check,sync,no_root_squash,no_all_squash) | /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) | /nfs/m3ulcb *(rw,no_subtree_check,sync,no_root_squash,no_all_squash) | ||
− | </ | + | </syntaxhighlight> |
− | Save the file and exit. | + | ##: Save the file and exit. |
− | + | ## Force NFS server to re-read /etc/exports | |
− | + | ##: <syntaxhighlight lang="bash"> | |
− | Force NFS server to re-read /etc/exports | + | sudo exportfs -a |
− | < | + | </syntaxhighlight> |
− | + | # Verify that NFS is working. | |
− | </ | + | #: <syntaxhighlight lang="bash"> |
− | |||
− | |||
− | Verify that NFS is working. | ||
− | < | ||
[builduser@buildmachine ~]$ showmount -e localhost | [builduser@buildmachine ~]$ showmount -e localhost | ||
Export list for localhost: | Export list for localhost: | ||
/nfs/h3ulcb * | /nfs/h3ulcb * | ||
/nfs/m3ulcb * | /nfs/m3ulcb * | ||
− | </ | + | </syntaxhighlight> |
− | + | # <span id="Boot into U-Boot command prompt">Boot into U-Boot command prompt</span> | |
− | + | ## Connect to serial console over microUSB using minicom or picocom. | |
− | + | ## Switch the board on or reset it. Press any key to stop U-Boot automatic countdown. | |
− | + | #: Refer to [[R-Car/Boards/H3SK#Power_on_the_board_and_go_to_U-Boot_prompt|H3SK board page]], [[R-Car/Boards/M3SK#Power_on_the_board_and_go_to_U-Boot_prompt|M3SK board page]] for more information. | |
− | + | # Configure Ethernet, TFTP, and kernel command line in U-Boot: | |
− | |||
− | Connect to serial console over microUSB using minicom or picocom. | ||
− | |||
− | |||
− | Switch the board on or reset it. Press any key to stop U-Boot automatic countdown. | ||
− | |||
− | |||
− | Refer to [[R-Car/Boards/H3SK#Power_on_the_board_and_go_to_U-Boot_prompt|H3SK board page]], [[R-Car/Boards/M3SK#Power_on_the_board_and_go_to_U-Boot_prompt|M3SK board page]] for more information. | ||
− | |||
− | |||
− | |||
− | Configure Ethernet, TFTP, and kernel command line in U-Boot: | ||
<!--setenv ethaddr xx:xx:xx:xx:xx:xx | <!--setenv ethaddr xx:xx:xx:xx:xx:xx | ||
Replace xx:xx:xx:xx:xx:xx with the MAC address of your board. It should be on the sticker on top of the Ethernet port.<br/> | Replace xx:xx:xx:xx:xx:xx with the MAC address of your board. It should be on the sticker on top of the Ethernet port.<br/> | ||
--> | --> | ||
− | < | + | #: <syntaxhighlight lang="text"> |
setenv ipaddr <board-ip> | setenv ipaddr <board-ip> | ||
setenv serverip <your-computer-ip> | setenv serverip <your-computer-ip> | ||
Line 420: | Line 374: | ||
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' | 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 | saveenv | ||
− | </ | + | </syntaxhighlight> |
− | 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. <br/> For example: | + | #: 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. <br/> For example: |
− | < | + | #: <syntaxhighlight lang="text"> |
setenv ipaddr 192.168.1.3 | setenv ipaddr 192.168.1.3 | ||
setenv serverip 192.168.1.2 | setenv serverip 192.168.1.2 | ||
Line 428: | Line 382: | ||
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' | 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 | saveenv | ||
− | </ | + | </syntaxhighlight> |
− | You can also use | + | #: You can also use |
− | < | + | #: <syntaxhighlight lang="text"> |
dhcp | dhcp | ||
− | </ | + | </syntaxhighlight> |
− | command to obtain information from DHCP server.<br/> | + | #: command to obtain information from DHCP server.<br/> |
− | '''Note:''' You can always see the environment with ''printenv'' command. Refer to [http://www.denx.de/wiki/U-Boot/Documentation U-Boot manual] for details. | + | #: '''Note:''' You can always see the environment with ''printenv'' command. Refer to [http://www.denx.de/wiki/U-Boot/Documentation U-Boot manual] for details. |
− | + | # Verify the connection over Ethernet from U-Boot: | |
− | + | #: <syntaxhighlight lang="text"> | |
− | |||
− | Verify the connection over Ethernet from U-Boot: | ||
− | < | ||
ping <your-computer-ip> | ping <your-computer-ip> | ||
− | </ | + | </syntaxhighlight> |
− | You should see: | + | #: You should see: |
− | < | + | #: <syntaxhighlight lang="text"> |
− | => ping 192.168.1.2 | + | => ping 192.168.1.2 |
ravb:0 is connected to ravb. Reconnecting to ravb | ravb:0 is connected to ravb. Reconnecting to ravb | ||
ravb Waiting for PHY auto negotiation to complete.. done | ravb Waiting for PHY auto negotiation to complete.. done | ||
Line 450: | Line 401: | ||
Using ravb device | Using ravb device | ||
host 192.168.1.2 is alive | host 192.168.1.2 is alive | ||
− | </ | + | </syntaxhighlight> |
− | + | # Reset the board by pushing reset button | |
− | + | #: Refer to [[R-Car/Boards/H3SK#Power_on_the_board_and_go_to_U-Boot_prompt|H3SK board page]], [[R-Car/Boards/M3SK#Power_on_the_board_and_go_to_U-Boot_prompt|M3SK board page]] for more information. | |
− | + | # The board should boot the kernel: | |
− | Reset the board by pushing reset button | + | #: <syntaxhighlight lang="text"> |
− | |||
− | Refer to [[R-Car/Boards/H3SK#Power_on_the_board_and_go_to_U-Boot_prompt|H3SK board page]], [[R-Car/Boards/M3SK#Power_on_the_board_and_go_to_U-Boot_prompt|M3SK board page]] for more information. | ||
− | |||
− | |||
− | |||
− | The board should boot the kernel: | ||
− | < | ||
NOTICE: BL2: R-Car Gen3 Initial Program Loader(CA57) Rev.1.0.10 | NOTICE: BL2: R-Car Gen3 Initial Program Loader(CA57) Rev.1.0.10 | ||
NOTICE: BL2: PRR is R-Car H3 ES1.0 | NOTICE: BL2: PRR is R-Car H3 ES1.0 | ||
Line 567: | Line 511: | ||
Starting kernel ... | Starting kernel ... | ||
− | </ | + | </syntaxhighlight> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === 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: |
− | </ | + | # Partion your SD card to set 1 partition and ID=83 (Linux) |
− | </ | + | #: Make sure the SD card doesn't contain any important files. |
− | < | + | #: <span style="color:#ff0000">'''WARNING!''' These steps may erase the SD card completely. All files my be lost.</span> |
− | < | + | #: <syntaxhighlight lang="bash"> |
− | < | + | $ fdisk /dev/mmcblk0 |
− | + | -> d | |
− | + | -> n | |
− | + | -> p | |
− | WORK | + | -> 1 |
− | + | -> t | |
+ | -> 83 | ||
+ | </syntaxhighlight> | ||
+ | # Format this partition to ext3 (or ext4) | ||
+ | #: <syntaxhighlight lang="bash"> | ||
+ | $ mkfs.ext3 /dev/mmcblk0p1 | ||
+ | </syntaxhighlight> | ||
+ | # Mount this partition on your host to any directory and upack the core-image-weston-*.tar.bz2 into mounted folder. And Copy Image and Image-r8a7795-h3ulcb.dtb (for ws2.0 silicon) and/or Image-r8a7795-h3ulcb-4x2g.dtb (for RTP0RC77951SKBX010SA03(DDR 8GiB)) and/or Image-r8a7795-es1-h3ulcb.dtb (for ws1.1) from $WORK/build/tmp/deploy/images/h3ulcb/ to sd card /boot. In case of m3ulcb copy dtb from $WORK/build/tmp/deploy/images/m3ulcb/. | ||
+ | #: <syntaxhighlight lang="bash"> | ||
+ | $ mount /dev/mmcblk0p1 /mnt | ||
+ | $ cd <your_yocto_build_directory> | ||
+ | $ tar xfj build/tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb-*.rootfs.tar.bz2 -C /mnt | ||
+ | $ cp $WORK/build/tmp/deploy/images/h3ulcb/XXXX.dtb /mnt/boot/ | ||
+ | </syntaxhighlight> | ||
+ | #: 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: | |
+ | *: <syntaxhighlight lang="text"> | ||
+ | # setenv bootargs 'rw root=/dev/mmcblk1p1 rootwait' | ||
+ | # ext2load mmc 0:1 0x48080000 /boot/Image | ||
+ | # ext2load mmc 0:1 0x48000000 /boot/Image-r8a7795-h3ulcb.dtb | ||
+ | # booti 0x48080000 - 0x48000000 | ||
+ | </syntaxhighlight> | ||
+ | *: 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: | ||
+ | *: <syntaxhighlight lang="text"> | ||
+ | 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=setenv bootargs ${bootargs_emmc};ext2load mmc 1:1 0x48080000 /boot/Image;ext2load mmc 1:1 0x48000000 /boot/${dtb};run booti_cmd | ||
+ | bootcmd_nfs=setenv bootargs ${bootargs_nfs};bootp 0x48080000 Image;tftp 0x48000000 ${dtb};run booti_cmd | ||
+ | bootcmd_sd0=setenv 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=Image-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 | ||
+ | </syntaxhighlight> | ||
+ | * To verify the SD card, type the following in U-Boot prompt: | ||
+ | *: <syntaxhighlight lang="text"> | ||
+ | => mmc dev 0 | ||
+ | switch to partitions #0, OK | ||
+ | mmc0 is current device | ||
+ | => mmc info | ||
+ | Device: sh-sdhi | ||
+ | Manufacturer ID: 3 | ||
+ | OEM: 5344 | ||
+ | Name: SL64G | ||
+ | Tran Speed: 50000000 | ||
+ | Rd Block Len: 512 | ||
+ | SD version 3.0 | ||
+ | High Capacity: Yes | ||
+ | Capacity: 59.5 GiB | ||
+ | Bus Width: 4-bit | ||
+ | Erase Group Size: 512 Bytes | ||
+ | => ext2ls mmc 0:1 /boot | ||
+ | <DIR> 4096 . | ||
+ | <DIR> 4096 .. | ||
+ | <SYM> 32 Image | ||
+ | 14039040 Image-4.9.0-yocto-standard | ||
+ | 69584 Image-r8a7795-h3ulcb.dtb | ||
+ | </syntaxhighlight> | ||
− | + | == How to test some capabilities == | |
− | + | === SW3 === | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | $ hexdump /dev/input/event0 | |
− | + | </syntaxhighlight> | |
− | + | === LED5/LED6 === | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | $ echo 1 > /sys/class/leds/led5(6)/brightness | |
− | + | $ echo 0 > /sys/class/leds/led5(6)/brightness | |
− | </ | + | </syntaxhighlight> |
− | < | + | === Audio === |
− | + | Ex) playback | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | $ amixer set "DVC Out" 1% | |
− | </ | + | $ aplay Sample.wav |
+ | $ gst-launch-1.0 filesrc location=sound/Calm_16bit_44100.wav ! wavparse ! alsasink | ||
+ | </syntaxhighlight> | ||
+ | Ex) record | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ amixer set "DVC In" 15% | ||
+ | $ arecord -D hw:0,0 -t wav -d 5 -c 2 -r 44100 -f S24_LE Sample.wav | ||
+ | </syntaxhighlight> | ||
+ | === Video === | ||
+ | Ex) Playback | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ amixer set "DVC Out" 1% | ||
+ | $ modprobe -a mmngr mmngrbuf vspm_if uvcs_drv | ||
+ | $ gst-launch-1.0 filesrc location=Sample.mp4 ! qtdemux name=demux \ | ||
+ | demux.audio_0 ! queue ! omxaaclcdec ! alsasink device=plughw:0,0 \ | ||
+ | demux.video_0 ! queue ! h264parse ! omxh264dec ! queue ! vspfilter ! \ | ||
+ | video/x-raw, format=BGRA, width=1920, height=1080 ! waylandsink | ||
+ | </syntaxhighlight> | ||
== FAQ == | == FAQ == | ||
− | |||
− | |||
=== How do I increase USB bandwidth === | === How do I increase USB bandwidth === | ||
− | + | # Download: | |
− | + | #: M3SK [[File:M3v10_usb20_iso_mode.zip]]<br> | |
− | + | #: H3SK WS1.1 (RTP0RC7795SKBX0010SA00) [[File:H3v11_usb20_iso_mode.zip]]<br> | |
− | + | #: H3SK WS2.0 (RTP0RC77951SKBX010SA00) [[File:H3v20_usb20_iso_mode.zip]]<br> | |
− | + | # Setting | |
− | + | #: <syntaxhighlight lang="bash"> | |
− | + | # <Install Driver> | |
− | |||
− | |||
− | < | ||
− | <Install Driver> | ||
$ modprobe qos | $ modprobe qos | ||
− | <Change directory to csv path> | + | # <Change directory to csv path> |
$ cd /path_to_csv | $ cd /path_to_csv | ||
− | <Store QoS parameters to QoS SRAM> | + | # <Store QoS parameters to QoS SRAM> |
$ qos_tp setall file.csv | $ qos_tp setall file.csv | ||
− | <Reflect Qos SRAM to QoS controller> | + | # <Reflect Qos SRAM to QoS controller> |
$ qos_tp switch | $ qos_tp switch | ||
− | </ | + | </syntaxhighlight> |
− | < | + | === How do access to USB memory from U-boot(Yocto v3.13.0 or later)=== |
+ | # Some USB memory may not be recognized. | ||
+ | #: <syntaxhighlight lang="text"> | ||
+ | => 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 | ||
+ | => | ||
+ | </syntaxhighlight> | ||
+ | # [How to fix] Set the "usb_pgood_delay 2000" variable | ||
+ | #: <syntaxhighlight lang="text"> | ||
+ | => setenv usb_pgood_delay 2000 | ||
+ | => saveenv | ||
+ | => reset | ||
+ | => usb start | ||
+ | </syntaxhighlight> | ||
== Known issues and limitations == | == Known issues and limitations == | ||
− | + | # [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 | |
− | + | # [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]] | |
− | + | ||
− | + | {{Template:R-Car-Yocto-Gen3-footer}} | |
− | |||
− |
Latest revision as of 02:37, 25 August 2022
|
Introduction
This page contains information on building and running Yocto on:
- Renesas R-Car-H3 Starter Kit Premier (unofficial name - H3ULCB)
- Renesas R-Car-M3 Starter Kit Pro (unofficial name - M3ULCB)
NOTE: USE OFFICIAL DOCUMENTATION provided with R-Car BSPs FOR H3SK/M3SK boards
See also:
- Latest version R-Car/Boards/Yocto-Gen3
- Stable version R-Car/Boards/Yocto-Gen3-stable
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) |
R-Car Starter Kit is available
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 |
Software revisions
Software | Revision |
---|---|
Yocto Project | 2.4.3 |
Toolchain gcc-poky | 7.3 |
Wayland/Weston | 1.13.0/2.0.0 |
GStreamer | 1.12.2 |
Kernel Ver | LTSI 4.14.75 |
Userland 64/32bit | 64 |
U-Boot | 2018.09 |
OP_TEE | 3.1.0 |
OpenGL ES | 3.2 |
Host PC
Ubuntu 16.04 LTS (64bit) is recommended as OS. 32bit version is not supported.
Ubuntu 18.04 LTS 64bit is also supported.
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-20190722.zip
- R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip
- Graphic drivers are required for Wayland. Multimedia drivers are optional.
- 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.
- Ubuntu and Debian
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.
- Directory Structure
|--build.sh `--proprietary |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip
- Build script(build.sh)
#!/bin/bash #Set the target board TARGET_BOARD=h3ulcb #TARGET_BOARD=m3ulcb # Create a directory and switch to it mkdir $TARGET_BOARD cd $TARGET_BOARD WORK=`pwd` echo $WORK # Clone basic Yocto layers in parallel git clone git://git.yoctoproject.org/poky & git clone git://git.linaro.org/openembedded/meta-linaro.git & git clone git://git.openembedded.org/meta-openembedded & git clone https://github.com/renesas-rcar/meta-renesas & # Wait for all clone operations wait # Switch to proper branches/commits cd $WORK/poky git checkout -b tmp 7e7ee662f5dea4d090293045f7498093322802cc cd $WORK/meta-openembedded git checkout -b tmp 352531015014d1957d6444d114f4451e241c4d23 cd $WORK/meta-linaro git checkout -b tmp 75dfb67bbb14a70cd47afda9726e2e1c76731885 cd $WORK/meta-renesas git checkout -b tmp e5267d02de785b972aa78afecfff390168e11a6d # Populate meta-renesas with proprietary software packages cd $WORK/meta-renesas sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $WORK/../proprietary 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 echo 'DISTRO_FEATURES_append = " use_eva_pkg"' >> $WORK/build/conf/local.conf bitbake core-image-weston
- build
./build.sh
- 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
- 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 git://git.linaro.org/openembedded/meta-linaro.git git clone https://github.com/renesas-rcar/meta-renesas
- Switch to proper branches/commits (2022/08/25 updated)
cd $WORK/poky git checkout -b tmp 7e7ee662f5dea4d090293045f7498093322802cc cd $WORK/meta-openembedded git checkout -b tmp 352531015014d1957d6444d114f4451e241c4d23 cd $WORK/meta-linaro git checkout -b tmp 75dfb67bbb14a70cd47afda9726e2e1c76731885 cd $WORK/meta-renesas git checkout -b tmp e5267d02de785b972aa78afecfff390168e11a6d <= 2022/08/25 updated
- Another versions are not tested for compatibility.
- Legacy BSP instruction can be found here R-Car Yocto Gen3 legacy
- 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-20190722.zip R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip
- Populate meta-renesas with proprietary software packages.
export PKGS_DIR=$WORK/../proprietary cd $WORK/meta-renesas sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR unset PKGS_DIR
- Setup build environment
cd $WORK source poky/oe-init-build-env $WORK/build
- Prepare default configuration files.
cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/<h3ulcb|m3ulcb>/poky-gcc/mmp/*.conf ./conf/ cd $WORK/build cp conf/local-wayland.conf conf/local.conf
- (Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support)
- Edit local.conf with evaluation packages requirements:
DISTRO_FEATURES_append = " use_eva_pkg"
- 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:$ ls -1 `find ./tmp/deploy/images/h3ulcb/ -maxdepth 1 -type l -print` ./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.cpio.gz ./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/Image ./tmp/deploy/images/h3ulcb/Image-h3ulcb.bin ./tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb ./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-4x2g.dtb ./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb ./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz ./tmp/deploy/images/h3ulcb/u-boot.bin ./tmp/deploy/images/h3ulcb/u-boot-elf-h3ulcb.srec ./tmp/deploy/images/h3ulcb/u-boot-elf.srec ./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin
- Image is a Kernel image, *.dtb is a blob file, core-image-weston-h3ulcb.tar.bz2 is the rootfs, modules-h3ulcb.tgz are kernel modules.
- 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
- setup environment variables for each compilation on each Host PCs
cd (Your working directory) source /opt/poky/2.4.3/environment-setup-aarch64-poky-linux export LDFLAGS=”” ${CC} (Your source code).c …..
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.
Combination of board and dtb file
Please refer to here .
Loading kernel via TFTP and rootfs via NFS
Follow these steps to setup working TFTP and NFS server:
- Setup a TFTP server.
- Ubuntu
- Install tftpd-hpa package along with tftp tools:
sudo apt-get install tftp tftpd-hpa
- Fedora
- Install necessary packages:
sudo yum install tftp-server tftp
- tftp-server is a part of xinetd. See Fedora manual for more information.
- Enable TFTP server:
sudo vi /etc/xinetd.d/tftp
- Set
disable = no
- Save file and exit.
- Start xinetd:
sudo systemctl start xinetd.service sudo systemctl enable xinetd.service
- Copy Image and Image-r8a7795-h3ulcb.dtb (for ws2.0 silicon) and/or Image-r8a7795-h3ulcb-4x2g.dtb (for RTP0RC77951SKBX010SA03(DDR 8GiB)) and/or Image-r8a7795-es1-h3ulcb.dtb (for ws1.1) from $WORK/build/tmp/deploy/images/h3ulcb/ to TFTP server root.
- Ubuntu
cp $WORK/build/tmp/deploy/images/h3ulcb/Image /srv/tftp/ cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb /srv/tftp/ cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb /srv/tftp/ cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-4x2g.dtb /srv/tftp/
- Fedora
cp $WORK/build/tmp/deploy/images/h3ulcb/Image /var/lib/tftpboot/ cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-es1-h3ulcb.dtb /var/lib/tftpboot/ cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb /var/lib/tftpboot/ cp $WORK/build/tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-4x2g.dtb /var/lib/tftpboot/
- Which version is my H3SK board?
- Ubuntu
- Verify that TFTP server is working.
tftp localhost -c get Image && ls Image
- Setup NFS server.
- Debian/Ubuntu
- Install necessary packages:
sudo apt-get install nfs-kernel-server nfs-common
- Start NFS server:
sudo /etc/init.d/nfs-kernel-server start
- Fedora
- Install necessary packages:
sudo yum install nfs-utils
- 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
- Export root FS to NFS. (Change IMAGE and MACHINE to fit your build).
- 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
- 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.
- Force NFS server to re-read /etc/exports
sudo exportfs -a
- Unpack rootfs to a dedicated directory:
- Verify that NFS is working.
[builduser@buildmachine ~]$ showmount -e localhost Export list for localhost: /nfs/h3ulcb * /nfs/m3ulcb *
- Boot into U-Boot command prompt
- Connect to serial console over microUSB using minicom or picocom.
- 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.
- Configure Ethernet, TFTP, and kernel command line in U-Boot:
setenv ipaddr <board-ip> setenv serverip <your-computer-ip> setenv bootcmd 'tftp 0x48080000 Image; tftp 0x48000000 Image-r8a7795-h3ulcb.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 bootcmd 'tftp 0x48080000 Image; tftp 0x48000000 Image-r8a7795-h3ulcb.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.
- 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
- Reset the board by pushing reset button
- Refer to H3SK board page, M3SK board page for more information.
- The board should boot the kernel:
NOTICE: BL2: R-Car Gen3 Initial Program Loader(CA57) Rev.1.0.10 NOTICE: BL2: PRR is R-Car H3 ES1.0 NOTICE: BL2: Boot device is HyperFlash(80MHz) NOTICE: BL2: LCM state is CM NOTICE: BL2: AVS setting succeeded. DVFS_SetVID=0x52 NOTICE: BL2: DDR1600(rev.0.10) NOTICE: BL2: DRAM Split is 4ch NOTICE: BL2: QoS is default setting(rev.0.32) NOTICE: BL2: Lossy Decomp areas NOTICE: Entry 0: DCMPAREACRAx:0x80000540 DCMPAREACRBx:0x570 NOTICE: Entry 1: DCMPAREACRAx:0x40000000 DCMPAREACRBx:0x0 NOTICE: Entry 2: DCMPAREACRAx:0x20000000 DCMPAREACRBx:0x0 NOTICE: BL2: v1.1(release):c2f9fc9 NOTICE: BL2: Built : 00:36:25, Nov 20 2016 NOTICE: BL2: Normal boot NOTICE: BL2: dst=0xe631a1a8 src=0x8180000 len=512(0x200) NOTICE: BL2: dst=0x43f00000 src=0x8180400 len=6144(0x1800) NOTICE: BL2: dst=0x44000000 src=0x81c0000 len=65536(0x10000) NOTICE: BL2: dst=0x44100000 src=0x8200000 len=524288(0x80000) NOTICE: BL2: dst=0x50000000 src=0x8640000 len=1048576(0x100000) U-Boot 2015.04 (Nov 20 2016 - 00:54:11) CPU: Renesas Electronics R8A7795 rev 1.0 Board: H3ULCB I2C: ready DRAM: 3.9 GiB MMC: sh-sdhi: 0, sh-sdhi: 1 In: serial Out: serial Err: serial Net: ravb Hit any key to stop autoboot: 0 ravb Waiting for PHY auto negotiation to complete.. done ravb: 100Base/Full BOOTP broadcast 1 BOOTP broadcast 2 BOOTP broadcast 3 DHCP client bound to address 192.166.10.31 (1287 ms) Using ravb device TFTP from server 192.166.10.1; our IP address is 192.166.10.31 Filename 'Image'. Load address: 0x48080000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# #################################################### 627 KiB/s done Bytes transferred = 13905920 (d43000 hex) ravb:0 is connected to ravb. Reconnecting to ravb ravb Waiting for PHY auto negotiation to complete. done ravb: 100Base/Full Using ravb device TFTP from server 192.166.10.1; our IP address is 192.166.10.31 Filename 'Image-r8a7795-h3ulcb.dtb'. Load address: 0x48000000 Loading: ############# 12.7 KiB/s done Bytes transferred = 66470 (103a6 hex) ## Flattened Device Tree blob at 48000000 Booting using the fdt blob at 0x48000000 Using Device Tree in place at 0000000048000000, end 00000000480133a5 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:
- 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
- Format this partition to ext3 (or ext4)
$ mkfs.ext3 /dev/mmcblk0p1
- Mount this partition on your host to any directory and upack the core-image-weston-*.tar.bz2 into mounted folder. And Copy Image and Image-r8a7795-h3ulcb.dtb (for ws2.0 silicon) and/or Image-r8a7795-h3ulcb-4x2g.dtb (for RTP0RC77951SKBX010SA03(DDR 8GiB)) and/or Image-r8a7795-es1-h3ulcb.dtb (for ws1.1) from $WORK/build/tmp/deploy/images/h3ulcb/ to sd card /boot. In case of m3ulcb copy dtb from $WORK/build/tmp/deploy/images/m3ulcb/.
$ mount /dev/mmcblk0p1 /mnt $ cd <your_yocto_build_directory> $ tar xfj build/tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb-*.rootfs.tar.bz2 -C /mnt $ cp $WORK/build/tmp/deploy/images/h3ulcb/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/Image-r8a7795-h3ulcb.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=setenv bootargs ${bootargs_emmc};ext2load mmc 1:1 0x48080000 /boot/Image;ext2load mmc 1:1 0x48000000 /boot/${dtb};run booti_cmd bootcmd_nfs=setenv bootargs ${bootargs_nfs};bootp 0x48080000 Image;tftp 0x48000000 ${dtb};run booti_cmd bootcmd_sd0=setenv 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=Image-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: sh-sdhi Manufacturer ID: 3 OEM: 5344 Name: SL64G Tran Speed: 50000000 Rd Block Len: 512 SD version 3.0 High Capacity: Yes Capacity: 59.5 GiB Bus Width: 4-bit Erase Group Size: 512 Bytes => ext2ls mmc 0:1 /boot <DIR> 4096 . <DIR> 4096 .. <SYM> 32 Image 14039040 Image-4.9.0-yocto-standard 69584 Image-r8a7795-h3ulcb.dtb
How to test some capabilities
SW3
$ hexdump /dev/input/event0
LED5/LED6
$ echo 1 > /sys/class/leds/led5(6)/brightness
$ echo 0 > /sys/class/leds/led5(6)/brightness
Audio
Ex) playback
$ amixer set "DVC Out" 1%
$ aplay Sample.wav
$ gst-launch-1.0 filesrc location=sound/Calm_16bit_44100.wav ! wavparse ! alsasink
Ex) record
$ amixer set "DVC In" 15%
$ arecord -D hw:0,0 -t wav -d 5 -c 2 -r 44100 -f S24_LE Sample.wav
Video
Ex) Playback
$ amixer set "DVC Out" 1%
$ modprobe -a mmngr mmngrbuf vspm_if uvcs_drv
$ gst-launch-1.0 filesrc location=Sample.mp4 ! qtdemux name=demux \
demux.audio_0 ! queue ! omxaaclcdec ! alsasink device=plughw:0,0 \
demux.video_0 ! queue ! h264parse ! omxh264dec ! queue ! vspfilter ! \
video/x-raw, format=BGRA, width=1920, height=1080 ! waylandsink
FAQ
How do I increase USB bandwidth
- 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
- M3SK File:M3v10 usb20 iso mode.zip
- 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)
- 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 =>
- [How to fix] Set the "usb_pgood_delay 2000" variable
=> setenv usb_pgood_delay 2000 => saveenv => reset => usb start
Known issues and limitations
- [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
- [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
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)