2 Replies Latest reply on Jul 9, 2014 4:15 AM by Tom1988

    Different linux images? uclibc verus eglibc images?




      I'm relatively new to the Gaileo and Linux. I see different Linux images available for the Galileo both on this forum and on other websites such as http://alextgalileo.altervista.org/ and I'm just wondering what is the difference between them and which is the best one? What does Alex T's 1.0.1 image have exactly that the standard SD card image that you can download has? Does this have the Arduino IDE?


      Also what is the difference between uclibc verus eglibc images?



        • 1. Re: Different linux images? uclibc verus eglibc images?

          There are several Yocto-based images (more on that later) + Debian-based image + Gentoo-based image.


          Yocto builds can be uclibc- or eglibc-based. Both are embedded-targeted implementations of the foundational libc library found in Linux-based systems. uClibc is smaller (that is the reason it's default - so that the whole image with UEFI firmware and grub fits into Galileo's 8MB SPI flash), while eglibc is bigger, but more feature-complete and has higher degree of compatibility with libc.


          Generally, only uclibc-based images work with Arduino IDE, with one exception I'll mention below. Eglibc-based images on the other hand, in general, are easier to use when you want to compile Linux software from sources, because of higher compatibility with standard libc.


          There are following Yocto-based images I know about:


          1. Official "SD card" image. uClibc-based, has WiFi drivers for supported cards + things like OpenCV, node.js and Python installed (a bit outdated versions, taken from Yocto version 1.4.2);
          2. My "devtools" image on telekinect.mit.edu. Also uClibc-based, but also contains development tools like gcc and autotools, newest OpenCV, node.js, redis + some additional enhancements and fixes (the full list is always published with the new image in the respective thread here and in the README within the tar.bz2 file);
          3. Up until recently I was also building vanilla images out of newest Quark BSPs, similar to the "SD card" image #1, just newer versions - because official images tended to lag behind. However with the latest 1.0.1 and 1.0.2 software releases this seems  no longer be the case (great job by the Galileo team, by the way!), so I guess in the future I won't be doing that. These are the ones you can download from alextgalileo.altervista.org;
          4. Intel's IoT DevKit, which is comprised of an OS image and additonal applications. The OS image is eglibc-based, has some development tools (like Yocto ADT pieces) and one of the branches of which is said to support Arduino IDE, even though it's eglibc (I haven't tested that and I think there's no binary version available, you'd need to build it). Generally I'd designate it as the image for those who primarily want to develop C/C++-based programs for Galileo with nice integration with Eclipse provided out of the box. I haven't used this image to any significant extent, so those who are more familiar with it (mhahn?) please feel free to chime in.


          As far as usage is concerned - if you only want to use it with the Arduino IDE, the official "SD card" image will be good enough.

          For things like using Galileo as a more general-purpose Linux computer and some node.js, Python, C/C++, Ruby development with an Ability to use Arduino IDE - I'd dare to recommend my devtools image.

          For purely C/C++ and more professionally-targeted applications - probably IoT DevKit would be the best (due to integration with ADT and Intel's System Studio).


          Something along these lines and hope this helps This is all my personal opinion based on my experience with Galileo so far and any additional comments or corrections are more than welcome!

          • 2. Re: Different linux images? uclibc verus eglibc images?

            Thank you Alex for your very informative reply. Appreciate your time.