LTIB quick start
Published on July 6, 2010
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:
install
- the LTIB installation scriptltib.tar.gz
- contains the spec files for the LTIB installationpackage_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=192.168.0.72:/home/ericn/ltib/rootfs"
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.