There are a few reasons why this is, for example, the uClibc image is a "lighter" image meanwhile the eglibc image has better compatibility with Linux packages. In the case you specify, MRAA is originally compiled for the eglibc image therefore there are newer versions available, meanwhile the uClibc image can have MRAA but you have to do a more complex process to get it.
I think the following article might be able to describe the differences between uClibc and eglibc better than me:
Thank you for your response... If you follow the links again, I'm talking about the Eglibc images. Both expand to about 1.2 -- 1.3GB.
Look at the shell outputs again. If you study the filenames, one is an *.xz archive whereas the other is a *.bz2 archive.
I think there is a sync issue between the links. You ought to have one official image right? And shouldn't we be able to "upgrade" to the latest MRAA on the official image?
Thank you very much
1 of 1 people found this helpful
The image linked from IoT - Intel® Galileo Board Get Started Guide | Intel® Developer Zone is not the one that we should use. (I mean, this following image should not be used: http://iotdk.intel.com/images/iot-devkit-latest-mmcblkp0.direct.bz2 )
Why? It uses a very old version of mraa and upm libraries that eclipse does not seem to be able to update. A "uname -a" however gives the same string as the other image I'm going to point to next...
We should use the image from the Galileo downloads page (IoT - Intel® Galileo Board Download ): http://downloadmirror.intel.com/25384/eng/iot-devkit-201510010757-mmcblkp0-galileo.direct.xz (we use this!!)
The libraries are smoothly updated by the latest eclipse IDE.
I learned this the hard way. Hope it helps someone else avoid a lot of confusion.
Thanks for posting this Taimoor.
I am using the top version you posted (bz2) and i definitely get the repository out of date error each time i use Eclipse. This hasn't prevented me from successfully executing the "blink" example but will probably pose problems in the future?
Do you think theres anyway to update the libraries directly from command line without wiping my sd card?
I don't know for sure. I guess its a good idea to change the images now rather than later. Of course the blinky example works but the new libraries bring in more updates and bug fixes. Even the examples on Github use the new libs. The most incompatible change to your code is I guess how enums are used in C++: (MRAA_SOMETHING_SOMETHING is replaced by mraa::SOMETHING_SOMETHING)...
Intel ought to fix the links asap as newbies can't possibly figure this out and will always get stuck.
I think I see the issue:
says that the .bz file is no longer supported and to use the .DIRECT.xz file.
but then,at the iot installation instructions page Making a bootable micro SD Card with Windows* | Intel® Developer Zone,
it points back to that .bz file rather than the .xz file.
*.bz2 and *.xz are only extensions. The difference on the page highlights that the uClibc image isn't supported (that's the bz file on the "Galileo Board Download ..." page). The images I pointed out are both EGlibc. The image on the "Making a bootable micro SD card with ..." points to an EGlibc image with a *.direct.bz2 extension which apparently isn't the one we want to use.