Technology + People + Process

Boot to OpenGL ES

Boot to OpenGL ES application in 5 sec

To achieve boot time optimization we have made following described changes in the Boot loader, Kernel and Rootfs.

U-Boot:

Older u-boot is taking approximately 3sec to load/run kernel image. So we made following optimizations in U-boot.

We are not initialising some hardware peripherals that we don’t need so it would save some time.

We removed delay in u-boot stage and we removed code for rescanning the mmc card & bootscript and hard coded the bootcmd and bootargs in it.

Finally we able to load/run kernel image within one second.

Kernel Optimizations:

We have used Linux kernel3.0.35.1.1.1 and compatible toolchain for imx6. In the Kernel after configuring for the imx6_defconfig we removed following things

  • Network options
  • Ethernet options
  • Disable File system ext2,3 support, File system debugging.
  • Disable wifi,CAN,Bluetooth support
  • HDMI support etc.

There are some board specific configuration you can't disable by menuconfig so you have to do it by yourself manually.

And we used this Optimized kernel Image to reach this boot time.you can change kernel command line as per your requirement or keep it as it is.

Rootfs:

Steps involved to bring up OpenGL ES app on imx6

  1. In buidroot select the following package along with remaining packages Target packages --->
              Hardware handling --->
              Freescale i.MX libraries --->
                      [ ] gpu-viv-bin-mx6q
                      [ ] install examples
  2. Make the rootfilesystem using make.
  3. Compiling opengles application
             ->Get gpu_sdk_v1.00.tar.gz
             ->Extract the tar file
              ->You will get gpu_sdk_v1.00/Samples folder in which all the sample application exist.
             ->Enter any directory with command cd GLES2.0/06_Texturing/
             ->Enter the following command to export PATH and CROSS_COMPILE
             export
    ROOTFS=/path/to/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot
             export
    CROSS_COMPILE=/path/to/buildroot/output/host/usr/bin/arm-none-linux-gnueabi-
              ->Compile the code using command make -f Makefile.fbdev
              ->Executable will be created with name 06_texturing
              ->Add this executable to the created root filesystem.

we have removed unnecessary start up scripts and launched out OpenGL ES application on start up script

 

Video:


Request for Quote

Drop us a line and we'll get in touch with you as quick as we can