La Taberna del Puerto Osmosis
"Se navega por los astros, por la mar, por la tierra, por las gentes, por los sentimientos...Se navega." Altair
VHF: Canal 77
Regresar   La Taberna del Puerto > Foro > Foros de ayuda/Sugerencias/Críticas > Informática e Internet

Avisos

Responder
 
Herramientas Estilo
  #1  
Antiguo 05-02-2016, 15:51
Avatar de Erikblade
Erikblade Erikblade esta desconectado
Corsario
 
Registrado: 13-10-2014
Edad: 42
Mensajes: 1,081
Agradecimientos que ha otorgado: 160
Recibió 394 Agradecimientos en 277 Mensajes
Sexo:
Predeterminado asignacion puertos usb linux

muy buenas cofrades:

por fin pude poner en marcha mi pc con navigatrix recibiendo y mandando datos nmea. el tema es que pasa una cosa curiosa no si si a vosotros tambien, cada vez que arranco el pc la asignacion de puerto usb se me cambia, me explico.

conecto los dos conversores al pc, miro con dmesg | grep tty a ver como han quedado asignados
/dev/ttyUSB0 es el del gps
/dev/ttyUSB1 es el del piloto y resto de electronica

bien configuro gpsd para forzarle a que se conecte a /dev/ttyUSB0
y añado el puerto /dev/ttyUSB1 como puerto de entrada-salida en OpenCPN.

todo funciona a la perfeccion, disfruto de la navegacion y todos contentos.
apago el pc y al volver otro dia me encuentro con que si bien recibo datos al piloto no le llega nada de nada.
despues de dar vueltas de nuevo dmseg | grep tty y me encuentro con que se me han cambiado los puertos
/dev/ttyUSB0 es el del piloto y resto de electronica
/dev/ttyUSB1 es el del gps

extrañado, cambio los cables usb y verifico tras un par de reinicios que todo sigue bien.
pero vuelvo otro dia y lo mismo me los ha vuelto a cambiar. la verdad es un coñazo tener que abrir el panel para descoenctar los usb y conectarlos de nuevo en el orden que tengo configurado, y tambien es un coñazo teenr que configurar cada dia el opencpn.
¿hay alguna forma de forzar a dejar esos puertos fijos?
Citar y responder
  #2  
Antiguo 05-02-2016, 18:33
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: asignacion puertos usb linux

Echa un vistazo a este hilo:

http://foro.latabernadelpuerto.com/s...ev#post1795485

Especialmente repasa el mensaje 1032 que un servidor escribió para aclarar ese desconcierto. En aquel caso con un dispositivo distinto.

... udev es tu amigo, es algo complicado pero espero que te sirva.

Otra solución menos elegante pero que podria funcionar es pasar de GPSD y configurar ambos puertos tanto ttyUSB0 como ttyUSB1 como entrada y salida a la vez en opencpn. No alteraría el funcionamiento y daría igual que dispositivo se asigna a que puerto... siempre y cuando ambos trabajen a la misma velocidad de baudios, en este caso 4800... supongo.

Ahora bien, si tuvieras que lidiar con un dispositivo a distinta velocidad (como un receptor AIS que suelen trabajar a 38400), entonces necesitas recurrir a udev si o sí.

Editado por ... en 05-02-2016 a las 18:38.
Citar y responder
Los siguientes cofrades agradecieron este mensaje a
Erikblade (05-02-2016)
  #3  
Antiguo 05-02-2016, 19:08
Avatar de --
--
Invitado
 
Mensajes: n/a
Predeterminado Re: asignacion puertos usb linux

Solo agregar que una vez domines el montaje y desmontaje de los usb puedes meter los comandos al final de /etc/fstab y asi se configuraran al inicio siempre de la misma manera...

Saludos, Lisandro.
Citar y responder
  #4  
Antiguo 05-02-2016, 19:13
Avatar de jiauka
jiauka jiauka esta desconectado
Hermano de la costa
 
Registrado: 01-10-2010
Mensajes: 10,375
Agradecimientos que ha otorgado: 3,159
Recibió 5,637 Agradecimientos en 3,107 Mensajes
Sexo:
Predeterminado Re: asignacion puertos usb linux

Otra opcion menos "ortodoxa" es dejar 1 siempre conectado, que será el ttyUSB0, y conectar el otro a posteriori, que será el ttyUSB1.

Aunque lo ideal es configurar el udev.
Citar y responder
  #5  
Antiguo 05-02-2016, 19:16
Avatar de Erikblade
Erikblade Erikblade esta desconectado
Corsario
 
Registrado: 13-10-2014
Edad: 42
Mensajes: 1,081
Agradecimientos que ha otorgado: 160
Recibió 394 Agradecimientos en 277 Mensajes
Sexo:
Predeterminado Re: asignacion puertos usb linux

gracias pinguino
a ver si me he aclarado bien

supongamos que tengo dos aparatos

el gps idVendor=0403 idproduct=fd49
conversor idVendor=0404 idproduct=fd43

entonces los registro escribiendo

cat>>/etc/modules
ftdi_sio vendor=0x0403 product=0xfd49
ftdi_sio vendor=0x0404 product=0xfd43

luego despues de salir con control +D
cat << EOF>/etc/udev/rules.d/electro.rules
ATTRS{idProduct}=="fd49", ATTRS{idVendor}=="0403", SYMLINK+="gps", RUN+="/lib/udev/gps" ATTRS{idProduct}=="fd43", ATTRS{idVendor}=="0404", SYMLINK+="conversor", RUN+="/lib/udev/conversor"
EOF

aqui creo que ya me he liado creo que ese paso anterior no esta correcto ¿no?
Citar y responder
  #6  
Antiguo 05-02-2016, 20:27
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: asignacion puertos usb linux

Olvídate de lo que has puesto, eso va aparte para solucionar la falta de controlador del shipmodul... no es tu caso.

Vamos a ver... es algo un poco enredoso pues udev puede hacer muchas cosas. Pero en tu caso solo quieres que haga una que es asignar un puerto fijo para cada dispositivo.

Lo primero, necesitas identificar cada dispositivo USB. Haz un:

lsusb

... en el terminal cuando tengas los dispositivos enchufados.

En mi caso ahora da cosas como esto al identificar al ratón inalambrico.

Cita:
Bus 005 Device 002: ID 046d:c52f Logitech, Inc. Unifying Receiver
Aquí la parte que nos interesa es donde pone ID 046d:c52f donde 056d es el idVendor y c52f es el idProduct.

Haciendo lsusb tu obtendrás el idVendor e idProduct de tus dos dispositivos USB.

Despues, teniendo esos datos tienes que crear un archivo nuevo con:

sudo gedit /etc/udev/rules.d/reglasUSB.rules


En el debes poner un par de lineas similares a esta (voy a usar los datos de mi raton inalambrico a modo de ejemplo), una para cada dispositivo

Cita:
SUBSYSTEM=="tty", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52f", SYMLINK="raton-inalambrico"
... Y guardar los cambios. Tras reiniciar, cada vez que el sistema detecte el dispositivo con el idVendor e idProduct que le hemos dicho, creará un puerto virtual con el nombre que le hemos asignado, en el caso de mi dispositivo raton-inalambrico. Si voy a /dev/ veré que ademas del típico ttyUSB0 tambien habrá otro puerto virtual /dev/ttyraton-inalambrico y este será el raton sin importar si el sistema le asigna el ttyUSB0, el ttyUSB1 o el ttyUSBpericodelospalotes.

En tu caso necesitas dos lineas una para cada dispositivo. Pones los id en cada una y a la del gps le asignas por ejemplo SYMLINK="GPS" y al piloto SYMLINK="piloto". Ahora ya tienes dos puertos distintos que siempre apuntarán al dispositivo correcto.
Citar y responder
Los siguientes cofrades agradecieron este mensaje a
Erikblade (05-02-2016)
  #7  
Antiguo 05-02-2016, 20:32
Avatar de Erikblade
Erikblade Erikblade esta desconectado
Corsario
 
Registrado: 13-10-2014
Edad: 42
Mensajes: 1,081
Agradecimientos que ha otorgado: 160
Recibió 394 Agradecimientos en 277 Mensajes
Sexo:
Predeterminado Re: asignacion puertos usb linux

ahhhh
vale perfecto ahora me ha quedado claro

asi que no hace falta ni el script ese que se menciona ni nada

muchisimas gracais:brindi s:

Editado por Erikblade en 05-02-2016 a las 20:41.
Citar y responder
  #8  
Antiguo 05-02-2016, 21:15
Avatar de --
--
Invitado
 
Mensajes: n/a
Predeterminado Re: asignacion puertos usb linux

El script lo estas creando en reglasUSB.rules

Saludos, Lisandro.
Citar y responder
  #9  
Antiguo 05-02-2016, 21:26
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: asignacion puertos usb linux

Cita:
Originalmente publicado por SuperLii Ver mensaje
El script lo estas creando en reglasUSB.rules

Saludos, Lisandro.
Creo que Erikblade se refería a otro programa que había que crear en el hilo del que citábamos para que, ademas de crear el enlace virtual, instalara el controlador adecuado (shipmodul) ya que el sistema no lo identificaba y por tanto no lo cargaba.

En el caso de Erikblade no necesita en efecto mas que crear el archivo de reglas para solucionar su problema. Puesto que sus dispositivos USB si inician sus controladores correspondientes.
Citar y responder
  #10  
Antiguo 13-02-2016, 21:13
Avatar de Erikblade
Erikblade Erikblade esta desconectado
Corsario
 
Registrado: 13-10-2014
Edad: 42
Mensajes: 1,081
Agradecimientos que ha otorgado: 160
Recibió 394 Agradecimientos en 277 Mensajes
Sexo:
Predeterminado Re: asignacion puertos usb linux

Muy buenas a td@s:

Unos buenos carajillos que con este frio que empieza a hacer nos entonará el espíritu.
Bueno al turrón.
He tratado de configurar los puertos usando udev tal y como me dijo pingüino pero esta claro que algo he hecho mal porque no funciona.
Os explico paso a paso lo que he hecho y a ver si me falta algo.

Primeramente he escrito lsusb
Con lo que he obtenido los siguientes datos
GPS ID057:2008
Resto de instrumentos  ID1a86:7523

Luego he escrito
Sudo gedit /etc/udev/rules.d/reglasUSB.rules
Y en el archivo he escrito

SUBSYSTEM==”tty”, ATTRS{idVendor}==”0057”, ATTRS{idProduct}==”2008”, SYMLINK=”GPS”

SUBSYSTEM==”tty”, ATTRS{idVendor}==”1a86”, ATTRS{idProduct}==”7523”, SYMLINK=”PILOTO”

He guardado y he reiniciado el PC

Esto se supone que creaba dos puertos
/dev/ttyGPS
/dev/ttyPILOTO

El tema es que al hacer dmesg | grep tty no aparecen y al intentar configurarlos en OpenCPN tampoco salen solo salen
/dev/ttyUSB0
/dev/ttyUSB1
Por eso creo que algo estoy haciendo mal o algo me falta.
Gracias y un saludo
Citar y responder
  #11  
Antiguo 14-02-2016, 00:18
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: asignacion puertos usb linux

Cita:
Originalmente publicado por Erikblade Ver mensaje
Muy buenas a td@s:

Unos buenos carajillos que con este frio que empieza a hacer nos entonará el espíritu.
Bueno al turrón.
He tratado de configurar los puertos usando udev tal y como me dijo pingüino pero esta claro que algo he hecho mal porque no funciona.
Os explico paso a paso lo que he hecho y a ver si me falta algo.

Primeramente he escrito lsusb
Con lo que he obtenido los siguientes datos
GPS ID057:2008
Resto de instrumentos  ID1a86:7523

Luego he escrito
Sudo gedit /etc/udev/rules.d/reglasUSB.rules
Y en el archivo he escrito

SUBSYSTEM==”tty”, ATTRS{idVendor}==”0057”, ATTRS{idProduct}==”2008”, SYMLINK=”GPS”

SUBSYSTEM==”tty”, ATTRS{idVendor}==”1a86”, ATTRS{idProduct}==”7523”, SYMLINK=”PILOTO”

He guardado y he reiniciado el PC

Esto se supone que creaba dos puertos
/dev/ttyGPS
/dev/ttyPILOTO

El tema es que al hacer dmesg | grep tty no aparecen y al intentar configurarlos en OpenCPN tampoco salen solo salen
/dev/ttyUSB0
/dev/ttyUSB1
Por eso creo que algo estoy haciendo mal o algo me falta.
Gracias y un saludo
No hagas un dmesg ya que son enlaces y no puertos físicos.

Haz:

ls /dev/tty*

Para ver si te aparecen. Los verás de otro color.
Si han aparecido entonces ya los puedes poner a mano en opencpn aunque no aparezcan en la lista de desplegables.
Citar y responder
  #12  
Antiguo 14-02-2016, 03:16
Avatar de Erikblade
Erikblade Erikblade esta desconectado
Corsario
 
Registrado: 13-10-2014
Edad: 42
Mensajes: 1,081
Agradecimientos que ha otorgado: 160
Recibió 394 Agradecimientos en 277 Mensajes
Sexo:
Predeterminado Re: asignacion puertos usb linux

gracias pingüino

y no hay que escribir algo asi como

sudo udevadm control --reload-rules

en el enlace que me pusiste venia que era para recargar los archivos de las reglas
Citar y responder
  #13  
Antiguo 14-02-2016, 07:15
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: asignacion puertos usb linux

Cita:
Originalmente publicado por Erikblade Ver mensaje
gracias pingüino

y no hay que escribir algo asi como

sudo udevadm control --reload-rules

en el enlace que me pusiste venia que era para recargar los archivos de las reglas

Si reinicias es innecesario. Sólo es para ahorrarse el reinicio. Pero prefiero reiniciar para comprobar que funcionará en cada arranque.

Editado por ... en 14-02-2016 a las 07:57.
Citar y responder
Responder Ver todos los foros en uno

Osmosis


Reglas del foro
No puedes crear discusiones
No puedes responder a mensajes
No puedes editar tus adjuntos
No puedes editar tus mensajes

BB code está activado
Emoticonos está activado
El código [IMG] está activado
El código HTML está desactivado
Ir a


Todas las horas son GMT +1. La hora es 11:11.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© La Taberna del Puerto