view history edit print login register

Installation of Arduino IDE on openSUSE Linux (32bit and 64bit)

For release 012, there are dedicated version for 32bit and AMD64 available here and on the mirrors.

For the installation of an Arduino-release 0018 on an openSUSE 11.2 (x86_64), the impatient can find a related 12-step installation-HOW-TO at the forum

Repository with updated AVR rpms:

This is necessary for using the ATmega328 chip !

http://download.opensuse.org/repositories/CrossToolchain:/avr/

After adding the appropriate openSUSE version repo with YaST, just install as usual.

Necessary standard packages:

  • avrdude
  • avr-libc
  • cross-avr-binutils
  • cross-avr-gcc

Install the packages with YaST as usual.

Add symlinks the Arduino IDE can't find avr-gcc:

avr-gcc is installed to /opt which may be outside the default path on older releases. A few symlinks to /usr/local/bin solve this issue. On openSUSE 11.2 it just works out of the box.

Create symlinks as root:

find /opt/cross/bin/ -iname "avr*" -exec ln -s -t /usr/local/bin/ {} \;

Java rxtx library for 64bit systems

Related post on the forum

Get the rpms from openSUSE repositories: openSUSE 11.0 11.1 11.2

First install the rpm package. Then change to your arduino folder and remove the supplied ./lib/librxtxSerial.so and replace it with a symlink (as root):

ln -s /usr/lib/librxtxSerial.so

Changes to allow user access to com ports:

As devices are created on the fly by UDEV, using chown/chmod on /dev/ttyS0 ... /dev/ttyUSB0 ... will not be enough to grant access rights. Also some applications require write access to /var/lock (e.g. minicom, console terminal software) and will not work properly without that.

On openSUSE systems users get the proper access rights (rw) by putting them into the UUCP group (pre 11.2) or DIALOUT + UUCP group (as of 11.2). DIALOUT membership grants write access to serial ports, UUCP membership allows for lock-file generation in /var/uucp. This can be done with YaST or on the console by:

usermod -A some_user_name dialout

If this is done while running an X session as said user, X must be restarted to update group membership (logoff/logon).

Starting the Arduino IDE:

You can start the IDE by running the shell script 'arduino' from the console, or if you prefer the point/click method and happen to use KDE, just create a 'Link to Application...' with the 'arduino' shell script as the target.

Issues with avr-gcc:

  • NewSoftSerial doesn't compile

Viewing debug messages:

For viewing debug messages (build/upload) and error messages, the IDE must be started from a console. The IDE stores its settings in the file '$HOME/.arduino/preferences.txt'. To enable verbose output, change these flag accordingly:

build.verbose=true

upload.verbose=true

Tested versions of openSUSE:

  • 10.3 / 11.0 / 11.1 / 11.2


In case you run the IDE in a virtual pc using VirtualBox here's some info:

Changes to allow users to run VirtualMachines:

When installing the VirtualBox rpm package from www.virtualbox.org, a new usergroup called 'vboxusers' is created automatically.

Users must be member of this group.

The current group membership can be looked up by typing the command id in a console. Adding a user to the group 'vboxusers' can be done with YaST or by running

usermod -A some_user_name vboxusers

as root. The current X session must be restarted to make it work.

Changes to allow user access to USB on the host:

When using up-to-date releases of VirtualBox, these steps are not necessary anymore.

VirtualBox requires '/proc/bus/usb' to be mounted to allow the VMs access to the USB ports of the host. One part of the solution is to add a single line to '/etc/fstab'

none /proc/bus/usb usbfs defaults,user,devgid=1000,devmode=0660 0 0

The flag 'user' enables ordinary users to mount it. Unfortunately adding this line does NOT automount it at system startup, hence the 'user' flag. 'devgid=XXXX' must be set to the numerical group-id of 'vboxusers'. 'devmode=0660' enables (rw) access to the USB ports for root and all group members.

As the VirtualBox service is started by init scripts before '/proc/bus/usb' is mounted, some user intervention is necessary once after a system startup:

mount /proc/bus/usb

sudo /etc/init.d/vboxdrv restart

Of course, this could be put into a small bash script or hacked into the startup scripts. -}