I've found a great number of threads discussing the problem of serial port /dev/ttyACM0 becoming unavailable when using the the Arduino IDE with the UNO on Ubuntu (sounds like it may be happening with other distros as well.)
I've been struggling with this for a number of weeks. I have updated the serial firmware on my Uno, and occasionally that works. I've also re-installed the librxtx java drivers and moved them around among the native java libraries on my machine as well as the lib directory for the IDE.
I discovered something yesterday which was perplexing. I had everything working. I uploaded the GPS serial sketch from arduino.cc and was able to make it work. The sketch should show GPS NEMA strings input via pin 0. In order to determine what speed my GPS was outputting data, I gradually increased the speed (Serial.begin(4800); ) in the startup section. All was well until I set the speed to 38400. I also increased the speed of the Serial monitor to that speed.
At that speed, the IDE reported that the serial port was no longer available, and threw the error that we have all seen so often...
After more testing, I found out that all I had to do to make the serial port disappear was to set the serial monitor to 38400 or higher.
Can anyone else confirm this? Since I only have one Uno, and one machine, I don't have anything else to test this on.
By the way - I did start Minicom in a terminal and set that to 38400bps on port /dev/ttyACM0. Seemed to work fine. Could this be a problem with librxtx?
Andy