0 Respuestas Última respuesta el Aug 15, 2014 2:08 PM por hcabrera

    Arduino IDE y Arch Linux

    hcabrera

      Hola a todos,

       

      Abro este post con la finalidad de compartir algunos arreglos que lleve a cabo para poder utilizar sin problemas la versión de Intel del Arduino IDE en arch linux, en especifico mi distribución es Antergos 64 bits:

       

      librería RXTX:

       

      Después de la instalación del Arduino IDE me aparecía este error en la consola de Linux. Cabe mencionar que no podía seleccionar el puerto serial al cual estaba conectada la tarjeta Galileo.

       

      check_group_uucp(): error testing lock file creation Error details:Permission deniedcheck_lock_status: No permission to create lock file.

       

      please see: How use Lock Files with rxtx? in INSTALL

       

      El IDE de Arduino se encuentra implementado en Java y utiliza la biblioteca rxtx, la cual a su vez requiere escribir al directorio /var/lock. En el apartado de Arduino en la wiki de Arch mencionaban que requería pertenecer a los grupos uucp y lock por lo que agregue a mi usuario a estos grupos:

       

      gpasswd -a $USER uucp
      gpasswd -a $USER lock
      

       

      Una solución temporal era cambiar los permisos del directorio en cuestión, sin embargo esto lo tenia que repetir cada inicio de sesión:

       

      chmod 777 /var/run
      
      

       

      Finalmente di con una solución definitiva en este post (liga).

       

      Al parecer el problema se presenta por que el Arduino IDE trae consigo una copia propia de las librerías rxtx de java. Esta copia no esta actualizada y por eso no permite la escritura en la carpeta /var/lock aun cuando pertenezcas al grupo lock. La solución es utilizar las librerías del sistema! para esto habrá de estar seguro que tenemos las librerías instaladas y que tenemos la versión mas nueva:

       

      sudo pacman -S rxtx
      
      

       

      Después, creamos un respaldo de las librerías que vienen con la instalación de Arduino IDE:

       

      mv ~/opt/arduino/lib/librxtxSerial.so ~/opt/arduino/lib/librxtxSerial.so.bak
      mv ~/opt/arduino/lib/librxtxSerial64.so ~/opt/arduino/lib/librxtxSerial64.so.bak
      mv ~/opt/arduino/lib/RXTXcomm.jar ~/opt/arduino/lib/RXTXcomm.jar.bak
      
      

       

      Después creamos las ligas a las librerías del sistema:

      ln -sf /usr/lib/librxtxSerial.so ~/opt/arduino/lib/librxtxSerial.so
      ln -sf /usr/lib/librxtxSerial64.so ~/opt/arduino/lib/librxtxSerial64.so
      ln -sf /usr/share/java/rxtx/RXTXcomm.jar ~/opt/arduino/lib/RXTXcomm.jar
      
      

       

      Listo! después de esto podrás correr Arduino IDE sin ningún problema con tu usuario regular!.

       

       

      Python

       

      Con el IDE reconociendo mi tarjeta pase al compilar un sketch de prueba, pero o sorpresa:

       

      File "/home/hank/Arduino/hardware/tools/relocate_sdk.py", line 98
      Setting it up...SDK could not be set up. Relocate script failed. Abort!
      print "ERROR: could not relocate %s, interp size = %i and %i is needed." % (elf_file_name, p_memsz, len(new_dl_path) + 1)
      SyntaxError: invalid syntax
      

       

      Al parecer ARCH utiliza por default python 3, y el script relocate_sdk.py solo se ejecuta en python 2. Solucion:

       

      pacman -S python2
      
      

       

      y modificar la linea del script anteriormente mencionado (relocate_sdk.py) de:


      #!/usr/bin/env python
      
      

       

      a:

       

      #!/usr/bin/env python2
      
      

       

      Listo! tenemos una instalación de Arduino IDE funcional