Getting Started Guide for iMX6 Sabre-SDP

From RidgeRun Developer Wiki
Revision as of 16:56, 2 June 2017 by Spalli (talk | contribs)


Template:Eval SDK Download, Demo Image download and Contact Us buttons

Introduction

On this page you are going to find all the necessary information to start from scratch to use the RidgeRun SDK on your iMX6 Sabre-SDP board. In the following sections we assume that you have already installed the toolchain 2009q1-203 from codesourcery.

The second section of this guide shows instructions about how to configure your host PC before to perform any installation. Subsequently, the third section shows how to configure the RidgeRun's SDK to install all software components (uboot, kernel and filesystem) needed to boot to Linux Shell in your EVM. Finally, demo and some pipelines using gstreamer are shown.

On the rest of this document, we refer as $DEVDIR to the path where the RidgeRun SDK for iMX6 Sabre-SDP is installed.

Basic preliminary work

Setting up serial access to the Linux console

You can use termnet to control u-boot and linux. For this purpose, the board needs to be connected to the same network as the host computer. This is useful because the board doesn't have to be directly connected to the PC containing the SDK.

Setting up termnet - Ubuntu

If you use the serial port to control u-boot and Linux. The picocom terminal emulator work well for this purpose.

Setting up Picocom - Ubuntu

Setting up a NFS server

For application development, it is convenient to use root NFS mount file system for the target hardware. This allows you to rebuild your application on the host and immediately run the application on the target hardware with no interveining steps. Your host PC needs to be configured as a NFS server for this in order to work properly.

Setting Up A NFS Service

Getting the RidgeRun's EVAL SDK Irazu

If you want to get the RidgeRun's EVAL SDK Irazu you need to go to our Evaluation SDK Download Link and select the Evaluation SDK you need. You will be asked for your email address and some information. Once you have submitted the required information you will receive an email with the following information:

Sequence of evaluation sdk download events:

You have to follow the steps below :

When you select and click on the name of evaluation sdk you want to download, shopping cart page will display with the price $0.00 (for eval sdk's)
-> click on 'Go to Checkout'. It will display 'Your Shopping Bag' page
-> click on 'Checkout'. You will get a form to enter your email id and other info
-> click on 'Continue'. It will display a 'Place Order' page
-> click on 'Place Order'. And then Please check your email with a link to download the tar file for the evaluation SDK you have selected.

Installing the EVAL SDK version

RidgeRun delivers the SDK in either two ways: a tar file for x86 platforms, or for customers with a established development relationship through a custom SCM (typically GIT) repository. If you are using a shared SCM repository, please contact RidgeRun for a detailed instructions.

System Requirements

Listed below are the minimum recommended requirements for installing and using the RidgeRun SDK:

  • A host computer with a 686 or better family processor
  • 1 GB free hard disk space
  • A Linux distribution configured on the host computer.
  • Target hardware for the SDK
  • Optional: a network card installed and configured on the host computer
  • Optional: Internet connection for SDK updates

Once you have downloaded the tar file of the evaluation SDK you can untar it by running the following command:

tar -xvzf <name of the tar file downloaded>.tar.gz 

You may find it convenient to untar the evaluation SDK more than once. For example, you might want one version to be unmodified and another version to be your working development directory. RidgeRun suggests you untar the SDK development directories in your $HOME/work/ directory. When you have more than one development directory installed, just remember to have the DEVDIR shell variable set properly. To set the DEVDIR shell variable use the `make env` command specified at RidgeRun_Irazu_SDK_User_Guide#Build_SDK

On the rest of this document, we refer as $DEVDIR to the path where the RidgeRun Eval SDK for Freescale/NXP iMX6 Sabre-SDP is installed.

Installing the Professional SDK version

When all the purchase process is done, RidgeRun will provide you a GitHub repository access. For that, the GitHub user ID and other information might be requested. Once you provide that information, you must clone the given repository URL, using the next command:

git clone git@github.com:RidgeRun/<customer>.git

This would have the proper <customer> space modified. With this, you will have the SDK installed on the directory you were when executed the clone command.

RidgeRun suggests you install the SDK development directories in your $HOME/work/ directory. When you have more than one development directory installed, just remember to have the DEVDIR shell variable set properly. To set the DEVDIR shell variable use the `make env` command specified at RidgeRun_Irazu_SDK_User_Guide#Build_SDK

On the rest of this document, we refer as $DEVDIR to the path where the RidgeRun Professional SDK for Freescale/NXP iMX6 Sabre-SDP is installed.

Configuring the SDK for components installation

The board supports two different boot modes, boot from SD Card (Slot 2 or Slot 3) and boot from eMMC . The bootloader is always going to be installed out of the boot partition in a pre-defined offset as required for the processor, the kernel and environment are going to be installed in the boot partition and the file system is going to be either in a SD card or NFS.

For all the available boot modes the SDK is going to help you with the creation of a bootable SD card by following some easy steps. The following subsections describe how to configure the iMX6 SDK to install all basic components (kernel, uboot and file system).

Prepare your environment

1. Set your environment variables

  
 cd $DEVDIR
 `make env`

2. Open a make config menu

 
make config

running make config your SDK is going to download all basic packages needed by the build system.

Kernel location

The kernel can be installed either in a SD card (default configuration) or in a tftp server.

To enable the kernel to be installed in a tftp server go to Installer configuration and select the option Start kernel via tftp. With this option enabled the SDK is going to install the kernel image in your tftp server and the board is going to be configured to start the kernel from there.

Kernel location
Kernel location

Note: Make sure you have your tftp server properly configured if you are going to use the Start kernel via tftp option (see Setting Up A Tftp Service for details).

Selecting between Quad or DualLite board

The iMX6 Sabre-SDP board comes in two versions, one with Quad processor and the other one with DualLite processor. To configure the SDK to the correct board, follow the next steps:

/ # make config
    --> Bootloader Configuration
        --> iMX6 Processor

Creating a Bootable SD Card

No matter the desired boot mode, the first step is the creation of a bootable SD card containing the bootloader, environment, kernel and if required, the file system. The following steps will show you how to do it.

Note: for now, a direct installation in the on board eMMC memory is not supported (but it'll be soon), but there is a workaround you can follow that will be explained later.

1. Select the installation mode

  • Go to the Installer configuration sub menu and under the Firmware deployment mode section select the Deploy all the firmware to a SD card option.
Installation Mode
Installation Mode
  • Check the Flash SD card image into loopback file instead of real SD if you want to create an image instead of a real SD Card.
Loopback Selection
Loopback Selection
  • In case you want to create a real SD Card, in the SD device on Linux host select your Device.
SD Device Selection
SD Device Selection

2. Select the File system configuration

  • Go to the File System Configuration sub menu and under the File system image target section select the desired configuration.

NFS root file system: the file system is going to be in the host PC..

Secure Digital Card: the file system is going to be installed in the SD card.

File System
File System

Note: IF the Secure Digital Card configuration is selected, make sure to set the proper Root FileSystem location under the Installer configuration sub menu as shown below:

SD Card in slot 2: /dev/mmcblk2p2.

SD Card in slot 3: /dev/mmcblk1p2.

File System Location
File System Location
  • Exit and save the changes.

3. Compile your SDK

 
 cd $DEVDIR
 make

4. Install your SDK

Once your SDK is compiled you are ready to install it, insert a SD car and start the installation process:

 
 umount /media/$SDNAME
 cd $DEVDIR
 make install

you will be asked to confirm the device that you are going to partition and format , please enter yes if it is correct. After this, the SDK will start to perform the installation.

Setting up the Board

Once you have a bootable SD Card you are ready to test your SDK with your selected configuration. To start using your board, insert the SD card in the corresponding slot and set the boot switch SW6 to one of the configurations shown below.


Boot switch configuration
Boot From D1 D2 D3 D4 D5 D6 D7 D8
SD Card from Slot2 (J500) ON OFF OFF OFF OFF OFF ON OFF
SD Card from Slot3 (J507) OFF ON OFF OFF OFF OFF ON OFF
eMMC ON ON OFF ON OFF ON ON OFF

Boot switch location:


Boot switch location
Boot switch location

Installing the SDK to eMMC memory

At this moment, a direct installation in the eMMC memory is not supported. If you want to boot from that memory follow the following steps:

  • Configure your SDK by following the steps in Creating a Bootable SD Card but in the Select the installation mode section use the Flash SD card image into loopback file instead of real SD option.
  • Once the image is created (after the compilation) copy the file $(DEVDIR)/images/sdcard.img to your file system directory.
 
 cp $(DEVDIR)/images/sdcard.img $(DEVDIR)/fs/fs
  • Follow the steps to create a SD Card again (this time is up to you to create a loopback or a real SD Card) and install it to a SD Card.
  • Set up your board for booting from a SD card (Slot 2 or 3) and energize it.
  • Once you have booted the board type the following command to install the image.
 
 dd if=sdcard.img of=/dev/mmcblk0 bs=1M
  • Once the image is installed, turn off your board, remove the SD Card and configure the boot switch for booting from eMMC. At this point your board should be booting from the on board eMMC memory.

Using Gstreamer

Some examples of use of GStreamer to implement basic multimedia pipelines can be found at IMX6 GStreamer Pipelines - SDK Turrialba.

You can also use the integrated multimedia player gplay instead of a complete pipeline.

 
gplay <file name>

With the previous command, the correct plugins are going to be selected in order to reproduce the file.

RR iMX6 Demo Application (No GUI)

In this section, you are going to see the steps to enable and use the RidgeRun iMX6 demo application (script-based). This demo is aimed to demonstrate some of the capabilities of the platform and the SDK.

To enable this demo in the RidgeRun SDK configuration window go to User Applications and select the iMX6 Demo application and then compile and install your SDK as explained in previous sections.

Demo application selection
Demo application selection

Demo application usage example

To Run the RR iMX6 demo application interactive menu go to:

 
cd /opt/scripts/

and execute:

 
./interactive.sh

After that you are going to see the following menu:

Demo Menu
Demo Menu

As you can see, you have 5 different options to select. To select one of them type the corresponding number + ENTER.

Exit

Exits the demo app.

Video_Test

This are the video preview related demos. In this sub-menu you can chose between 3 video sources:

Video Test
Video Test

As in all the other menus, you'll have a back and exit option.

The available video sources are camera_loopback, video_preview and video_test_pattern.

  • camera_loopback: with this option you can select between the two available cameras.
  • video_preview: with this option you can select between tree different videos.
  • video_test_pattern: with this option you can select between 20 different video test patterns.

After you select the desired video source, you are going to be prompted for the display to be used.


Display selection
Display selection

Select Display0 to use the included LVDS display or Display1 to use the HDMI monitor.

Once you select the display, you have to select the desired overlay.

Overlay selection
Overlay selection

Select FullScreen to display the video in FullScreen mode or Overlay to display the video in the desired position and size. You are going to be asked for the values.

Video_Streaming_server

With this option the board is going to be the streaming server. Like the Video_Test, you can select between 3 different video sources: from_camera, from_file and video_test_pattern.

Stream Server
Stream Server

After you select the desired option, the client's side pipeline is going to be shown on your screen, execut it in the HOST computer and then press enter to continue. The stream is going to be reproduced in your computer.

Video_Streaming_client

With this option the board is going to be the streaming client.

Once you select this option you are going to be asked for the Display and Overlay options. After this the server pipeline is going to be shown on the screen.

Server Pipeline
Server Pipeline

Copy and execute it in the server computer. The stream is going to be reproduced in the selected display.

Snapshot

With this option you can take a snapshot using the selected camera.

After you select this option, the select camera sub-menu is going to be shown, select the desired camera to take the snapshot.

The file is going to be saved in /opt/scripts/media/snapshot.jpeg.

Tools

With this option you can control the current pipelines and monitor the CPU usage.

Tools
Tools
  • List_Pipelines: with this option you can list the currently executed pipelines.
  • Start_Pipeline: with this option you can restart a stopped pipeline.
  • Stop_Pipeline: with this option you can stop an executed pipeline. For example, if you are using a camera loopback, you can use the start_pipeline and stop_pipeline options to control it.
  • CPU_LOAD: with this option you are going to see the current CPU usage. To exit this mode just type 'q'.


Usage Example

Finally, as an example we are going to run display two videos in Display0 and one camera loopback in Display1.

1. Select option 1 (Video_Test).

2. Select camera loopback.

3. Select the select_camera option.

4. Select Camera0

5. Select Display1

6. Select FullScreen

7. Select option 1 (Video_Test).

8. Select Video_Preview.

9. Select video_1080p.

10. Select Display0.

11. Select Overlay.

12. type '0' + ENTER + '0' + ENTER + 640 + ENTER + 480 + ENTER.

13. Select option 1 (Video_Test).

14. Select Video_Preview.

15. Select video_720p.

16. Select Display0.

17. Select Overlay.

18. type '640' + ENTER + '480' + ENTER + 320 + ENTER + 240 + ENTER.


Once the tree pipelines are running, you can use the Tools option to control or list the pipelines or to see the CPU usage.

RR iMX6 Demo Application with GUI

In this section, you are going to see the steps to enable and use the RidgeRun iMX6 demo application (GUI-Based). This demo is aimed to demonstrate some of the capabilities of the platform and the SDK.

For a complete description on how to install and use the Ridgerun demo application for iMX6 platforms please go to the next guide.

IMX6 Demo Application

Running graphics acceleration examples

The first step is enabling the graphics processing unit. To do so, in the SDK configuration process, follow this steps:

  • Go to Proprietary software and select the gpu-viv-bin-mx6q 4.0.0 option. When you select it, a new option is going to be available, select GPU Vivante sample applications to enable the Vivante sample applications to be installed in your file system.
GPU
GPU

Once the installation process is completed, boot your board and go to:

 
cd /opt/viv_samples/

In that location you are going to find 5 folders with pre-compiled applications. As an example execute:

 
cd /vdk
./tutorial3
  • Note: applications in the cl11 folder are going to fail depending on the Toolchain version you are using.

Known Issues

Articles related to this board

RidgeRun 2011Q2 SDK User Guide
RidgeRun Turrialba SDK User Guide
i.MX 6Dual/6Quad Applications Processors for Consumer Products