Colibri IMX6 linux error message /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

I have a simple c++ program that is using the queue class to store strings received on the uart. It cross compiles fine in Eclipse but when I run it on Colibri IM6 I get the following error message

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found

Am I missing a library or do I need to install a package?

It looks like there is a mismatch between the glibc/libstdc++ you are running on the module vs. the one used for cross compilation therefore a few clarifying questions:

  1. How exactly did you cross compile?
  2. What toolchain was used for cross compilation?
  3. What exact BSP version are you running on the module?
  1. Using Eclipse IDE for C/C++ (version Neon.2 release 4.6.2 on a laptop running Ubuntu 16.04 LTS)
  2. Linaro cross compiler version 5.4.1-2017.01 with prefix arm-linux-gnueabihf-
  3. I am using the same image as shipped from Toradex. I received the module last week. Not sure how to find this out to give you better info…is it by typing uname -r ?
  1. Using Eclipse IDE for C/C++ (version Neon.2 release 4.6.2 on a laptop running Ubuntu 16.04 LTS)
  2. Linaro cross compiler version 5.4.1-2017.01 with prefix arm-linux-gnueabihf-

I don’t think that toolchain matches anything any of our BSPs were ever built with. Have a look at this article on our developer website or alternatively our new getting started guide.

  1. I am using the same image as shipped from Toradex. I received the module last week.

I agree that it may sound stupid for us to ship modules with old unsupported BSPs but here that was unfortunately the case. However whatever we ship it with there may always be a newer or more stable BSP available when a customer receives it. We therefore recommend for our customers to always first make sure to run the latest stable or beta BSP as per the following article. Alternatively you may try our new Toradex Easy Installer which soon will be what all our modules will ship with.

Not sure how to find this out to give you better info…is it by typing uname -r ?

That would be a start but e.g. cat /etc/issue usually tells you the full story.

Please see attached for the BSP version as received.
alt text

Unfortunately I am unable to upgrade it to the latest version. I have tried a uSD card and a USB card with the new image. When I type run setupdate in U-boot it errors out. See attached. Did I ‘brick’ the unit?
alt text

How do I purchase a unit with the latest image so I don’t have to mess around with updating?

For supply chain reasons we do not provide modules with specific image versions pre-installed.

The update process is rather involved, we recognized that issue and just recently released a new installer which you can use with the Colibri iMX6. In the future our modules will be pre-installed with this installer. However, currently you have to download the installer and load it onto your module using USB recovery mode.

Once you have the installer running on the module, you can install the new image directly from the Internet.

http://developer.toradex.com/software/toradex-easy-installer

See attached. It is stuck in this mode when I type bmode usb to put into recovery mode in U-boot
alt text
I have also tried shorting the pins on the IMX6 module to put it into recovery mode to no avail.

It can still load the kernel (older image). Please advise.

What do you mean by stuck? Did you connect the USB device cable to your Linux development workstation where a Freescale device should be detected (e.g. using lsusb) and subsequently the Toradex Easy Installer should be launched as explained in the article we mentioned?

I am using a Windows machine as described in your article. I expect Windows to detect and enumerate the recovery mode device before I launch the batch file. I don’t see any new device under Windows when the Colibri is in this mode. I would also expect the U-boot to return to its prompt. If my understanding isn’t correct let me know.

I won’t comment on the Windows side of things but can assure you that U-Boot definitely won’t return to the prompt during the i.MX 6 boot ROM being in the USB recovery mode.

Had to reboot Windows and the procedure worked as described in the article. I was able to upgrade the image using the Easy Installer.
The Easy Installer is a big help when upgrading to the latest patch. Kudos for a job well done.