JMRI Install Guide: Linux

This page describes general aspects of installing JMRI on Linux.

There are multiple versions of Linux, all slightly different and requiring installation instructions that differ in detail. There are specific pages describing details of installation on

JMRI users have created helpful pages: There are also detailed instructions for installing on the

You can also find some more specific information on the "JMRI Linux FAQ page".

The general procedure to install JMRI is:

  1. Determine if your hardware supports Java and JMRI
  2. These steps outline how to install DecoderPro on Linux. These steps should work for Red Hat 8, 9 and 10. They don't work on RedHat 7.

    (For other versions of Linux, please see the first item in our JMRI Linux FAQ).

    You'll need the correct serial port or USB port to attach to your layout hardware. JMRI is compatible with USB-to-Serial adapters, so long as they have Linux drivers that make them look like regular serial ports. For troubleshooting, see the FAQ

  3. Get and Install Java (if needed)
  4. See if you have a version of Java already installed

    sh> java -version

    If the version is 1.6 or later, you may be fine, but be aware that if you did not install Java on your system yourself, some systems have Java only partially installed. They will respond correctly to the above command, but still are not all there. If your system does not have Java in the environment variable PATH, the install is probably not complete. Check with the system manager or do a fresh Java installation.

    If it is not at least 1.6, or if you get a "java: not found" error, you will need to install it.

    Most Linux distributions can get an automated install download from Sun by clicking on this button:
    GetJava Download Button

    To manually install Java, the following steps need to be performed with superuser priviledges:

    1. Download the Java 1.6 "jre-6u34-linux-i586-rpm.bin" from the Oracle download. This should give you a file named "jre-6u34-linux-i586-rpm". Install that with:
      rpm -i jre-6u34-linux-i586-rpm
  5. Give user-level application access to serial ports
    chmod 666 /dev/ttyS0
    chmod 666 /dev/ttyS1
  6. Give user access to lock files (required on Red Hat). Edit /etc/group & /etc/gshadow to add user to 'uucp' and 'lock' groups.

Note that you will have to reinstall the rxtx driver and package if you have to reinstall the system software, or if you do a "clean install" of an OS update.

  • Get JMRI
  • Download a version of JMRI, either the latest production version, or a "test version". Since the version numbers change with every release, this link takes you to the general JMRI download page, where you can select whichever version you like.

    The JMRI project is continuously adding features, bug fixes, examples and tutorials to the release, and so a new "test" versions appear every couple of weeks. You may find one of these has features that you really want. These are announced in the "jmriusers" Yahoo discussion group at

  • Install JMRI
  • Uncompress/untar the file you downloaded above. This will create the "JMRI" folder.

    To install, you just have to move the JMRI folder to where you want it on your computer.

  • Installation is complete.
  • You can run the program by using the "DecoderPro", "PanelPro", or "JmriDemo" scripts in the JMRI folder. Change directory there, and invoke a script with e.g. "./DecoderPro"