Problemas con las Coneciones NMEA (Puerto COM) en Ubuntu

pinguino

En respuesta a un comentario en el artículo “Gestionando el Administrador de Dispositivos” de nuestro blog de Inglaterra, donde Michael informó que tenía problemas para que su AIS100USB funcionara en LINUX, decidimos descargar la última versión de OpenCPN y asegurarnos de que el nuevo código de conexiones NMEA que han añadido recientemente a V3.20, seguía funcionando como las versiones anteriores.

Había pasado un tiempo desde que utilizamos por última vez la versión LINUX de OpenCPN con una configuración normal de 32 bits de Ubuntu V12.04, y nos sorprendió cuando no pudimos recibir los datos de NMEA en nuestro receptor o transpondedor AIS. Para investigar más a fondo, abrimos una ventana de terminal y escribimos el siguiente comando …

dmesg | grep tty

El cual devolvió la siguiente información sobre todos los puertos serie: “tty” es un término heredado en LINUX desde los días de teletipos que luego evolucionaron a terminales de ordenadores que usaban puertos serie para conectarse al ordenador central.

foto del comando dmesg | grep tty

El comando Dmesg extrae información de varios archivos de registro y devuelve la información actual e histórica sobre los dispositivos USB que se han conectado a la PC. En la foto de la pantalla de arriba, puede ver que se conectó un convertidor de USB al puerto en serie y se le dio el nombre ttyUSB0 (este es nuestro receptor AIS) pero que se desconectó. Luego puede ver que otro dispositivo USB ACM se conectó y se le dio el nombre ttyACM0 (este es nuestro transpondedor AIS) que todavía está conectado.

Ahora que ya sabiamos qué puerto en serie LINUX había configurado para nuestro transpondedor AIS, el siguiente paso era usar un programa LINUX llamado ‘Screen’ (Pantalla) para enviar los datos NMEA que llegan sobre ttyACM0 a nuestra pantalla de terminal. Primero instalamos el programa Screen escribiendo el siguiente comando en el terminal …

sudo apt-get install screen

Una vez instalado, el siguiente comando debería haber mostrado los datos NMEA que llegan del puerto ttyACM0 …

screen /dev/ttyACM0 38400

Sin embargo, cuando ejecutamos este comando, vimos brevemente una advertencia que decía que no tenía los permisos necesarios para acceder a este dispositivo. Esta fue nuestra primera pista sobre el problema, sin NMEA en OpenCPN. Volvimos a ingresar el comando esta vez ejecutándolo como el usuario “Root” usando el comando sudo …

sudo screen /dev/ttyACM0 38400

Esta vez el comando en ‘Screen’ funcionó y vimos la siguiente pantalla …

foto de screen con datos nmea

Por lo tanto, parece que, por algún motivo, se nos negaba el acceso a los dispositivos de puerto COM. Lo primero que pensamos es que esto era un problema con OpenCPN y buscamos formas de ejecutar OpenCPN como root. Afortunadamente, recibimos un consejo de un cliente de Digital Yacht llamado Fulup y que anteriormente ya nos había ayudado a conseguir que OpenCPN funcionara con nuestro AIT2000.

Una vez más, la ayuda de Fulup con LINUX fue invaluable, que descubrió que el problema radica en los cambios en la forma en que las últimas versiones de Ubuntu configuran los permisos de usuario predeterminados. Los puertos COM solían estar disponibles para todos los usuarios, pero ahora necesita permisos de marcación para acceder a ellos. Fulup nos recomendó que agregáramos nuestro nombre de usuario al grupo de marcado y así deberíamos poder acceder a los puertos COM, sin abrir un posible riesgo de seguridad de ejecutar OpenCPN como root.

Para hacer esto, fue necesario abrir una ventana de terminal nuevamente y ejecutar el siguiente comando exactamente como está escrito, tenga en cuenta que $ LOGNAME es una variable de shell y obtendrá automáticamente el nombre del usuario con el que ha iniciado sesión actualmente;

Sudo usermod -a -G dialout $LOGNAME

Ahora su nombre de usuario se ha agregado al grupo de marcado y solo necesita cerrar sesión y volver a iniciar sesión para que los cambios se actualicen y entren en vigor. Una vez que vuelva a iniciar sesión, ejecute OpenCPN para asegurarse de que ahora pueda leer los datos de los puertos COM.

Nos complació mucho descubrir que esto solucionó el problema (gracias a Fulup) y ahora tenemos datos NMEA provenientes de nuestro Transpondedor AIS o nuestro Receptor AIS. Espero que esto ayude a cualquiera que tenga problemas similares con las versiones 12.04 o superiores de Ubuntu.

Share this article
Shareable URL
Prev Post

Gestionando el Administrador de Dispositivos

Next Post

Explicación del nuevo estándar AIS de Clase B SOTDMA

Read next
0
Share