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:
- Reducir el tamaño del driver final.
- Hardware compatible con nuestro equipo ya sea Laptop o PC.
- 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.