domingo, marzo 20, 2011

Arreglar Arduino UNO para Ubuntu (10.10)

Hace unos días me compré una nueva Arduino para jugar con ella. Es el modelo Arduino UNO y, paradojas de la vida, a pesar de ser un proyecto MUY libre, no tiene buen soporte para gnu/linux (Ubuntu que es mi caso a día de hoy). Hay un bug en el firmware para la comunicación serie-USB.
La solución está en cargar un nuevo firmware, siguiendo los siguientes pasos (bajo la responsabilidad de cada uno, que todo esto es gratis ):

Paso 1:
Ir a https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduino-usbserial/   y descargar la última versión de Arduino-usbserial-uno.hex 
Ojo, hay que descargarse el código hexadecimal tal cual (no el html). Para ello hacemos click sobre el archivo y después click derecho en la opción "raw" (guardar enlace como).

Paso 2: Instalar Device Firmware Update para chips Atmel:

 $sudo dpkg -i linux-headers-2.6.38-020638_2.6.38-020638.201103151303_all.deb  

Paso 3: Poner el chip en modo programación conectando los siguientes cables:

Con el cable USB conectado:

  • Mantén el primer cable en la posición indicada.
  • Mantén el segundo cable en la posición indicada.
  • Desconecta el segundo cable.
  • Desconecta el primer cable.

Paso 4: Reprogramar el firmware:

 $sudo dfu-programmer at90usb82 erase  
 $sudo dfu-programmer at90usb82 flash --debug 1 Arduino-usbserial-uno.hex  
 $sudo dfu-programmer at90usb82 reset  
Paso 5:

Desconectar y volver a conectar el cable USB...y a rular.

Fuentes:

http://arduino.cc/forum/index.php?topic=55736.0
http://es.scribd.com/doc/45913857/Arduino-UNO
http://www.strangeparty.com/2010/12/13/fix-your-arduino-uno-for-linux/

kernel 2.6.38 en Ubuntu 10.10 por la vía rápida

Si estás ansioso por probar el nuevo kernel 2.6.38 que trae bastantes mejoras, tienes instalada una Ubuntu 10.10 (Maverick) y no quieres esperar a la versión 11.04 (será la que llevará dicho kernel de fábrica), puedes hacerlo por la vía rápida descargando e instalando los siguientes paquetes (arquitectura i386):

Paquete 1:
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.38-natty/linux-headers-2.6.38-020638_2.6.38-020638.201103151303_all.deb

 $sudo dpkg -i linux-headers-2.6.38-020638_2.6.38-020638.201103151303_all.deb  

Paquete 2:
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.38-natty/linux-headers-2.6.38-020638-generic_2.6.38-020638.201103151303_i386.deb

 $sudo dpkg -i linux-headers-2.6.38-020638-generic_2.6.38-020638.201103151303_i386.deb  

Paquete 3:
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.38-natty/linux-image-2.6.38-020638-generic_2.6.38-020638.201103151303_i386.deb

 $sudo dpkg -i linux-image-2.6.38-020638-generic_2.6.38-020638.201103151303_i386.deb  

Finalmente se actualiza el grub:

 $sudo update-grub2  
y a reiniciar y probar... ¡por cierto!,  funciona ok.



Fuentes:

http://www.chimerarevo.com/2011/02/07/ubuntu-10-10-come-installare-il-kernel-2-6-38/