Arduino on Linux

I've documented the process of today at: http://www.arduino.cc/playground/Linux/Debian

Thanks much for your help with us. None of the core developers have regular access to a Linux box, so we rely on contributions to improve the process. If you have any other suggestions or fixes, please let me know. In particular, I'm curious about the need to chmod the Arduino files from svn. Who owned them when they were checked out? Did you check them out with a sudo?

I am trying to get the Arduino board installed on my Fedora Core 5 laptop: no luck yet. My problem appears to be with the Java GUI

I have followed the guid of an earlier post in this thread, taken form here: http://riereta.net/tiki/tiki-index.php?page=PdInstallationArduino

I was getting a strange error... check_group_uucp(): error testing lock file creation Error details: Permission deniedcheck_lock_status: No permission to create lock file. So I copied the proper rxtx version serial lib into the work directory ( cp /usr/java/jre1.5.0_07/lib/i386/librxtxSerial.so work/ ) Now I don't get that error.

When I run arduino: 1) I get the file selector dialog but no files are displayed. 2) When I enter a filename a directory within the work directory is created: for example if I try to open Pd_firmware.pde a directory is created work/NullPd_firmware.pde/

Is there a way to upload this firmware to the arduino from the command line?

Hi,

So I looked into it and this is the specific error:

Copying dist files... cp: cannot create regular file work/lib/.svn/empty-file': Permission denied cp: cannot create regular filework/lib/.svn/entries': Permission denied cp: cannot create regular file work/lib/.svn/format': Permission denied cp: cannot create regular filework/lib/.svn/README.txt': Permission denied

and this is beause the build/linux/dist/lib contains a few read-only files: -r--r--r-- 1 bbogart bbogart 0 2006-08-27 15:45 empty-file -r--r--r-- 1 bbogart bbogart 6192 2006-08-27 15:45 entries -r--r--r-- 1 bbogart bbogart 2 2006-08-27 15:45 format -r--r--r-- 1 bbogart bbogart 118 2006-08-27 15:45 README.txt

Which seems to be an .svn directory.. does svn creates this itself, or are they checked in? I tried running through again and the errors can be ignored (I did not realize that at the time.) if the compile fails and someone tries to recompile though then they need to override the readonly to delete the work/ directory.

probably best to have all files read-write for the current user.

Thanks for applying the patch to the svn! I'll update the howto accordingly.

How do I debug a java freeze???

Thanks much for your help with us. None of the core developers have regular access to a Linux box, so we rely on contributions to improve the process. If you have any other suggestions or fixes, please let me know. In particular, I'm curious about the need to chmod the Arduino files from svn. Who owned them when they were checked out? Did you check them out with a sudo?

yo on the second service i got the arduino compiled. with run.sh i get the file open dialog however steering f.e. to work/dist/examples/digital\ IO/ no files are displayed/can be chosen & selecting this (or others) directory it segfaults. what kind of file the selector is looking for to keep him goin?

Experimental: JNI_OnLoad called. Experimental: JNI_OnLoad called.

Stable Library

Native lib Version = RXTX-2.1-7 Java lib Version = RXTX-2.1-7 Experimental: JNI_OnLoad called. ./arduino: line 51: 27916 Segmentation fault java processing.app.Base

I'm working on installing on Arch Linux, which has no avr packages Just wanted to say that I found this website http://www.nongnu.org/avr-libc/user-manual/install_tools.html it seems to have good instructions for compiling gcc binutils and libc for avr. I'm in the midst of it now, i'll post back if its successful

That works! I have the Arduino devel evironment running under Arch Linux If anybody needs help with that lemme know.

i'm trying to make arduino work from the command line on my fedora core 6 box. since there are no avr-gcc rpms available at the time of writing for fedora, i compiled them myself. using the instructions from here: http://www.arduino.cc/playground/Learning/CommandLine i'm trying to compile a simple example code, but i'm getting errors:

avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
        --change-section-lma .eeprom=0 -O ihex foo.elf foo.eep
avr-objcopy: there are no sections to be copied!
avr-objcopy: --change-section-lma .eeprom=0x00000000 never used
make: [foo.eep] Error 1 (ignored)

avr-objdump gives the following output:

$ avr-objdump -h foo.elf 
foo.elf:     file format elf32-avr
Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00001050  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000096  00800060  00001050  000010e4  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000009b  008000f6  008000f6  0000117a  2**0
                  ALLOC
  3 .stab         00002280  00000000  00000000  0000117c  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      000016fd  00000000  00000000  000033fc  2**0
                  CONTENTS, READONLY, DEBUGGING

the versions of the software i'm using are the following: avr-binutils-2.17, avr-gcc-4.1.1, avr-gcc-g++-4.1.1, avr-libc-1.4.5.

$ avr-gcc -v
Using built-in specs.
Target: avr
Configured with: ./configure --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib --target=avr --disable-libssp --enable-languages=c,c++ --disable-libmudflap --disable-libiberty --disable-libstdc
Thread model: single
gcc version 4.1.1

any help would be appreciated.

i figured it can be a problem of avr-binutils, although the program can be uploaded regardless of the error.

objcopy.c should be patched at about line 1421:

    if (bfd_count_sections (obfd) == 0)
    {
      non_fatal (_("there are no sections to be copied!"));
      return FALSE;
    }

FALSE can be changed to TRUE to avoid the error.

reference: http://2313.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=39014&start=0&POSTNUKESID=9c998e6153cb4e6bba14ec5311d6cc05

gabor: the error seems to be appearing in a command to build a file you don't really need. You can modify the Makefile to not build it at all. Change line 127 from:

build: elf hex eep

to:

build: elf hex

And change line 136 from:

upload: $(TARGET).hex $(TARGET).eep

to:

upload: $(TARGET).hex

This will be fixed soon.

Hi, I just compiled everything needed to run arduino on Linux by myself and it works fine.

I just missed the hint to build an avr-g++ either - but that was a minor problem to be fixed easily.

Just follow blindly step by step the buildprocess of an avr-environment, install some JRE, jikes, RXTX, build the usb-serial kernel module, get the IDE via the subversion repository, set up pathes and environment variables and smile happily at your blue-ish IDE. :)

Now I have to wait for the actual board as I just placed my order two hours ago.

Just to report some success... (Slackware 11.0)

mellis, thanks for your help.

on the other hand, i'm planning to submit the avr rpms to fedora repositories. if they got excepted users will be able to install avr development tools easier in the future in fedora.

Hey All, I had a little trouble getting things to run on Ubuntu Edgy AMD64. I had to install the package "librxtx-java" first. Then I had to fix the CLASSPATH reference to the local copy of RXTXcomm.jar. It needs to point to "/usr/share/java/RXTXcomm.jar". Next I had to make two changes to the dist/arduino script. I had to again, swap the reference to the installed RXTXcomm.jar and then I had to change the LD_LIBRARY_PATH to point to /usr/lib instead of the {cwd}/lib so that it will find the correct .so files. I can supply patches if needed.

Everybody running Ubuntu Linux: forget about compiling the software The only working Howto for me was: http://www.arduino.cc/playground/Linux/Debian It is simple and up to date ... 8-)

Hi I am a total Newbie to Linux I have SuSE 8.2 Personal Edition. I could not get Ubuntu to work on my machine. I am currently working with it in the Windows Environment and want to expand my horizons.

I downloaded the latest version of the Arduino software and "unpacked" it onto my desktop and can't get it to run. I read the installation instructions and to be honest - just don't understand what they are trying to tell me. :-/.

Remember that I am a total Newbie to Linux and I would really appreciate the help.

Is there a reason why you still use SuSE 8.2 ?
This is really old, no patches anymore.

Have you tried the installation instructions I wrote for openSUSE ?
( http://www.arduino.cc/playground/Linux/OpenSUSE )

madworm,

Thanks for the reply. I downloaded and installed openSuSE 10.3.

Please take no offense, but I just don't understand the installation instructions. I am a total newbie here. :-/ I think I downloaded the right files.

arduino-0012-linux.tgz avrdude-5.5.tar.gz.sig avrdude-5.5.tar.gz avr-libc-1.6.4.tar.bz2.sig avr-libc-1.6.4.tar.bz2 avr-binutils-2.13.2.1nb2.tgz cross-avr-gcc-4.1.3_20070724-15.x86_64.rpm

I tried to install them through YaST but just don't know how.

If you have a step by step procedure like the installation of the 10.3 OS that would be great.

Thank you for your help :)

ok.

  • open a console in X
  • type:
su
  • enter the root password
  • type:
yast2
  • start the module for installation sources
  • make sure these repositories are added and active:
http://download.opensuse.org/distribution/10.3/repo/oss/
http://download.opensuse.org/distribution/10.3/repo/non-oss/
http://download.opensuse.org/update/10.3/
  • start the software installer module
  • in the search field type AVR and press the search button
  • select these packages: avrdude, avr-libc, cross-avr-binutils, cross-avr-gcc
  • press accept
  • yast2 will download and install the stuff
  • start the user/group manager module
  • edit the users who need to use the arduino software
  • select the group 'UUCP' in the group membership tab. this will grant access to the usb port (/dev/ttyUSB*) and press OK/FINISH
  • quit yast2
  • in the console type:
find /opt/cross/bin/ -iname "avr*" -exec ln -s -t /usr/local/bin/ {} \;
  • close the root console
  • RESTART X (logoff/logon)
  • as a normal user, open a console window
  • extract arduino-0012-linux.tgz to the desired folder
  • change to that directory
  • type:
./arduino
  • the IDE should start.

Thank you so much - I'll give it a shot

madworm,

Thank you so much for your help!!

I ended up getting a DVDROM for $10 for the local computer parts store so I could load the full version had everything going fine except I could not find the repositories you mentioned:

http://download.opensuse.org/distribution/10.3/repo/oss/
http://download.opensuse.org/distribution/10.3/repo/non-oss/
http://download.opensuse.org/update/10.3/

Then I noticed that those looked like websites. Lacking a wireless card I hauled the machine upstairs and plugged it straight in to the router, reinstalled the software and there it was (I ended up installing the 11.0 version). The finding of the AVR packages was as simple as you said!

I did notice that I have to log into the terminal with "su" to have full access. But maybe that is something for later.

I found that running Arduino with Linux is actually easier to configure than in windows since the port setting actually says "usb":D

Again thank you for your help and time.

Sparky