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

From eLinux.org
Jump to: navigation, search
(edit1)
(edit2)
Line 121: Line 121:
 
Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support
 
Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support
 
</li>
 
</li>
'''For Stout board only:'''<br />
+
'''For H3ULCB board only:'''<br />
  
 
<ol>
 
<ol>
 
<li>
 
<li>
Edit local.conf to select version of OpenGL ES:
+
Edit local.conf to select IO configuration (by default only H3ULCB board peripherals are enabled):
 
<pre>
 
<pre>
OPENGLES3 = “0” (use “1” for OpenGL ES3.0, or “0” for OpenGL ES2.0)
+
MACHINE_FEATURES_append = " h3ulcb-view" (use this append for View IO configuration)
</pre>
 
</li>
 
<li>
 
Edit local.conf to select IO configuration (by default only stout cpu board peripherals are enabled):
 
<pre>
 
MACHINE_FEATURES_append = " stout-full" (use this append for full IO configuration)
 
 
</pre>
 
</pre>
 
or
 
or
 
<pre>
 
<pre>
MACHINE_FEATURES_append = " stout-view" (use this append for view IO configuration)
+
MACHINE_FEATURES_append = " h3ulcb-had" (use this append for HAD IO configuration)
 
</pre>
 
</pre>
or
+
</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>
 
<pre>
MACHINE_FEATURES_append = " stout-had" (use this append for HAD IO configuration)
+
MACHINE_FEATURES_append = " salvator-x-view" (use this append for View IO configuration)
 
</pre>
 
</pre>
 
</li>
 
</li>
 
</ol>
 
</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>
  
Line 173: Line 182:
 
You can verify its content:
 
You can verify its content:
 
<pre class="bash">
 
<pre class="bash">
[builduser]$ ls -lh `find ./tmp/deploy/images/silk/ -maxdepth 1 -type l -print`
+
$ ls -1 `find ./tmp/deploy/images/h3ulcb/ -maxdepth 1 -type l -print`
lrwxrwxrwx. 1 builduser builduser 50 Dec  9 02:47 ./tmp/deploy/images/silk/core-image-x11-silk.manifest -> core-image-x11-silk-20141208223655.builduserfs.manifest
+
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.cpio.gz
lrwxrwxrwx. 1 builduser builduser 49 Dec  9 02:47 ./tmp/deploy/images/silk/core-image-x11-silk.tar.bz2 -> core-image-x11-silk-20141208223655.builduserfs.tar.bz2
+
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.ext4
lrwxrwxrwx. 1 builduser builduser 84 Dec  9 02:43 ./tmp/deploy/images/silk/modules-silk.tgz -> modules--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655.tgz
+
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.manifest
lrwxrwxrwx. 1 builduser builduser 52 Dec  9 02:46 ./tmp/deploy/images/silk/u-boot.bin -> u-boot-silk-v2013.01.01+gitAUTOINC+74b16badc2-r0.bin
+
./tmp/deploy/images/h3ulcb/core-image-weston-h3ulcb.tar.bz2
lrwxrwxrwx. 1 builduser builduser 52 Dec  9 02:46 ./tmp/deploy/images/silk/u-boot-silk.bin -> u-boot-silk-v2013.01.01+gitAUTOINC+74b16badc2-r0.bin
+
./tmp/deploy/images/h3ulcb/Image
lrwxrwxrwx. 1 builduser builduser 83 Dec  9 02:43 ./tmp/deploy/images/silk/uImage -> uImage--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655.bin
+
./tmp/deploy/images/h3ulcb/Image-h3ulcb.bin
lrwxrwxrwx. 1 builduser builduser 83 Dec  9 02:43 ./tmp/deploy/images/silk/uImage+dtb -> uImage+dtb--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655
+
./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb.dtb
lrwxrwxrwx. 1 builduser builduser 91 Dec  9 02:43 ./tmp/deploy/images/silk/uImage-r8a7794-silk.dtb -> uImage--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-r8a7794-silk-20141208223655.dtb
+
./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-had.dtb
lrwxrwxrwx. 1 builduser builduser 83 Dec  9 02:43 ./tmp/deploy/images/silk/uImage-silk.bin -> uImage--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655.bin
+
./tmp/deploy/images/h3ulcb/Image-r8a7795-h3ulcb-view.dtb
lrwxrwxrwx. 1 builduser builduser 79 Dec  9 02:43 ./tmp/deploy/images/silk/zImage -> zImage--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655
+
./tmp/deploy/images/h3ulcb/modules-h3ulcb.tgz
lrwxrwxrwx. 1 builduser builduser 83 Dec  9 02:43 ./tmp/deploy/images/silk/zImage+dtb -> zImage+dtb--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655
+
./tmp/deploy/images/h3ulcb/u-boot.bin
</pre>
+
./tmp/deploy/images/h3ulcb/u-boot-elf-h3ulcb.srec
'''modules-silk.tgz''' is compressed Kernel image, '''core-image-x11-silk.tar.bz2''' is the rootfs, '''modules-silk.tgz''' are kernel modules.
+
./tmp/deploy/images/h3ulcb/u-boot-elf.srec
</li>
+
./tmp/deploy/images/h3ulcb/u-boot-h3ulcb.bin
<li>
 
You can now [[R-Car/Boards/SILK#Booting over TFTP from U-Boot|boot R-Car E2 SILK board over TFTP and NFS]]
 
</li>
 
</ol>
 
 
 
== Running Yocto image ==
 
Linux kernel can be booted from microSD card or from TFTP. Root FS can be mounted from micro SD card or via NFS.
 
 
 
=== Loading kernel via TFTP and rootfs via NFS ===
 
Follow these steps to setup working TFTP and NFS server:
 
<ol>
 
<li>
 
Setup a TFTP server.
 
==== Ubuntu ====
 
Install '''tftpd-hpa''' package along with tftp tools:
 
<pre>
 
sudo apt-get install tftp tftpd-hpa
 
</pre>
 
 
 
==== Fedora ====
 
<ol>
 
<li>
 
Install necessary packages:
 
<pre>
 
sudo yum install tftp-server tftp
 
</pre>
 
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.
 
</li>
 
<li>
 
Enable TFTP server:
 
<pre>
 
sudo vi /etc/xinetd.d/tftp
 
 
</pre>
 
</pre>
Set <pre>disable = no</pre> Save file and exit.
+
'''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>
 
<li>
 
<li>
Start xinetd:
+
You can now [[R-Car/Boards/H3ULCB#Booting over TFTP from U-Boot|boot R-Car H3 H3ULCB board over TFTP and NFS]]
<pre>
 
sudo systemctl start xinetd.service
 
sudo systemctl enable xinetd.service
 
</pre>
 
 
</li>
 
</li>
 
</ol>
 
</ol>
 
</li>
 
 
<li>
 
Copy '''uImage''' and '''uImage-r8a7794-silk.dtb''' from $WORK/build/tmp/deploy/images/silk/ to TFTP server root.
 
==== Ubuntu ====
 
<pre>
 
cp $WORK/build/tmp/deploy/images/silk/uImage /srv/tftp/
 
cp $WORK/build/tmp/deploy/images/silk/uImage-r8a7794-silk.dtb /srv/tftp/
 
</pre>
 
 
==== Fedora ====
 
<pre>
 
cp $WORK/build/tmp/deploy/images/silk/uImage /var/lib/tftpboot/
 
cp $WORK/build/tmp/deploy/images/silk/uImage-r8a7794-silk.dtb /var/lib/tftpboot/
 
</pre>
 
</li>
 
 
<li>
 
Verify that TFTP server is working.
 
<pre>
 
tftp localhost -c get uImage && ls uImage
 
</pre>
 
</li>
 
 
<li>
 
Setup NFS server.
 
==== Debian/Ubuntu ====
 
<ol>
 
<li>
 
Install necessary packages:
 
<pre>
 
sudo apt-get install nfs-kernel-server nfs-common
 
</pre>
 
</li>
 
<li>
 
Start NFS server:
 
<pre>
 
sudo /etc/init.d/nfs-kernel-server start
 
</pre>
 
</li>
 
</ol>
 
 
==== Fedora ====
 
<ol>
 
<li>
 
Install necessary packages:
 
<pre>
 
sudo yum install nfs-utils
 
</pre>
 
</li>
 
<li>
 
Enable and start nfs server:
 
<pre>
 
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
 
</pre>
 
</li>
 
</ol>
 
</li>
 
 
<li>
 
Export root FS to NFS. (Change IMAGE and MACHINE to fit your build).
 
<ol>
 
<li>
 
Unpack rootfs to a dedicated directory:
 
<pre>
 
IMAGE=weston|x11|sato|directfb
 
MACHINE=silk|porter
 
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
 
</pre>
 
</li>
 
<li>
 
Edit '''/etc/exports''':
 
<pre>
 
sudo vi /etc/exports
 
</pre>
 
add
 
<pre>
 
/nfs/silk *(rw,no_subtree_check,sync,no_root_squash,no_all_squash)
 
/nfs/porter *(rw,no_subtree_check,sync,no_root_squash,no_all_squash)
 
</pre>
 
Save the file and exit.
 
</li>
 
<li>
 
Force NFS server to re-read /etc/exports
 
<pre>sudo exportfs -a</pre>
 
</li>
 
</ol>
 
</li>
 
<li>
 
Verify that NFS is working.
 
<pre>
 
[builduser@buildmachine ~]$ showmount -e localhost
 
Export list for localhost:
 
/nfs/silk *
 
/nfs/porter *
 
</pre>
 
</li>
 
 
<li><span id="Boot into U-Boot command prompt">Boot into U-Boot command prompt</span>
 
===== For [[R-Car/Boards/SILK|SILK board]] =====
 
<ol>
 
<li>
 
Make sure SW9 is on pin 1 side. <br/>
 
[[File:SILKSwitch.png|100px|Switch pin layout]]
 
</li>
 
<li>
 
Connect to serial console over microUSB using minicom or picocom.
 
</li>
 
<li>
 
Switch the board on or reset it. Press any key to stop U-Boot automatic countdown.
 
</li>
 
</ol>
 
Refer to [[R-Car/Boards/SILK#Power on the board and go to U-Boot prompt|SILK board page]] for more information.
 
===== For [[R-Car/Boards/Porter|Porter board]] =====
 
<ol>
 
<li>
 
TBD
 
</li>
 
</ol>
 
NOTE: [[R-Car/Boards/Stout|Stout board]] does not have extra switches to select boot device (e.g. primary and secondary/backup QSPI Flash)
 
 
</li>
 
 
<li>
 
Configure Ethernet, TFTP, and kernel command line in U-Boot:
 
<!--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/>
 
-->
 
<pre>
 
setenv ipaddr <board-ip>
 
setenv serverip <your-computer-ip>
 
setenv bootcmd 'tftp 0x40007fc0 uImage; tftp 0x40f00000 uImage-r8a7794-silk.dtb; bootm 0x40007fc0 - 0x40f00000'
 
setenv bootargs 'console=ttySC10,38400 ignore_loglevel rw root=/dev/nfs nfsroot=<your-computer-ip>:<nfs-path>,nfsvers=3 ip=<board-ip>:<your-computer-ip>::255.255.255.0:silk vmalloc=384M'
 
saveenv
 
</pre>
 
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:
 
<pre>
 
setenv ipaddr 192.168.1.3
 
setenv serverip 192.168.1.2
 
setenv bootcmd 'tftp 0x40007fc0 uImage; tftp 0x40f00000 uImage-r8a7794-silk.dtb; bootm 0x40007fc0 - 0x40f00000'
 
setenv bootargs 'console=ttySC10,38400 ignore_loglevel rw root=/dev/nfs nfsroot=192.168.1.2:/nfs/silk,nfsvers=3 ip=192.168.1.3:192.168.1.2::255.255.255.0:silk vmalloc=384M'
 
saveenv
 
</pre>
 
The last command writes the configuration to SPI flash.
 
<pre>
 
=> saveenv                                                                                                                                 
 
Saving Environment to SPI Flash...                                                                                                         
 
SF: Detected S25FL512S with page size 256 KiB, total 64 MiB                                                                               
 
Erasing SPI flash...Writing to SPI flash...done
 
</pre>
 
You can also use
 
<pre>
 
dhcp
 
</pre>
 
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.
 
</li>
 
 
<li>
 
Verify the connection over Ethernet from U-Boot:
 
<pre>
 
ping <your-computer-ip>
 
</pre>
 
You should see:
 
<pre>
 
=> ping 192.168.1.2                                                                                                               
 
sh_eth Waiting for PHY auto negotiation to complete... done
 
sh_eth: 100Base/Full
 
Using sh_eth device
 
host 192.168.1.2 is alive
 
</pre>
 
</li>
 
 
<li>
 
Reset the board by pushing [[R-Car/Boards/SILK:Hardware#Switches and Buttons|SW5 "Reset"]].
 
</li>
 
 
<li>
 
The board should boot the kernel:
 
<pre>
 
SILK SPI_LOADER V0.07c 2014.10.20                                                                                                         
 
DEVICE S25FL512                                                                                                                           
 
                                                                                                                                           
 
                                                                                                                                           
 
U-Boot 2013.01.01-g74b16ba-dirty (Dec 23 2014 - 15:31:50)                                                                                 
 
                                                                                                                                           
 
CPU: Renesas Electronics R8A7794 rev 1.0                                                                                                   
 
Board: Silk Board                                                                                                                         
 
                                                                                                                                           
 
DRAM:  1 GiB                                                                                                                               
 
MMC:  sh_mmcif: 0, sh-sdhi: 1                                                                                                             
 
SF: Detected S25FL512S with page size 256 KiB, total 64 MiB                                                                               
 
In:    serial                                                                                                                             
 
Out:  serial                                                                                                                             
 
Err:  serial                                                                                                                             
 
Net:  sh_eth                                                                                                                             
 
Hit any key to stop autoboot:  0                                                                                                           
 
sh_eth Waiting for PHY auto negotiation to complete... done                                                                               
 
sh_eth: 100Base/Full                                                                                                                       
 
Using sh_eth device                                                                                                                       
 
TFTP from server 192.168.1.2; our IP address is 192.168.1.3                                                                           
 
Filename 'uImage'.                                                                                                                         
 
Load address: 0x40007fc0                                                                                                                   
 
Loading: #################################################################                                                                 
 
        #################################################################                                                                 
 
        #################################################################                                                                 
 
        ##############################################                                                                                   
 
        3.5 MiB/s                                                                                                                         
 
done                                                                                                                                       
 
Bytes transferred = 3525472 (35cb60 hex)                                                                                                   
 
sh_eth:1 is connected to sh_eth.  Reconnecting to sh_eth                                                                                   
 
sh_eth Waiting for PHY auto negotiation to complete... done                                                                               
 
sh_eth: 100Base/Full                                                                                                                       
 
Using sh_eth device                                                                                                                       
 
TFTP from server 192.168.1.2; our IP address is 192.168.1.3                                                                           
 
Filename 'uImage-r8a7794-silk.dtb'.                                                                                                       
 
Load address: 0x40f00000                                                                                                                   
 
Loading: ##                                                                                                                               
 
        3 MiB/s                                                                                                                           
 
done                                                                                                                                       
 
Bytes transferred = 24859 (611b hex)                                                                                                       
 
## Booting kernel from Legacy Image at 40007fc0 ...                                                                                       
 
  Image Name:  Linux-3.10.31-ltsi                                                                                                       
 
  Image Type:  ARM Linux Kernel Image (uncompressed)                                                                                     
 
  Data Size:    3525408 Bytes = 3.4 MiB                                                                                                   
 
  Load Address: 40008000                                                                                                                 
 
  Entry Point:  40008000                                                                                                                 
 
  Verifying Checksum ... OK                                                                                                               
 
## Flattened Device Tree blob at 40f00000                                                                                                 
 
  Booting using the fdt blob at 0x40f00000                                                                                               
 
  XIP Kernel Image ... OK                                                                                                                 
 
OK                                                                                                                                         
 
  Loading Device Tree to 40ef6000, end 40eff11a ... OK                                                                                   
 
                                                                                                                                           
 
Starting kernel ...                                                                                                                       
 
</pre>
 
</li>
 
</ol>
 
 
=== Loading kernel and rootfs from microSD card ===
 
Both kernel and root FS can be loaded from a microSD card. The approach requires only a console cable. No Ethernet connection is needed.
 
<ol>
 
<li>
 
Find a reliable microSD card with an adapter to fit your computer. 4 GB should be enough for the task.
 
</li>
 
 
<li>
 
Plug the SD card into you computer. Locate the proper device for it, typically '''/dev/mmcblk0'''. Use
 
<pre>
 
dmesg | tail
 
</pre>
 
to print latest messages if in doubt.<br/>
 
<span style="color:#ff0000">'''WARNING!''' Be very careful. Do not select you root partition or any other device with important information.  It may be destroyed!</span><br/>
 
Double-check that device name is correct by mounting and examining it's content.
 
</li>
 
 
<li>
 
Make sure the SD card doesn't contain any important files.<br/>
 
<span style="color:#ff0000">'''WARNING!''' Next step may erase the SD card completely. All files my be lost.</span>
 
</li>
 
 
<li>
 
Format the card with one partition with EXT3 file system.<br/>
 
''TBD Update this page with a script which formats the card''
 
</li>
 
 
<li>
 
Copy root fs to the sd card:
 
<pre>
 
SD=<path-to-your-device-partition>
 
SD_ROOT=/tmp/sd-tool
 
sudo umount "${SD}"
 
sudo mkdir -p "${SD_ROOT}"
 
sudo mount "${SD}" "${SD_ROOT}"
 
sudo rm -rf "${SD_ROOT}"/*
 
sudo cp "${BUILDDIR}/tmp/deploy/images/${MACHINE}/uImage+dtb" "${SD_ROOT}/boot/"
 
sudo tar -xjf "${BUILDDIR}/tmp/deploy/images/${MACHINE}/core-image-${IMAGE}-${MACHINE}.tar.bz2" -C "${SD_ROOT}"
 
sudo umount "${SD}"
 
</pre>
 
</li>
 
 
<li>
 
Insert the SD card into microSD slot on the board.
 
</li>
 
 
<li> Boot the board into U-Boot command prompt. Refer to section [[R-Car/Boards/Yocto#Boot into U-Boot command prompt|Boot into U-Boot command prompt]]
 
</li>
 
 
<li>
 
Configure kernel command line in U-Boot:<br/>
 
(For Silk board)
 
<pre>
 
setenv bootcmd 'ext4load mmc 1:1 0x40007fc0 /boot/uImage+dtb; bootm 0x40007fc0'
 
setenv bootargs 'console=ttySC10,38400 ignore_loglevel rw rootfstype=ext3 root=/dev/mmcblk0p1 rootwait vmalloc=384M'
 
saveenv
 
</pre>
 
(For Porter board)
 
<pre>
 
setenv bootcmd 'ext4load mmc 1:1 0x40007fc0 /boot/uImage+dtb; bootm 0x40007fc0'
 
setenv bootargs 'console=ttySC6,38400 ignore_loglevel rw rootfstype=ext3 root=/dev/mmcblk0p1 rootwait vmalloc=384M'
 
saveenv
 
</pre>
 
(For Stout board)
 
<pre>
 
setenv bootcmd 'ext4load mmc 0:1 0x40007fc0 /boot/uImage+dtb; bootm 0x40007fc0'
 
setenv bootargs 'console=ttySC0,38400 ignore_loglevel rw rootfstype=ext3 root=/dev/mmcblk0p1 rootwait vmalloc=384M video=HDMI-A-1:1024x768-32@60'
 
saveenv
 
</pre>
 
The last command writes the configuration to SPI flash.
 
<pre>
 
=> saveenv                                                                                                                                 
 
Saving Environment to SPI Flash...                                                                                                         
 
SF: Detected S25FL512S with page size 256 KiB, total 64 MiB                                                                               
 
Erasing SPI flash...Writing to SPI flash...done
 
</pre>
 
</li>
 
 
<li>
 
Reset the board by pushing [[R-Car/Boards/SILK:Hardware#Switches and Buttons|SW5 "Reset" on SILK]], [[R-Car/Boards/Porter:Hardware#Switches and Buttons|SWTBD "Reset" on Porter]] or [[R-Car/Boards/Stout:Hardware#Switches and Buttons|SW2 "Reset" on Stout]]
 
</li>
 
 
<li>
 
The board should boot the kernel:
 
<pre>
 
SILK SPI_LOADER V0.07c 2014.10.20                                                                                                         
 
DEVICE S25FL512                                                                                                                           
 
                                                                                                                                           
 
                                                                                                                                           
 
U-Boot 2013.01.01-g74b16ba-dirty (Dec 23 2014 - 15:31:50)                                                                                 
 
                                                                                                                                           
 
CPU: Renesas Electronics R8A7794 rev 1.0                                                                                                   
 
Board: Silk Board                                                                                                                         
 
                                                                                                                                           
 
DRAM:  1 GiB                                                                                                                               
 
MMC:  sh_mmcif: 0, sh-sdhi: 1                                                                                                             
 
SF: Detected S25FL512S with page size 256 KiB, total 64 MiB                                                                               
 
In:    serial                                                                                                                             
 
Out:  serial                                                                                                                             
 
Err:  serial                                                                                                                             
 
Net:  sh_eth                                                                                                                             
 
Hit any key to stop autoboot:  0                                                                                                           
 
3534603 bytes read in 498 ms (6.8 MiB/s)                                                                                                   
 
## Booting kernel from Legacy Image at 40007fc0 ...                                                                                       
 
  Image Name:  'Linux-3.10.31-ltsi'                                                                                                     
 
  Image Type:  ARM Linux Kernel Image (uncompressed)                                                                                     
 
  Data Size:    3534539 Bytes = 3.4 MiB                                                                                                   
 
  Load Address: 40008000                                                                                                                 
 
  Entry Point:  40008000                                                                                                                 
 
  Verifying Checksum ... OK                                                                                                               
 
  XIP Kernel Image ... OK                                                                                                                 
 
OK                                                                                                                                         
 
                                                                                                                                           
 
Starting kernel ...     
 
</pre>
 
</li>
 
 
</ol>
 
 
=== Multiboot ===
 
U-Boot allows multiboot configurations. U-Boot can try different boot commands one by one until find the first working command. Use command line interface to configure u-boot.
 
Dual source (MMC and NFS) boot configuration for Silk:
 
<pre>
 
setenv mkBootcmdMMC 'setenv bootcmd ext4load mmc 1:1 0x40007fc0 /boot/uImage+dtb\; bootm 0x40007fc0'
 
setenv mkBootargsMMC 'setenv bootargs console=ttySC10,38400 ignore_loglevel rw rootfstype=ext3 root=/dev/mmcblk0p1 rootwait vmalloc=384M'
 
setenv mkBootcmdTFTP 'setenv bootcmd tftp 0x40007fc0 uImage+dtb.silk\; bootm 0x40007fc0'
 
setenv mkBootargsNFS 'setenv bootargs console=ttySC10,38400 ignore_loglevel rw root=/dev/nfs nfsroot=192.168.1.27:/nfs/silk,nfsvers=3 ip=192.168.1.107:192.168.1.27::255.255.255.0:silk vmalloc=384M'
 
setenv bootMMC 'run mkBootargsMMC; run mkBootcmdMMC; run bootcmd'
 
setenv bootNET 'run mkBootargsNFS; run mkBootcmdTFTP; run bootcmd'
 
setenv bootcmd 'run bootMMC; run bootNET'
 
</pre>
 
For Porter and Stout mkBootcmdMMC, mkBootargsMMC, mkBootcmdTFTP and mkBootargsNFS should be correctly changed according to their bootcmds and bootargs
 
  
 
== Known issues and limitations ==
 
== Known issues and limitations ==
 
TBD
 
TBD

Revision as of 15:47, 8 June 2016

This page contains information on building and running Yocto on Renesas R-Car H3 Salvator-X, Renesas R-Car H3 Salvator-X.View, Renesas R-Car H3 H3ULCB, Renesas R-Car H3 H3ULCB.View and Renesas R-Car H3 H3ULCB.HAD boards.

Yocto versions

Poky-2.0.1 is supported. Specific commit of meta-openembedded is required.

Preliminary steps

  1. Download proprietary graphics and multimedia drivers from Renesas. Evaluation version is available at http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp
    Graphic drivers are required for X11 and Wayland. Multimedia drivers are optional.

  2. 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
    
    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
    

    Refer to Yocto Project Quick Start for more information.

Building the BSP for Renesas R-Car Salvator-X, Salvator-X.View. H3ULCB, H3ULCB.View and H3ULCB.HAD

  1. 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`
    
  2. 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
    
  3. Switch to proper branches/commits
    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
    
    

    Another versions are not tested for compatibility.

  4. Clone Renesas BSP layer and switch to the proper branch:
    cd $WORK
    git clone git://github.com/CogentEmbedded/meta-renesas-gen3.git meta-renesas
    
  5. Apply Linaro-GCC patch file:
    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
    
  6. Download proprietary driver modules from http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp and unzip them to $WORK/proprietary folder.
    You should see the following files:
    $ 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
    
  7. Populate meta-renesas with proprietary software packages.
    PKGS_DIR=$WORK/proprietary
    cd $WORK/meta-renesas
    sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR
    
  8. Setup build environment
    cd $WORK
    source poky/oe-init-build-env
    
  9. Prepare default configuration files.
    cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/<salvator-x|h3ulcb>/linaro-gcc/mmp/*.conf ./conf/
    

    For weston/wayland:

    cd $WORK/build
    cp conf/local-wayland.conf conf/local.conf
    

    For X11:

    cd $WORK/build
    cp conf/local-x11.conf conf/local.conf
    
  10. Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support
  11. For H3ULCB board only:

    1. Edit local.conf to select IO configuration (by default only H3ULCB board peripherals are enabled):
      MACHINE_FEATURES_append = " h3ulcb-view" (use this append for View IO configuration)
      

      or

      MACHINE_FEATURES_append = " h3ulcb-had" (use this append for HAD IO configuration)
      

    For Salvator-X board only:

    1. Edit local.conf to select IO configuration (by default only Salvator-X board peripherals are enabled):
      MACHINE_FEATURES_append = " salvator-x-view" (use this append for View IO configuration)
      
  12. Edit local.conf to build only lib64, since evaluation packages do not include lib32 support:
    IMAGE_INSTALL_remove += " lib32-weston lib32-packagegroup-multimedia-libs lib32-omx-user-module lib32-libdrm lib32-libdrm-kms lib32-gles-user-module"
    
  13. Start the build
    For weston/wayland:
    bitbake core-image-weston
    

    For X11:

    bitbake core-image-x11
    
  14. Building image can take upto a few hours depending on your host system performance.
    After the build has been completed successfuly, 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.

  15. 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-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
    

    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.

  16. You can now boot R-Car H3 H3ULCB board over TFTP and NFS

Known issues and limitations

TBD