[SOLVED] Worked first time, then java error 13

I installed Arduino 1.6.11 on openSUSE 13.2, following the instructions at Arduino Playground - OpenSUSE. All was well and everything worked. I went back to it a week later and on verifying a standard example I get:

processing.app.debug.RunnerException
at cc.arduino.Compiler.callArduinoBuilder(Compiler.java:280)
at cc.arduino.Compiler.loadPreferences(Compiler.java:183)
at cc.arduino.Compiler.build(Compiler.java:140)
at processing.app.Sketch.build(Sketch.java:1111)
at processing.app.Sketch.build(Sketch.java:1081)
at processing.app.Editor$BuildHandler.run(Editor.java:1988)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Cannot run program "/usr/share/java/Arduino-1.6.11/arduino-builder": error=13, Permission denied
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at processing.app.helpers.ProcessUtils.exec(ProcessUtils.java:11)
at cc.arduino.Compiler.callArduinoBuilder(Compiler.java:260)
... 6 more
Caused by: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 11 more

I have tried chmod -R 755 on the folder above without success. I have even tried uninstalling and reinstalling, but the same error appears. I cannot understand why it worked first time and not now, unless there has been an "upgrade" to java causing problems. I would be very grateful for any suggestions, otherwise my grandson will not talk to me again.

Hi docrobin,

I have the same Problem (also OpenSuse 13.2).

The error comes up with the Updates i made yesterday afternoon. The update was without any files from the cross-toolchain repo, so in my mind its a problem that there gets something wrong a rpm "outside" avr.

other Questions:
how did you manage to be able to set the port? It doesn't work here... user has all aditional groops, it doesn't work if im logged in as root also...

Did you use digispark boards also? If yes, what are you doing to get contact with them?

Hello herbk,

Thanks for the comment. I am no nearer solving the problem, but I have no issues (and never have had) with the port. Tools -> Port comes up with /dev/ttySO and, helpfully, /dev/tty/ACM0 (Arduino/Genuino Uno). I should have said I was using a Genuino Uno as part of the Starter Kit.

It's interesting you noticed the Error 13 problem after an update, which lends further weight to my suspicion it might be something to do with that. After all, why should it work immediately first time, then without any changes to the Arduino software, suddenly stop working? I hope someone will be able to throw some light on it.

Hi docrobin,

the problem is shown as "error=13, Permission denied", but that can not be true... If i run Arduino IDE as root, i got the same error

Hi docrobin,
i managed to get a workaround for that Problem:
leav your installation as it is... i don't check, does it work or not if you remove the crosstoolchain packages.
download the last Arduino IDE from the Arduino homepage.
extract it in a new folder in your home Folder
change to the folder .../arduino-1.6.12 and click install.sh
thats it...

install.sh will remove your old desktop icon and installs it's own, by clicking the icon 1.6.12 will be startet.

Well done herbk! and thank you for sharing the information. I ought to have had the sense to try installing the latest Arduino version that way. Without delving too deeply, what I have found, as expected, is that if the original CrossToolChain packages are not removed, installing Arduino-1.6.12 does not overwrite the 1.6.11 version.

Installing from the install.sh script puts the Arduino files in a folder (in this case, /arduino-1.6.12) under the one from which it was run. The desktop icon calls a bash script "arduino", which then sets up the paths and java options. By contrast, OpenSUSE installs to /usr/share/java/Arduino-1.6.11 and puts a symlink in /usr/bin, pointing to /usr/share/java/Arduino-1.6.11/arduino. This script is identical to the one run from the Arduino icon for version 1.6.12, but the paths will be different. So typing "arduino" in a terminal will call up the original arduino script, which references version 1.6.11 and gives rise to the same error as before.

Logically, the OpenSUSE installation makes more sense, but the install.sh file creates a much simpler folder structure and makes it easier to maintain upgrades. No doubt someone with more Linux experience than I would be able to recommend a more elegant solution, but I am content to leave things as they now are.

Thanks again for your help.