will be read-only starting December 31st, 2018. For more info please look at this Forum Post

Install Arduino 1.0 on Fedora 21

Before starting, please ensure you installed all the latest updates with: $ sudo yum update

arduino packages are now available directly from Fedora repos, and the install is as minimal as:

$ sudo yum install arduino

Fedora 22 and later

$ sudo dnf install arduino

If you run the Arduino IDE as a normal user (you should do that of course), you may get this error message : check_group_uucp(): error testing lock file creation Error details:Permission denied

This is probably because you don't have write permissions on /run/lock directory. Try this to see if this solves your problem : sudo chmod 777 /run/lock

/run/lock is created on boot by /usr/lib/tmpfiles.d/legacy.conf (both on systemd and initscripts). So if you want to keep the permissions you set, simply copy the file /usr/lib/tmpfiles.d/legacy.conf to /etc/tmpfiles.d/ and edit it there (set 0777 permissions).

Install Arduino 1.0 on Fedora 16 and earlier

Fedora 16 comes with Arduino 0022. However, if you would like to test Fedora's development versions of their Arduino 1.0 packages, you can:

$ sudo yum install fedora-release-rawhide $ sudo yum --enablerepo=rawhide install arduino

Please report any problems you find with these packages at

Install Arduino 0022 on Fedora 15 or 16

Install packages

Packages are now available directly from Fedora, and the install may be as minimal as:

$ sudo yum install arduino


A more complete install, adding the avrdude and compiler would include

$> /bin/su -
#> yum install uisp avr-libc avr-gcc-c++ rxtx avrdude

... under CentOS 6 and such

Presently [23 Aug 2011] however, the rxtx update issued by Red Hat at version: rxtx-2.2-0.5.20100211.el6 under its RHEL 6 line evidences a differing error, which prevents the Java based IDE from locating the serial port to use ... R P Herrold

RXTX fixup -- Link the proper files

The Java RXTX serial communications libraries are widely distributed in GUI IDEs. The versions provided by the IDE distributor are unlikely to 'simply work' in all cases. As such the workaround is to remove the non-functional versions, and link to correctly versioned binaries.

First, locate the versions to amend:

[herrold@hostname ~]$ find ~ -name \
   -o -name RXTXcomm.jar | grep -v Download
[herrold@hostname ~]$ 

In the present discussion, we are concerned with those files in the Arduino path

Second, locate the SYSTEM files:

[herrold@hostname ~]$ find /usr -name \
   -o -name RXTXcomm.jar 2> /dev/null | grep -v Download
[herrold@hostname ~]$ 

Then, remove the 'stock' IDE versions, and link the SYSTEM versions in their place -- root administrator rights are NOT needed if the IDE is unpacked in the end user's ownership:

$> cd ''<path to arduino>''/lib 
$> rm RXTXcomm.jar 
$> # we need to do this because the JAVA CLASS path, and 
$> # library paths may not pick up the needed ''.so'' library
$> ln -s /usr/share/java/RXTXcomm.jar 
$> ln -s /usr/lib64/rxtx/ 

Warning: Do not perform the next step (using the system avrdude) if you want to use the Arduino Diecimilla. The Diecimilla seems to need the custom version of avrdude and if you try to use the system version you will get the 'Yikes! Invalid device signature' error listed here.

As we have a separate avrdude packaging, the one which accompanies the stock IDE distribution is also able to be removed, and the one installed by yum under the package management system and so in the system stock executable path may be used instead. Again, start by finding the version to remove:

[herrold@hostname ~]$ find ~ -name avrdude | grep -v Download
[herrold@hostname ~]$ 

... actually, here:

$> cd ''<path to arduino>''/hardware/tools 
$> rm avrdude 
$> # ... optionally, because the system binary search $PATH handles this
$> ln -s /usr/bin/avrdude 

Install Arduino on Fedora 13 or later

Install packages

Packages are now available directly from Fedora, and the install may be as minimal as:

$ sudo yum install arduino

Make login member of the proper groups


  1. Go to Administration / Users and Groups
  2. Select User
  3. Select Properties
  4. Select tab Groups
  5. Make account a member of the following groups:uucp, lock and dialout
  6. Log out and log in


sudo usermod -a -G uucp,dialout,lock $USER

  • Make your login account a member of the following groups, to be able to control the serial port device lock-files:uucp, lock and dialout
  • Type: exit to logout and then login again, so that your session 'picks up' the additions
  • You may view the group membership of a given login userid [here for $USER: herrold] in the local password database [NIS or LDAP differ, but are out of scope here] context, thus:
[herrold@hostname ~]$ grep $USER /etc/group
[herrold@hostname ~]$ 

A reader adds: The distribution's standard packages did not work for me on two different Fedora 14 systems with an Arduino UNO. Uploads would consistently fail with an error from avrdude. I extracted the avrdude binary from the arduino-1.0 download package and installed it as /usr/bin/avrdude. (The official Fedora 14 avrdude was version 5.10 - the one I replaced it with was 5.11)

Install Arduino on Fedora 12 (x86_64)


Note: Fedora 12 is out of support and 'end of life' at this time [Aug 2011], and the Fedora-provided OpenJDK packages subsequent to Fedora 12 appear to work correctly as well (the package to install with yum is java-1.6.0-openjdk). Both the Sun Java SE package and OpenJDK appear to exhibit a JRE/RXTX bug on at least x86_64, that prevents the serial monitor from working correctly:

This has been fixed in the rxtx update for F12 and following at level: rxtx-2.2-0.1.20100211.fc12; at this point, there is little reason under Fedora to install Sun/Oracle's JVM distribution, unless you some alternative need for the Sun / Oracle version as well as OpenJDK.

Make login member of the proper groups

  • go to (GUI) Administration \ Users and Groups
  • Select User
  • Select Properties
  • Select tab Groups

Select serial port

  • In Arduino under Tools / Serial Port, select /dev/ttyUSB0

Install Arduino on Fedora 11


From Fedora Repositories:

  • uisp-20050207-5.fc11.i586
  • avr-libc-1.6.4-1.fc11
  • avr-gcc-c++-4.3.3-2.fc11
  • avr-gcc-4.3.3-2.fc11
  • avr-binutils-2.18-4.fc11

avr-libc-1.6.4-1 includes crtm328p.o.

Link the proper files

  • cd arduino-017/lib
  • rm RXTXcomm.jar
  • ln -s /usr/share/java/RXTXcomm.jar
  • ln -s /usr/lib64/rxtx/

Finally, to get around the "ghosted" Serial port, I had to add my user to the "dialout" group in /etc/groups and relogin. I also already had an .arduino/preferences.txt file, where i changed COM1 to /dev/ttyUSB0

Install Arduino on Fedora 10


From Fedora Repositories:

  • uisp-20050207-4.fc10.i386
  • avr-libc-1.6.4-1.fc10
  • avr-gcc-c++-4.3.3-1.fc10
  • avr-gcc-4.3.3-1.fc10
  • avr-binutils-2.18-2.fc9

... then install the avr-gcc-c++ RPM from (pick the big link near the top of the page)

avr-libc-1.6.4-1 includes crtm328p.o.

Install Arduino on Fedora 9


From Fedora Repositories:

  • uisp-20050207-2.fc9.i386
  • avr-libc-1.4.6-4.fc9
  • avr-gcc-c++-4.3.3-1.fc9
  • avr-gcc-4.3.3-1.fc9
  • avr-binutils-2.18-2.fc9
  • avrdude-5.5-3.fc9 (optional)

If you want to use Arduino Duemilanove with ATmega328, avr-libc-1.4.6 RPM does not include crtm328p.o. So what you need is newer avr-libc. My case, avr-libc-1.6.6 from upstream fix the problem.

Install Arduino on Fedora 8


From Fedora Repositories:

  • uisp-20050207-1.fc8
  • avr-binutils-2.17-4.fc8
  • avr-gcc-4.1.2-5.fc8
  • avr-gcc-c++-4.1.2-5.fc8
  • avr-libc-1.4.6-4.fc8
  • avrdude-5.5-2.fc8 (optional)


First you need to download the JRE (Java Runtime Environment), i downloaded jre-6u4-linux-i586-rpm.bin . Open a terminal and forward to the file and make the execute bit high:

  • chmod +x jre-XXX-linux-XXX-rpm.bin

The XXX and XXX stands for version and arch, you should enter the version and arch what you downloaded from Sun. Then execute as root the file;

  • su -
  • password: (su asks for root password)
  • ./jre-XXX-linux-XXX-rpm.bin
  • press q for quit the disclaimer
  • enter yes for agree the disclaimer
  • installation begins
  • /usr/sbin/alternatives --config java
  • select java package just installed
  • add user to group: uucp and lock
  • logout and login, to make the group membership changes take effect

If /usr/sbin/alternatives --config java does not list the newly installed java version then you can add it manually:

alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_07/bin/java 1607 

Now try /usr/sbin/alternatives --config java again.

Then proceed as normal, download Arduino, unpack and enjoy!

Good Luck, Jerry

Fedora 8 x86_64

The Ardruino tarball only includes a 32-bit version of, the native portion of the Java RXTXcomm library (, which fails with the following error on 64-bit distributions:

java.lang.UnsatisfiedLinkError: /home/user/arduino-0011/lib/
/home/user/arduino-0011/lib/ wrong ELF class: ELFCLASS32
(Possible cause: architecture word width mismatch) thrown while loading

The solution to this problem is to either compile RXTX, or download the binaries from the project site. Compiling the current version of RXTX turns out to be problematic on Fedora 8. Installing the binaries is much easier:

  1. Download the Linux binaries from here:
  2. cd ~/arduino-0011/lib
  3. mkdir orig
  4. mv orig/
  5. unzip -j ~/Download/ \ rxtx-2.1-7-bins-r2/Linux/x86_64-unknown-linux-gnu/

If you missed the group membership changes, or you forgot to log out and back in, then the Arduino program will have problems accessing the serial port and creating a lock file. In that case, you will see an error message like this:

check_group_uucp(): error testing lock file creation Error details:Permission denied
check_lock_status: No permission to create lock file.
please see: How can I use Lock Files with rxtx? in INSTALL

Install Arduino on Fedora Core 6

Table of contents

  • Overview
  • Requirements
  • Installation


To do the installation of Arduino on Fedora Core 6 (FC6), I pretty much used a mishmash of various different installation documents from different distributions that were out there. This document is to cover what all I found that needed to be done to get the Arduino to work under FC6.


  • SUN Java
  • AVR RPM's from the Fedora Project
  • avr-libc from
  • download the avr-libc binary as well


  • SUN Java
  • AVR RPM's from the Fedora Project
  • avr-libc from
  • download the avr-libc binary as well

First off, the Java that comes with the FC6 distribution is not good enough to run the Arduino environment. You will definitely need the Java from Sun for it to work correctly. The version I have installed is jdk-1.5.0_09-fcs. One author of this article highly recommends that you used the method described at: The reason for this is that it will allow you to use the "alternatives" feature in Fedora so that you can multiple different vendor Java's setup on your system. Follow those instructions and set the Sun Java as default. Note that this caveat is over four years old, as Fedora 6 is long out of support.

One thing to note on the versions, go with the version that is specified in the article. If try to go with a newer one, the update that you will do later with the repo from will fail. It seems that it has to be that specific version of the jdk. for me, the version of jdk that I used to make it all work was jdk1.5.0_09.

Now for the rpms, as root, install the following rpms from the Fedora repos:

$> yum install avr-gcc avr-binutils avrdude avr-gdb avr-gcc-c++

For me, this installed these versions:

  • avr-gcc-4.1.2-4.fc6
  • avr-binutils-2.17-3.fc6
  • avrdude-5.3.1-5.fc6
  • avr-gdb-6.6-4.fc6
  • avr-gcc-c++-4.1.2-4.fc6

You will also need avr-libc but the Fedora repo does not seem to have that one. I did find the rpm at I downloaded that rpm and installed it. The version that got installed was:

  • avr-libc-1.2.3-1.fc6.ccrma

At this point, a majority of the Arduino environment will start to work. For me, however, I ran into another problem. It seems that with my Arduino NG rev. C, that I got, comes with an ATMEGA168-20PU chip. It also turns out that the avr-libc has a known issue where the file crtm168.o is missing from this rpm. It also just happens to be a very necessary file that you will need in order to be able to compile any programs and send them to the Arduino. The solution to this problem was to download the avr-libc package from The version I got was 1.4.6. Now unzip the binary and look for a file called crtm168.o. Copy that file to the /usr/avr/lib/avr5 directory.

At this point, you should be able to run the Arduino IDE environment and upload programs to the chip.

The only other issue that I am still experiencing has nothing to do with the setup of the Arduino but has everything to do with the USB permissions. Every time I plug in the Arduino into my machine, FC6 sets the permissions on the port such that a regular user cannot use it. To correct this, I chmod 777 /dev/ttyUSB0 as root. After that, I am able to communicate with the Arduino as myself. This is more ideal to me than running the IDE as root.

- update - I was able to fix the permissions issue by adding my userid to the uucp and lock group in /etc/group. Once I did that, I logged out and back in again and the Arduino environment started up fine.

Good Luck. -- Charles