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

From eLinux.org
Jump to: navigation, search
(edit3)
(Blanked the page)
Line 1: Line 1:
{{TOC right}}
 
This page contains information on building and running Yocto on [[R-Car/Boards/Salvator-X | Renesas R-Car H3 Salvator-X]], [[R-Car/Boards/Salvator-X-View | Renesas R-Car H3 Salvator-X.View]], [[R-Car/Boards/H3ULCB | Renesas R-Car H3 H3ULCB]], [[R-Car/Boards/H3ULCB-View | Renesas R-Car H3 H3ULCB.View]] and [[R-Car/Boards/H3ULCB-HAD | Renesas R-Car H3 H3ULCB.HAD]] boards.
 
  
== Yocto versions ==
 
[http://git.yoctoproject.org/cgit/cgit.cgi/poky/tag/?id=yocto-2.0.1 Poky-2.0.1] is supported. Specific commit of meta-openembedded is required.
 
 
== Preliminary steps ==
 
<ol>
 
<li>Download proprietary graphics and multimedia drivers from Renesas. Evaluation version is available at http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp<br/>
 
Graphic drivers are required for X11 and Wayland. Multimedia drivers are optional.<br/>
 
<br/>
 
</li>
 
 
<li> Install required packages
 
===== Ubuntu and Debian =====
 
<pre>
 
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
 
    build-essential chrpath socat libsdl1.2-dev xterm python-crypto
 
</pre>
 
===== Fedora =====
 
<pre>
 
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
 
</pre>
 
Refer to [http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html#packages Yocto Project Quick Start] for more information.
 
</li>
 
</ol>
 
 
== Building the BSP for Renesas R-Car Salvator-X, Salvator-X.View, H3ULCB, H3ULCB.View and H3ULCB.HAD ==
 
<ol>
 
<li>Create a directory and switch to it <br/>
 
Warning! Yocto builds require a lot of disk space (up to 100 GB). Make sure you have got enough before starting the build.
 
<pre>
 
mkdir build
 
cd build
 
export WORK=`pwd`
 
</pre>
 
</li>
 
<li>Clone basic Yocto layers:
 
<pre>
 
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
 
</pre>
 
</li>
 
<li>
 
Switch to proper branches/commits
 
<pre>
 
cd $WORK/poky
 
git checkout -b tmp 65306b0bfc1afd0de9b1d470fd78c8c69f55f791
 
cd $WORK/meta-openembedded
 
git checkout -b tmp cb7e68f2a39fa6f24add48fc7b8d38fb7291bb44
 
cd $WORK/meta-linaro
 
git checkout -b tmp acf4f1f701e07670ec88435897a74f88dbe8ba87
 
 
</pre>
 
Another versions are not tested for compatibility.
 
</li>
 
 
<li>
 
Clone Renesas BSP layer and switch to the proper branch:
 
<pre>
 
cd $WORK
 
git clone git://github.com/CogentEmbedded/meta-renesas-gen3.git meta-renesas
 
</pre>
 
</li>
 
<li>
 
Apply Linaro-GCC patch file:
 
<pre>
 
cd $WORK/meta-renesas
 
export PATCH_DIR=meta-rcar-gen3/docs/sample/patch/patch-for-linaro-gcc
 
patch -p1 < ${PATCH_DIR}/0001-rcar-gen3-add-readme-for-building-with-Linaro-Gcc.patch
 
unset PATCH_DIR
 
</pre>
 
</li>
 
<li>
 
Download proprietary driver modules from http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp and unzip them to $WORK/proprietary folder.<br/>
 
You should see the following files:
 
<pre>
 
$ ls -1 $WORK/proprietary
 
R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20160526.tar.gz
 
R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20160526.tar.gz
 
</pre>
 
</li>
 
<li>
 
Populate meta-renesas with proprietary software packages.
 
<pre>
 
PKGS_DIR=$WORK/proprietary
 
cd $WORK/meta-renesas
 
sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR
 
</pre>
 
</li>
 
 
<li>
 
Setup build environment
 
<pre>
 
cd $WORK
 
source poky/oe-init-build-env
 
</pre>
 
</li>
 
 
<li>
 
Prepare default configuration files.
 
<pre>
 
cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/<salvator-x|h3ulcb>/linaro-gcc/mmp/*.conf ./conf/
 
</pre>
 
For weston/wayland:
 
<pre>
 
cd $WORK/build
 
cp conf/local-wayland.conf conf/local.conf
 
</pre>
 
For X11:
 
<pre>
 
cd $WORK/build
 
cp conf/local-x11.conf conf/local.conf
 
</pre>
 
<li>
 
Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support
 
</li>
 
'''For H3ULCB board only:'''<br />
 
 
<ol>
 
<li>
 
Edit local.conf to select IO configuration (by default only H3ULCB board peripherals are enabled):
 
<pre>
 
MACHINE_FEATURES_append = " h3ulcb-view" (use this append for View IO configuration)
 
</pre>
 
or
 
<pre>
 
MACHINE_FEATURES_append = " h3ulcb-had" (use this append for HAD IO configuration)
 
</pre>
 
</li>
 
</ol>
 
 
</li>
 
'''For Salvator-X board only:'''<br />
 
 
<ol>
 
<li>
 
Edit local.conf to select IO configuration (by default only Salvator-X board peripherals are enabled):
 
<pre>
 
MACHINE_FEATURES_append = " salvator-x-view" (use this append for View IO configuration)
 
</pre>
 
</li>
 
</ol>
 
 
</li>
 
 
<li>
 
Edit local.conf to build only lib64, since evaluation packages do not include lib32 support:
 
<pre>
 
IMAGE_INSTALL_remove += " lib32-weston lib32-packagegroup-multimedia-libs lib32-omx-user-module lib32-libdrm lib32-libdrm-kms lib32-gles-user-module"
 
</pre>
 
</li>
 
 
<li>
 
Start the build <br />
 
For weston/wayland:
 
<pre>
 
bitbake core-image-weston
 
</pre>
 
For X11:
 
<pre>
 
bitbake core-image-x11
 
</pre>
 
</li>
 
 
<li>
 
Building image can take upto a few hours depending on your host system performance.<br>
 
After the build has been completed successfuly, you should see the output similar to:
 
<pre class="bash">
 
NOTE: Tasks Summary: Attempted 4704 tasks of which 31 didn't need to be rerun and all succeeded.
 
</pre>
 
and the command prompt should return.
 
</li>
 
 
<li>
 
Bitbake has generated all the necessary files in ./tmp/deploy/images directory. <br/>
 
You can verify its content:
 
<pre class="bash">
 
$ 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-h3ulcb.dtb
 
./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-had.dtb
 
./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-view.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
 
</pre>
 
'''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.
 
</li>
 
<li>
 
You can now [[R-Car/Boards/H3ULCB#Booting over TFTP from U-Boot|boot R-Car H3 H3ULCB board over TFTP and NFS]]
 
</li>
 
</ol>
 
 
== Known issues and limitations ==
 
TBD
 

Revision as of 07:04, 20 June 2016