Mostrando entradas con la etiqueta Kvaser. Mostrar todas las entradas
Mostrando entradas con la etiqueta Kvaser. Mostrar todas las entradas

Compilar e instalar los drivers de Kvaser en Linux.

Compilar e instalar los drivers de Kvaser en Linux.


Kvaser es uno de los mayores fabricantes de tarjetas CAN que existen en el mercado, especialista en buses de comunicaciones CAN y bus LIN.

Para instalar los drivers de las tarjetas CAN Kvaser, lo descargaremos de la página web http://www.kvaser.com/en/downloads.html. en la página seleccionar el tipo de descarga 'Download Type=Driver' automáticamente se actualiza la lista de archivos, mostrando el driver 'Kvaser LINUX Driver and SDK'.
Es necesario indicar una dirección de correo electrónico para descargar el archivo y hacer click en el botón 'Download'.
Una vez descargado, se extrae el contenido del archivo. Se puede dejar en la misma carpeta de descarga, pero en mi opinión creo que es mejor mover el contenido a otra ubicación.
Por ejemplo '/home/user/' o en mi caso está en '/opt/'


Abriremos el terminal con la combinación de teclas 'Alt+F2' y escribir 'gnome-terminal'.
Para cambiar a la carpeta de descargas, 'cd /home/user/Descargas/' o bien cambiar por la ruta del archivo descargado.
Copiar el archivo descargado y descomprimir el contenido en la carpeta '/opt/':

sudo cp linuxcan_beta.tar.gz /opt/
sudo tar xzvf linuxcan_beta.tar.gz

Eliminar archivo *.tar.gz inecesario:
sudo rm linuxcan_beta.tar.gz

Instalación completa de drivers.

Los pasos para compilar e instalar todos los drivers son:

make // compilar
make install // instalar

Al iniciar el canal virtual con 'virtualcan.sh start' aparece un mensaje de error.
WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
Lo que viene a decir, es que todos los archivos de configuración deberían estar dentro de la carpeta '/etc/modprobe.d/'

En distribuciones basadas en Debian, Ubuntu, Guadalinex y derivadas es necesario mover el archivo 'modprobe.conf' que se encuentra en la carpeta '/etc/modprobe.conf' a la carpeta '/etc/modprobe.d/'
Es posible que este problema también ocurra en otras distribuciones Linux.

Instalación parcial o personalizada.


Es posible compilar e instalar solo el driver que nos interese, es recomendable realizarlo así por varios motivos:
  1. Reducir el tamaño del driver final.
  2. Hardware compatible con nuestro equipo ya sea Laptop o PC.
  3. Solventar errores de 'modprobe.conf'
Por ejemplo no tendría mucho sentido instalar el driver ISA o PCI en un portátil.

Para compilar e instalar un driver solo, lanzamos el comando 'make' seguido del driver a instalar.

make leaf_install

donde 'leaf_install' es el hardware que queremos instalar.

Si queremos excluir hardware al compilar, necesitamos modificar el archivo settings.mak
En mi caso solo me interesa el canal virtual, el resto de hardware están comentados con #.

#----------------------------------------
# Hardware included in build
#
# To exclude a hardware add a '#' in front
# of the hardware
#----------------------------------------
#DRIVERS   += lapcan
#DRIVERS   += pcican
#DRIVERS   += pcicanII
#DRIVERS   += usbcanII
#DRIVERS   += leaf
DRIVERS   += virtualcan

En la instalación manual, podemos evitar el error de modprobe.conf modificando el archivo 'installscript_virtualcan_26.sh'
Editar el archivo 'installscript_virtualcan_26.sh' desde el terminal:

sudo gedit installscript_virtualcan_26.sh

Cambiar las siguientes lineas:

comentar la linea 8
#grep -v virtualcan /etc/modprobe.conf                    > new_modprobe.conf
y poner esta otra
grep -v virtualcan /etc/modprobe.d/modprobe.conf         > new_modprobe.conf

comentar la linea 13
#cat new_modprobe.conf > /etc/modprobe.conf
y poner esta otra
cat new_modprobe.conf > /etc/modprobe.d/modprobe.conf

guardamos el archivo y salimos de la aplicación.
Ahora ya es posible realizar la instalación personalizada y sin errores.

sudo make virtualcan_install

Para comprobar si la instalación es correcta:
sudo /usr/sbin/virtualcan.sh start

Cargamos el modulo del canal virtual de CAN.
Y ahora listamos los canales CAN disponibles:

sudo ./canlib/examples/listChannels

La respuesta obtenida seria similar a esta:

Found 2 channels.
channel 0 = KVASER VIRTUALcan channel 0, 0-0000-00000-0, (0)0, 0.0.0.0
channel 1 = KVASER VIRTUALcan channel 1, 0-0000-00000-0, (0)0, 0.0.0.0

Terminada la instalación del driver CAN Kvaser y verificado su funcionamiento.

El driver Kvaser podrá incluirse en CANinLinux

Después de consultar la posibilidad de incluir los drivers Kvaser en la aplicación, tengo respuesta por parte del soporte técnico de Kvaser. Es posible incluir los drivers sin problema alguno, además permiten modificar y distribuir libremente.

Su principal interes es vender su hardware no las librerías.

También tienen interés en la evolución del proyecto, tal vez otras personas podrían interesarse e incluirlo en su lista.

Proyecto alojado en code.google.com

Ya tenemos alojamiento para el proyecto, finalmente esta publicado en:
http://code.google.com/p/caninlinux/
El alojamiento en Google Code permite almacenar hasta un 1GB de código y trabajar con Subversión.
También es posible crear una página en formato wiki y tener un control de errores.

Para el desarrollo de CANinLinux se utilizara el Entorno Integrado de Desarrollo Anjuta.
La interfaz gráfica se esta diseñando mediante la herramienta Glade, de una forma sencilla. Posteriormente sera integrado en el IDE Anjuta.

La aplicación dispondrá de las siguientes funcionalidades:
  • Configuración del dispositivo (Canal, velocidad, modo de operación).
  • Monitorizar el bus.
  • Enviar y recibir tramas CAN.
  • Guardar log tramas CAN
Los drivers soportados serán:
*Nota: La licencia de los drivers de Kvaser no son libres, por lo que es posible que no se puedan incluir en la aplicación.