Conversor USB/serie

Imagen de juam3_14
0 puntos

Hola, estoy realizando un programa en c++ que manda datos por el puerto serie. Tengo un conversor de usb a serie, por lo que el puerto que utlizo es el /dev/ttyUSB0.

El problema es que para que mi programa pueda acceder al puerto, primero debo ejecutar como root el siguiente comando para otorgar los permisos de lectura y escritura.

chmod 777 /dev/ttyUSB0

Hasta aca todo bien, el problema es que cuando desconecto el conversor serie/USB o reinicio la PC, debo volver a ejecutar como root el comando anterior.
Hay alguna forma de otorgar estos permisos de forma permanente??
gracias..

Imagen de ea7ejg
+1
0
-1

Posible Solución

Para la utilizacion de un interface de sonido y control de transceptores de radio que utilizan puertos ttyUSBx,
estuve googleando y despues de consultar algunas paginas y blogs encontré esta solución.

El problema es que ubuntu no permite que se quede fijo la selección de los permisos del Grupo dueño de los puertos ttyXXXn, normalmente es dialup con lo que tienes que dar permisos cada vez que inicias sesíon o el sistema. El tema esta relacionado con la selección de las mascara umask, que tengas seleccionada, (que no es conveniente cambiar).

Porque no funcionan:
He aquí por qué
1) ls-la / dev/ttyS0 -o ls-la /dev/ttyUSB0 o bien con el terminal situado en /dev
2) ls -la | grep tty
3) Este informará de los permisos en el puerto. Normalmente, este dirá crw-rw - 1 root dialup. La "c" en la cadena indica que se trata de un "dispositivo de caracteres", el primer "rw" indica que el propietario ha de lectura / escritura permiso. El segundo "rw" significa que el grupo tiene de lectura / escritura. El símbolo "-" indica que el resto del mundo no tiene permisos. Después de que el "-", "root" indica que el propietario del dispositivo es la raíz, y que el id del grupo es "dialup". Por lo tanto, se necesita ser root, o un miembro del grupo dialup con acceso de lectura / escritura en el puerto.
2) Para agregar tu usuario por siempre al grupo dialup (para obtener acceso lectura/escritura), lo que se necesita es editar el archivos etc /group, y añadir su nombre de usuario a la línea que comienza con "dialup:" Los nombres de usuario están separados por comas , por lo que deberas añadir una coma, si tiene mas de un usuario, entonces añade tu nombre de usuario al final de la línea. Necesitará permisos de root para editar este archivo.
3) Cierra la sesión, y vuelve a entrar porque las asociaciones de grupo se realizan en el momento de inicio de sesión, y no son consultados en cada solicitud.
Cómo solucionarlo:
Terminal:
sudo gedit /etc/group
Ingresa tu contraseña
Busca lo siguiente:
dialout: x: 20:
Pon aqui el nombre de usuario , el mío es el inicio de mis iniciales , que se veria así:
dialout: x: 20: pacagar (pacagar es el nombre de usuario (lo de parentesis no lo pongas))
También haz lo mismo con:
tty: x: 5:
por lo que se veria así
tty: x: 5: pacagar
a continuación, guardar, cerrar sesión y volver o reiniciar con estos arreglos debe de funcionar.
P.D. No necesitas ejecutar el programa en modos sudo puesto que los puertos ya tienen permisos de usuario
Saludos
Paco Cayuela EA7EJG

+1
0
-1

No por mucho trabajar se gana más dinero