Discusión: Electrónica Proyecto OpenPlotter
Ver mensaje
  #2  
Antiguo 31-05-2015, 20:40
Avatar de North Side
North Side North Side esta desconectado
Hermano de la costa
 
Registrado: 11-08-2013
Edad: 50
Mensajes: 2,118
Agradecimientos que ha otorgado: 887
Recibió 1,092 Agradecimientos en 551 Mensajes
Sexo:
Predeterminado Re: Respuesta: Proyecto OpenPlotter

Cita:
Originalmente publicado por pinguino Ver mensaje
Estupendo, hay aquí un compendio de conceptos bastante avanzados de GNU/Linux fácilmente explicados y comprensibles.

Solo añadiria un inciso, en la parte donde dices:
Código:
cat << EOF>/etc/udev/rules.d/shipmodul.rules
ATTRS{idProduct}=="fd4a", ATTRS{idVendor}=="0403", RUN+="/lib/udev/shipmodul"
EOF
Yo le añadiria la opción para crear un enlace simbolico con el nombre del dispositivo, en este caso shipmodul. Quedaria mas o menos así:

Código:
cat << EOF>/etc/udev/rules.d/shipmodul.rules
ATTRS{idProduct}=="fd4a", ATTRS{idVendor}=="0403", SYMLINK+="shipmodul", RUN+="/lib/udev/shipmodul"
EOF
¿Por que es buena idea? Por que ya que nos ponemos a definir la regla del dispositivo con udev aprovechamos para asegurarnos de poder encontrarlo siempre sin importar que puerto le asigna el sistema.

Vamos a explicarlo...:

Supongamos que tenemos dos dispositivos USB, un GPS a 4800 y un shipmodul a 57600.

El sistema le asignará a cada uno un puerto ttyUSB0 a uno y ttyUSB1 al otro.

El problema es que el sistema asignara estos dispositivos aleatoriamente, en unos casos USB0 será el GPS y en otros USB1 será el GPS. Y esto pasará sin orden ni concierto.

Si definimos en kplex ttyUSB0 como GPS a 4800 y ttyUSB1 como shipmodul a 57600 todo funcionará bien mientras esto no cambie. Pero cuando cambie (que cambiará) dará error (pues cada uno va a una velocidad diferente) y otra vez de vuelta al lio.

Sin embargo, si definimos en udev un dispositivo (como en este caso el shipmodul) con un enlace simbólico, este no solo se llamará ttyUSB0 (o lo que le toque) si no que al mismo tiempo se llamará shipmodul. y seguirá llamandose shipmodul sin importar si esta vez el sistema le a adjudicado el ttyUSB0 o bien el ttyUSB1o el ttyPericoDeLosPalotes. Así que este problema de asignación aleatoria de puertos lo habremos solucionado.

Bastará con configurar en kplex el puerto del dispositivo como /dev/shipmodul o /dev/GPS o /dev/AIS y funcionará siempre sin dar error.

Naturalmente hay que definir del mismo modo cada dispositivo diferente para que todos concuerden con su configuración.

Perdonad por el tocho, pero creo que merecia la pena aprovechar el tuto de North Side para aclarar este asunto que creo que puede producir quebraderos de cabeza a mas de uno si cuenta con muchos dispositivos USB.
Me parece estupendo. He editado el manual para incluirlo.
Los siguientes cofrades agradecieron este mensaje a North Side