LTIB quick start

Published on July 6, 2010

Archived Notice

This article has been archived and may contain broken links, photos and out-of-date information. If you have any questions, please Contact Us.

In the post describing the Freescale GStreamer plugins, I mentioned that the source packages from Freescale such as the L2.6.31_10.04.00_ER_SOURCE tarball are centered around a tool called LTIB, but I didn't describe it or its usage. The LTIB site can do a much better job than I can, but I can share my limited experiences with the tool.

Once you have the package in a readable state, you'll find that the top-level directory is pretty bare and that the vast majority of the content is located within the pkgs/ directory.

user@host:~/Downloads/Ubuntu_10.04$ du -h L2.6.31_10.04.01_ER_source 512M L2.6.31_10.04.01_ER_source/pkgs 606M L2.6.31_10.04.01_ER_source

Looking a little closer at the top-level directory, you'll find three files related to LTIB:

  1. install - the LTIB installation script
  2. ltib.tar.gz - contains the spec files for the LTIB installation
  3. package_manifest.txt - contains licensing information about the packages included in LTIB

In order to install LTIB, I first needed to install some pre-requisites as discussed on the imxdev site.

I also needed to allow rwx access to /opt/ for myself since LTIB creates /opt/freescale for its use. After these steps, I was able to install LTIB using the provided install script. It asked me to view and confirm the license agreement, which appears to be a subset of what I saw on the Freescale site at the time of download. I specified /home/ericn at the prompt for the installation directory, because the install script will append the ltib/ sub-directory.

After all of this, I had over 500M in my ~/ltib directory. I didn't check the size of /opt/freescale at that time, but it currently contains over 750M of stuff.

At this point, I should have been able to run the ltib -c command in ~/ltib/, but I had some difficulty. In particular, LTIB was deciding that I didn't have sudo configured to avoid passwords properly. I worked around this by changing the zero to a one in this line of the LTIB script:

no_sudo_check => 0, # fc9 work-around

Apparently it's not just Fedora core that has issues here.

Once that was done, I ran ltib -c, selected the Freescale I.MX5x EVK as my target and chose the FSL gnome release package as my package settings. Next, LTIB presented me with a myriad of choices for things such as the toolchain, boot loader, kernel version and the like. The default choices were reasonable for almost every option. I did, however, change the target image generation option to NFS-only from JFFS2 for a quicker installation and test cycle.

So far, so good.

After exiting and saving my configuration, LTIB churned for a while, building the selected packages. It died after some time, while trying to build the gtkhtml component. Apparently others have had the same issue, mostly when running Ubuntu. Digging into the issue, I found that there's a bug in the makefile for the component that includes /usr/include by mistake, leaking header files from my development system into the target build.

For those of you who run into this problem, I sent a patch to the Freescale forums.

That problem solved, LTIB ran to completion. By editing my exports file to add this line,

/home/ericn/ltib/rootfs *(rw,no_root_squash,no_subtree_check,no_all_squash,sync)

I was able to tell U-Boot to boot over NFS like so:

U-Boot> set bootargs "video=mxcdi0fb:LVDS666,800x480M-16@60 console=ttymxc0,115200 rootwait ip=dhcp root=/dev/nfs nfsroot=" U-Boot> mmcinit && fatload mmc 0 92000000 uImage && bootm 92000000

That done, the Gnome desktop came right up.

There's a lot more to LTIB than what I compiled in this first step. The tool contains support for GStreamer, Qt, and much more. It also has the great benefit of containing all of the Freescale-supplied goodies from the outset, eliminating the need to patch other toolkits.

I've tried most of the other target builders out there, including OpenEmbedded, PTXDist and buildroot. Each has its own strengths, but I have to say that LTIB is one of the easiest I've dealt with and appears to have quite a wide range of packages.

I'll certainly be exploring more of its features over time.