JMRI: Linux FAQ

Has anybody described making all this work?
The main JMRI Linux page has a general list of things you have to do.

david zuhn's web site and Jon Miner's web site provide nice summaries of installing on Fedora.

Robert Plevier has provided a note on his experiences with OpenSUSE.

There's also a page describing installation on Ubuntu Linux.

The "java" command doesn't work. Now what?
Make sure the java bin directory is on the path. For example, the default location for the "SDK" 1.4.2_05 version of java is /usr/java/j2sdk1.4.2_05/bin .
What's the difference between the "SDK" and "JRE" java versions?
"SDK" means Software Development Kit. It's larger, because it contains the compiler and various development tools. It also contains everything you need to run Java programs like JMRI.

"JRE" means Java Runtime Environment. It's just the things you need to run Java programs, not develop them, so it's smaller.

Where do I install the Java comm libraries?
Those libraries need to be installed where they will be found at the java startup. That means they need to be in the directory associated with the "java" command you'll be running.

To find the right version:

   java -version

Then locate the directories associated with that version. If you have both the "SDK" and "JRE" forms of java installed, it will usually use the SDK directories, but you might want to install to both.

What do I do if my (USB) serial port isn't listed in the preferences?

There are three options for solving this problem.

Option 1:

If the RxTx and Java Communications Libraries are installed correctly, and the serial port to which your device is attached isn't listed, you can force RxTx to recognize a specific serial port.

If you want to force the use of "/dev/ttyUSB0", you can do this by adding the following to java command line in the "DecoderPro","PanelPro", "LocoTools", or "JmriDemo" script:


 -Djavax.comm.rxtx.SerialPorts=/dev/ttyUSB0

Multiple ports can be added to the list by using a colon seperated list.

Option 2:

If the RxTx and Java Communications Libraries are installed correctly, and the serial port to which your device is attached isn't listed, you can force RxTx to recognize a specific serial port.

If you want to force the use of "/dev/ttyUSB0", you can do this by adding the following to the "javax.comm.properties":


javax.comm.rxtx.SerialPorts=/dev/ttyUSB0

Multiple ports can be added to the list by using a colon seperated list.

Option 3:

Finally, if you want RxTx to scan the available ports for you, you can modify the source code to do this. The instructions for doing this are included in the INSTALLATION file contained within the RxTx package.