Problem with 64-bit Arduino Beta

There is a fundamental problem with with the Arduino 64-bit Beta install for Linux. There is a workaround but the workaround is not great as I will explain below.

The problem is:
The program includes 32-bit Arm GCC software and Java does not like that 32-bit program. It wants a 64-bit program. Here is the exact error message delivered by Arduino software when first attempting to compile to the Due. Beware the message is completely inaccurate. "Cannot run program "/home/user/Downloads/arduino-1.5.2/hardware/tools/g++_arm_none_eabi/bin/arm-none-eabi-g++": java.io.IOException: error=2, No such file or directory" The file very much is on the system. So that message is bogus.

So the workaround is to install a library for reading 32-bit software, "ia32-libs." In my case, installing that program did allow the Arduino program to work on my 64-bit machine; but Synaptic crashed during install...and I have no idea what it did to my system; because Synaptic had early announced it needed to "make changes" during the install...Meaning it could have very well been making changes to existing software when it crashed. So I can now compile to the Due...but I have no idea what kind of damage the Synaptic crash caused. The entire system is a very recent (and very clean) Linux install on a dual boot with a common drive where I can put sensitive stuff, so I may just try finding anything I can on getting ia32-libs running smoothly and see if I can reinstall Linux from scratch and get ia32-libs to work some other way. I just like working on a clean install and am not adept at negotiating corrupt files. Here is where I found the "ia32-libs" solution along with explanation as to its necessity: http://www.linuxquestions.org/questions/ubuntu-63/command-not-found-but-the-file-file-exists-942367/

To wit: At a bare minimum Arduino folks should probably put something about "ia32-libs" in install notes for the 64-bit version...but it would be even better if the GCC was really 64-bit software. Does Arm not have a 64-bit version of its libraries in 2013?! I hope that is not the case. That would be pretty sad. Bottom line though: The 64-bit does not work on a 64-bit machine without additional modification now.

Update: A quick google scan suggests "ia32-libs" is a nasty little beasty with a habit of crashing Ubuntu 12.04 and others. Looks like "ia32-libs" has been crashing systems for a few years at least. It will sure be great if some other workaround appears. I'm still going to see if some other install method (e.g. apt-get) will work without crashing...but geez - this is exactly the kind of reason Linux is becoming every bit as crash-prone as Windows, maybe more so. That old line about the stability of Linux is slowly becoming a heaping steamy pile of nonsense.

...Also - This probably won't happen but on Arduino's "Where to buy" page they should probably post prominent notice somewhere that the Due compatible IDE/compiler is still Beta; because distributors selling Due boards are not advising the buying public that the IDE is beta. Really, the ones selling Arduino boards should be letting people know that IDE is still beta...so they can make sure before they buy its what they want. But I can guarantee you those distributors won't do that. They're all selling the Due right up along side every other board as though it's prime-time.

I had not read every page on the Arduino site before opting for the fastest board in one of the stores. I had no idea Arduino was Beta for Due before I bought the board.

That said. I love the platform. Arduino has really neat products. It's really useful and a great liftoff that lets you get running fast. The beta software does work; and I don't mind being on the beta software in the slightest....I just think people expect to know in advance they're using a product that will demand a Beta IDE. I do understand everyone does not use Arduino's IDE but I suspect that's a minority.

Yes, thats's a long standing issue...

See the thread How to use Arduino 1.5.2 on Debian Wheezy 64bit? - Arduino Due - Arduino Forum
a solution to that part How to use Arduino 1.5.2 on Debian Wheezy 64bit? - Arduino Due - Arduino Forum

Then also
http://forum.arduino.cc/index.php?topic=156530.0

and
http://comments.gmane.org/gmane.comp.hardware.arduino.devel/1812

I was away from arduino a couple of weeks and do not know if things have changed since.
I'm glad you put your finger on that topic again :wink:

I think it could be quite a show-stopper for some people.

Hi OutOfLine - Thank you. I dug up additional information in case it may be helpful to the Arduino community at all.

It appears the real culprit here is Ubuntu/Linux "MultiArch" which demands that 32-bit files be configured a certain way before it will recognize them. Kind of takes the point out of having a bridge to 64-bit. Because the older "ia32-libs" program seems to make Arduino work fine...but you have to break your Ubuntu install and potentially cause other problems to get that to work. Anyway. Linux MultiArch, at least on AMD processors for 64-bit, is currently not recognizing some 32-bit programs.

The reason this is important is Ubuntu 12.04 is a "LTS" - Long-term Support release where security upgrades continue on for years and you don't have to upgrade to the latest which may/may not be stable because Ubuntu releases are so frequent. 12.04 is supposed to be supported through 2017.

All of that said: The bottom line is Arduino seems to be incompatible with Ubuntu 12.04, 64 bit at this time (at least on AMD, maybe others). The primary reason seems to be that the Arduino "64-bit" program really is not a 64-bit program... At least it has 32-bit architecture files involved; and Ubuntu's MultiArch does not recognizing those files. It behaves as thought they are not even on the computer or at least delivers an error message that says as much. I am going to file a bug report with Ubuntu and hope they look at it; but with Ubuntu it often takes many months for them to get to real bugs. I am not going to pursue the "ia32-libs" solution because that appears to involve breaking dependencies and I seem to have other system issues crop up once I attempt to install "ia32-libs," although the Arduino program does function at that point.

Here is additional info on MultiArch:
https://help.ubuntu.com/community/MultiArch

If we research MultiArch and ia32-libs with words like "problems," we can see that most problems involving ia32-libs, which I believe is an older program, are traceable to the MultiArch.

Update: OK, so I just wrote a rather protracted bug report to Ubuntu 12.04 LTS on this. Will they act on it? I would not even bet a coin toss it gets priority. Google reveals users have been chasing their tails for years trying to get this to work and that arm-none-eabi-gcc has simply problematic on Ubuntu 64-bit for a very....very long time. I see issues going back to 2010 and 2011.

That said, it would be really great if the Arduino 64-bit program were really using 64-bit libraries. That would probably eliminate this problem that users keep chasing their tails over. If there is some reason they are stuck with 32-bit libraries then I suppose I understand; but if 64-bit libraries exist that they can make work, then it is probably about time for Arduino to move on and provide a true 64-bit version of the Arduino IDE.

I can understand why they would stick with 32-bit libraries as least common denominators; but this is 2013 after all. For all I know there is no 64-bit version of these gcc libraries that Arduino needs, though. I am moving on to use this program on Windows from now on. Or I may even try to gin up the Arduino language in Eclipse although that looks hard. I have done all I can do here. For what it is worth, I have no problem using Beta software and I lay most of the blame for this with Ubuntu and not Arduino due to MultiArch issues that seem to partially resolve fine with the older Ubuntu 32-bit bridge; but when people pay 50 bucks (U.S.) for a board, they are going to want the IDE to work and to work on 64-bit machines.

Arduino simply is not compatible with 64-bit Ubuntu LTS at least on AMD (maybe others), and the 64-bit version of the IDE is not fully 64-bit.

Opened an issue here:

C

cmaglie:
Opened an issue here:
Arduino IDE 1.5 requires ia32-libs package on latest 64-bits Ubuntu systems. · Issue #1474 · arduino/Arduino · GitHub

Thanks a lot.
I will do some tests on Debian Wheezy and report if something has changed since last time.

Just for the record:
The problem showed up here on Debian Wheezy 64bit,
so it is not Ubuntu specific, but might affect the entire Debian distribution family.

I had reported this on an Ubuntu bug report page last month... Not sure where this would be reported to apply to Debian; but someone on that forum upgraded it to "confirmed." I would be surprised if that went very far. Here is the bug report: Bug #1187391 “In 12.04 LTS, MultiArch support fails to recognize...” : Bugs : eglibc package : Ubuntu

I will dig around and see if I can find a place to report this to Debian.

I sent an email to Debian Bug reporting people. Their bug reporting software wants to push users back toward the linux flavor (like Ubuntu). There is an email for this type of problem, though, and I used it. Do not know whether it will get traction; but this problem goes back to before 2010 judging from Google searches.