Our previous LTIB images for i.MX6 have all been re-packaged versions of the binaries released by Freescale.
We just uploaded the first that we actually built ourselves. You can download it from here:
To install it, simply download and extract onto a single-partition SD card like so:
~/$ echo ,,83 | sudo sfdisk /dev/mmcblk0 ~/$ sudo mkfs.ext3 -L ltib-12.09 /dev/mmcblk0p1 && sync ~/$ udisks --mount /dev/mmcblk0p1 ~/$ sudo tar -C /media/ltib-12.09/ -zxvf ltib-12.09-20121218.tar.gz ~/$ sync && sudo umount /media/ltib-12.09
For those of you who have gone through the process, LTIB can be quirky and has a number of host-system dependencies that can get in the way of a successful build.
The following is a list of the hurdles we had to overcome during the build process.
- LTIB doesn’t like Ubuntu 12.04. To get around this, we used the patches from Curtis Wald and Leonardo Sandoval.
- libc.so and libpthread.so neede patching. Thanks go to Jeremy Stashluk for his investigation of this issue.
- alsa-utils didn’t want to build. Notes about why are in this comment. This turned out to be an issue with the way alsa-utils links with libncurses.
- glib update. While not really a build hurdle, we added this patch to glib from Rogerio. Without it, you’ll get Abort messages from gst-launch and gst-inspect.
The LTIB image contains our latest non-Android kernel from Github and the latest version of U-Boot.
The LTIB configuration itself includes G-Streamer acceleration and the Vivante GPU demos and is configured to provide a login on /dev/tty0. Additional details are available in the file README.ltib in the root of the tar-ball.
Comments 33
You say “latest non-android kernel”, but your link goes to a branch with “android” in the name. If I build that kernel with the nitrogen6x defconfig, will I get the same kernel? Is that a typo? Am I confused? Thanks!
Author
Hi Chris,
Good catch! It appears that I let auto-complete point me at the wrong thing.
I’ve updated the link above, so that it points at our “boundary-L3.0.35_12.09.01_GA” branch.
We really gotta figure out shorter names…
Author
Note that the first instance of this image (ltib-12.09-20121218.tar.gz) was missing a glib patch from Rogerio.
The 20121219 tar-ball fixes this.
Not all easy sailing. Some warnings I’m not sure I need to pay attention on.
MX6Q SABRELITE U-Boot > run upgradeu
Card did not respond to voltage select!
mmc0(part 0) is current device
MMC: block number 0x1 exceeds max(0x0)
** Can’t read from device 0 **
** Unable to use mmc 0:1 for fatload **
** Bad partition 1 **
mmc1 is current device
reading /6q_upgrade
** Unable to read “/6q_upgrade” from mmc 1:1 **
Loading file “/6q_upgrade” from mmc device 1:1 (xxb1)
** File not found /6q_upgrade
Also, should I rename the 6x_upgrade on memory card to 6q_upgrade?
Author
Hi Marko,
Sorry about that. I didn’t include a 6q_upgrade in this package, since the focus was on the userspace, not U-Boot.
If you want to upgrade U-Boot, I suggest using the files in the package here:
The blog post describing the upgrade process is here.
Thanks! Now this LTIB is up and running here.
If I want to modify kernel boot parameters, specifically add vt.global_cursor_default=0, can I modify 6x_bootscript directly or should I use http://git.boundarydevice.wpengine.com/bootscript.php?
Author
Hi Marko,
You can’t edit the bootscript directly because of the CRC in the header. The source text file is in this file.
You can edit it, then use bootscript.php to convert it for you.
I’m trying to get the image running but I keep getting an error while trying to mount mmcblk0p1 as the root filesystem:
VFS: Cannot open root device “mmcblk0p1” or unknown-block(179,1)
Please append a correct “root=” boot option; here are the available partitions:
1f00 768 mtdblock0 (driver?)
1f01 8 mtdblock1 (driver?)
1f02 1272 mtdblock2 (driver?)
b300 15558144 mmcblk0 driver: mmcblk
b301 15557631 mmcblk0p1 00000000-0000-0000-0000-000000000000
Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
I do see the driver come up (from earlier in the log):
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
mmc0: SDHCI controller on platform [sdhci-esdhc-imx.2] using DMA
sdhci sdhci-esdhc-imx.3: no write-protect pin available!
mmc1: SDHCI controller on platform [sdhci-esdhc-imx.3] using DMA
mxc_vdoa mxc_vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
VPU initialized
mxc_asrc registered
Thermal calibration data is 0x58e5523a
anatop_thermal_counting_ratio: raw25c=1422 raw_hot=1362 hot_temp=58
Anatop Thermal registered as thermal_zone0
anatop_thermal_probe: default cooling device is cpufreq!
usb 2-1: new high speed USB device number 2 using fsl-ehci
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SU16G 14.8 GiB (ro)
mmcblk0: p1
I have tried 3 different SD cards, two give this error but one card (a 1Gig) wasn’t discovered by u-boot, also there is no display available.
Any ideas?
Thank you,
Dennis
Author
Hi Dennis,
It appears that the SD card is coming up as read-only:
Are you using the full-sized slot on a SABRE Lite? If so, please check the write-protect tab.
If not, can you run an fsck on the card?
Hi Eric,
I’m using full sized cards.
The write protect tab is off (I can write the image and I tried writing a file from the host).
I have already run fsck on one card (without -f though), so I just tried fsck -f /dev/sdb1 for all 3 cards, and they’re ok.
The R/O is puzzling, though. I have the u-boot (2013.01-rc1-02392-ge86d319) loaded. Is there a way to try writing to the SD card with it? It reads the card (mmc dev 0; ext2ls mmc 0:1) properly (as well as loading the script/kernel).
Thank you for your quick response!
Dennis
Hi Eric,
I think I found it – the SD3 connector seems to have a cold solder joint on the far left pin. I held it down and reset, and the image came up!
Thank you,
Dennis
Author
Thanks for the note, Dennis, and sorry for the trouble.
Let us know if you’d like us to swap it out.
I had the same unsoldered joints on the two far left pins. Maybe there’s a production problem.
I just soldered them and my full size SD card is mounted in RW mode.
I installed the new release and am using gstreamer for my work on my sabrelite. The decoder
test from file worked as did the test to see the usb camera: gst-launch v4l2src ! mfw_v4lsink
But for some reason the encode test from usb camera did not work. I post it here since
it did work with the previous ubuntu os I was using. Below is the command I uses along with
the output. I would prefer not to go back to the bloated ubuntu. Thanks.
Ron
gst-launch v4l2src num-buffers=-1 ! queue ! vpuenc codec=0 ! matroskamux ! filesink location=output.mkv sync=false
Setting pipeline to PAUSED …
[INFO] Product Info: i.MX6Q/D/S
vpuenc versions 🙂
plugin: 3.0.2
wrapper: 1.0.24(VPUWRAPPER_ARM_LINUX Build on Dec 18 2012 07:12:03)
vpulib: 5.4.6
firmware: 2.1.7.33576
ERROR: Pipeline doesn’t want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not negotiate format
Additional debug info:
gstbasesrc.c(2787): gst_base_src_start (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Check your filtered caps, if any
Setting pipeline to NULL …
Freeing pipeline …
Author
Hi Ron,
I suspect that the issue has to do with the kernel configuration. Specifically, I suspect that the UVC drivers aren’t included in this release. You can verify that by looking in /proc/config.gz.
If you have a kernel that’s working on an Ubuntu release, you should be able to copy it over. If the UVC drivers were compiled as modules, you’ll need to copy /lib/modules/ as well.
Thanks for getting back to me so fast. The result of the zcat was exactly the
output you showed. I am not sure if this is good or bad. If bad then what
do I need to copy over? What seems odd about this is that I can get video
input from the USB camera when I display it right to the screen. It only fails
when I try to send it to the encoder.
This always worked: gst-launch v4l2src ! mfw_v4lsink
Ron
Author
Hi Ron,
If the vrl2src ! mfw_v4lsink thing works, then never mind about the USB camera driver. It’s obviously working.
Then the question is, what isn’t. I haven’t used the vpuenc element against a USB camera, so I’m at a loss. If the pipeline is working under Ubuntu, I’d recommend comparing the output from gst-inspect vpuenc on each version to see if the interface has changed. You might need to fill in some additional details before it can negotiate format.
What color-space does your camera return?
The “gst-inspect vpuenc” returns the same for both with the exception of the version number being
3.0.1 on the ubuntu and 3.0.2 on the newer linux w/0 X version. Cam is Logitech Pro 9000.
Ron
The previous ubuntu release had the same results from the zcat /proc/config.gz
I poked for differences and I noticed differences in the plugin, wrapper, and firmware
Original version on ubutu version:
vpuenc versions 🙂
plugin: 3.0.1
wrapper: 1.0.24(VPUWRAPPER_ARM_LINUX Build on Sep 7 2012 20:27:33)
vpulib: 5.4.6
firmware: 2.1.5.32515
On new linux version
vpuenc versions 🙂
plugin: 3.0.2
wrapper: 1.0.24(VPUWRAPPER_ARM_LINUX Build on Dec 18 2012 07:12:03)
vpulib: 5.4.6
firmware: 2.1.7.33576
Newbie here, please be gentle. Downloaded this package and got it booting. Now I need to login using the ‘freescale’ login and password. What is the login and password I need for this package? Tried all the common variants to no avail.
Author
Easiest question of the day… The root password is Boundary. This comes up often enough that it has it’s own page here.
We do this mainly so that openssh will allow root login (it won’t without a password).
I want to compile applications on the sabrelite platform with this OS (not cross-compile). Which gcc do I
install for native compiles and what options are needed to get best performance from the device?
Hi there,
I have successfully untar’ed the LTIB image on a microSD card and boot into it.
I seem to have difficulty though to do the same, with the same rootfs & kernel by trying to boot from nfs.
The boot procees stops at
VFS: Mounted root (nfs filesystem) on device 0:13.
Freeing init memory: 192K
so the rcS script is not run. Do you have a reason why this happens? Thank you very much for your help.
correction on previous post.
The system actually boots butREALLY REALLY slowly.
Freeing init memory: 212K
starting pid 1386, tty ”: ‘/etc/rc.d/rcS’
Mounting /proc and /sys
Starting the hotplug events dispatcher udevd
pwm_config: pwm freq = 32786, clk_select=2 clock_rate=22000000
pwm_config: pwm freq = 20000, clk_select=2 clock_rate=22000000
udevd (1395): /proc/1395/oom_adj is deprecated, please use /proc/1395/oom_score_adj instead.
Synthesizing initial hotplug events
camera_reset: power_gp=0x6, reset_gp=0x8 reset_gp2=0xab
mx6_csi0_powerdown: powerdown=0, power_gp=0x6
ov5642_read_reg:write reg error:reg=300a
ov5642_probe:cannot find camera
Setting the hostname to freescale
Mounting filesystems
Booted NFS, not relocating: /tmp /var
Starting the ssh server:
/var/empty must be owned by root and not group or world-writable.
Running sysctl
Setting up networking on loopback device:
Setting up networking on eth0:
udhcpc (v1.20.2) started
Sending discover…
Sending select for 10.0.0.192…
Lease of 10.0.0.192 obtained, lease time 86400
nfs: server 10.0.0.193 not responding, still trying
I don’t know what is going on, but quite possibly some interrupt is being served and doesn’t leave any room userspace commands to be executed. I do not know what happened in the end with the nfs server – it surely is still up..
Author
Can you forward your kernel command-line?
Are you using the ‘tcp’ option for NFS (i.e. nfsroot=10.0.0.193:/path/to/fs,v3,tcp)?
How about the enable_wait_mode=off flag?
hi ericn,
I have kept the original uboot (2009.08) for now and only modified the relevant boot variables. so uboot > print , gives (showing the relevant bits only):
ipaddr=10.0.0.192
serverip=10.0.0.193
nfsroot=/imx_rootfs
ethaddr=1E:ED:19:27:1A:B3
bootargs=console=ttymxc1,115200
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
bootcmd_net=run bootargs_nfs;tftpboot ${loadaddr} ${kernel}; bootm
bootcmd=run bootcmd_net
tcp is in, enable_wait_mode=off is off…
if i do add enable_wait_mode=off after tcp, booting will stop a little earlier
IP-Config: Got DHCP answer from 10.0.0.1, my address is 10.0.0.192
IP-Config: Complete:
device=eth0, addr=10.0.0.192, mask=255.255.255.0, gw=10.0.0.1,
host=imx6_armboard, domain=, nis-domain=(none),
bootserver=10.0.0.1, rootserver=10.0.0.193, rootpath=
right here.. it will stop and not continue (at least not within a few seconds) to the following
VFS: Mounted root (nfs filesystem) on device 0:14.
devtmpfs: mounted
Freeing init memory: 212K
which it goes to quickly otherwise
Hi ericn,
I need to know the toolchain that you used to build this LTIB rootfs.
I am trying to debug an application running on a sabre lite board.
I built the application using the gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux toolchain.
but the application exits as soon as a thread is spawned. I verfied this in gdb, using both the Linaro and the rootfs runtime libraries.
I am hoping it has something to do with the library’s differences…
Author
We used the LTIB-provided defaults, which looks like it’s not the
Linaro toolchain by default, and appears to be using eglibc:
Can I get a copy of your LTIB distro with the patchset for this image somewhere?
What should MACHINE= while building this? I’m using the BD-SL-i.MX6. During link, I’m getting
ld: cannot represent machine ‘arm:wandboard-dual’
Thanks.
Author
Hi Jeffrey,
Note that this is an older image. You likely want the 4.0.0 version and the SABRE machine.
I placed tar-balls of the configurations on-line at:
You should be able to extract them into the root of your LTIB install and have things configured in the same way as we did.
This is really weird. All my posts on the Boundary Devices website seem to have been deleted. They are all present in the Google cache. Just not viewable. Please can you undelete all my posts? Thanks.