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
$ 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).
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 https://bugzilla.redhat.com/enter_bug.cgi?format=guided&product=Fedora&component=arduino
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
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
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 librxtxSerial.so \ -o -name RXTXcomm.jar | grep -v Download ./embedded/vendors/leaflabs/maple/ide/maple-ide-0.0.11/lib/RXTXcomm.jar ./embedded/vendors/leaflabs/maple/ide/maple-ide-0.0.11/lib/librxtxSerial.so ./embedded/arduino/arduino-0022/lib/RXTXcomm.jar ./embedded/arduino/arduino-0022/lib/librxtxSerial.so [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 librxtxSerial.so \ -o -name RXTXcomm.jar 2> /dev/null | grep -v Download /usr/lib64/rxtx/librxtxSerial.so /usr/share/java/RXTXcomm.jar [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 librxtxSerial.so 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/librxtxSerial.so
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 /home/herrold/embedded/arduino/arduino-0022/hardware/tools/avrdude [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
Packages are now available directly from Fedora, and the install may be as minimal as:
$ sudo yum install arduino
sudo usermod -a -G uucp,dialout,lock $USER
[herrold@hostname ~]$ grep $USER /etc/group uucp:x:14:uucp,herrold lock:x:54:herrold herrold:x:500: dialout:x:18:herrold [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)
Requirements:
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:
https://bugzilla.redhat.com/show_bug.cgi?id=555219
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
Select serial port
Requirements:
From Fedora Repositories:
avr-libc-1.6.4-1 includes crtm328p.o.
Link the proper files
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
Requirements:
From Fedora Repositories:
... then install the avr-gcc-c++ RPM from http://fr2.rpmfind.net/linux/RPM/fedora/updates/10/i386/avr-gcc-c++-4.3.3-1.fc10.i386.html (pick the big link near the top of the page)
avr-libc-1.6.4-1 includes crtm328p.o.
Requirements:
From Fedora Repositories:
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.
Requirements:
From Fedora Repositories:
Installation:
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:
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;
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
The Ardruino tarball only includes a 32-bit version of librxtxSerial.so, the native portion of the Java RXTXcomm library (http://www.rxtx.org), which fails with the following error on 64-bit distributions:
java.lang.UnsatisfiedLinkError: /home/user/arduino-0011/lib/librxtxSerial.so: /home/user/arduino-0011/lib/librxtxSerial.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch) thrown while loading gnu.io.RXTXCommDriver
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:
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
Table of contents
Overview:
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.
Requirements:
Installation:
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: http://ccl.net/cca/software/SOURCES/JAVA/JSDK-1.5/index.shtml 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 JPackage.org 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:
You will also need avr-libc but the Fedora repo does not seem to have that one. I did find the rpm at http://rpm.pbone.net. I downloaded that rpm and installed it. The version that got installed was:
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. http://www.nongnu.org/avr-libc/ The solution to this problem was to download the avr-libc package from http://www.nongnu.org/avr-libc/. 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