Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/11/2011, à 21:06

jmg17

[Resolu] Ports USB et mise en veille

Bonjour,
J’utilise ubuntu 11.10 sur un eeepc pour faire tourner OpenCPN (soft de navigation).
Un GPS, un AIS et une souris sont connectés par USB (+ hub)
Tout fonctionne parfaitement, sauf qu'au retour de veille, ou après extinction, l'assignation des ports USB change, et il faut re-paramétrer OpenCPN pour attribuer le bon port à chaque périphérique.
J'ai été voir là:
http://doc.ubuntu-fr.org/udev
mais je n'ai pas compris comment il fallait faire.
Existe t-il une solution abordable pour un presque débutant?
JM.

Dernière modification par jmg17 (Le 07/12/2011, à 21:20)


Dell XPS 13 Ubuntu 20.04 LTS. Lenovo Legion Ubuntu 20.04 LTS

Hors ligne

#2 Le 02/12/2011, à 06:57

jpiebrig

Re : [Resolu] Ports USB et mise en veille

Bonjour,

Je ne sais pas si tu as trouvé la solution depuis que tu as posté, mais d'abord il faut que l'on sache si ton AIS est indépendant du GPS. C'est à dire que tu envoies ton signal GPS à Opencpn d'une part, et d'autre part tu envoies les infos AIS à Opencpn. Si c'est cela tu devrais avoir deux interfaces USB/Série.
Il faut, lorsqu'elles sont connectées, repérer les ttyUSB correspondants. Tu les trouves dans l'onglet du paramétrages du GPS et celui de l'AIS du menu "Outils" d'Opencpn, puisque tu sais les paramétrer. Ensuite tu ouvres une console et tu tapes si tu as par exemple le GPS en ttyUSB0  :

udevadm info -a -p `udevadm info -q path -n "/dev/ttyUSB0"`

Puis tu fais la même chose avec l'AIS, si par exemple tu as pour celui-ci ttyUSB1 :

udevadm info -a -p `udevadm info -q path -n "/dev/ttyUSB1"`

et tu postes le résultat de chacune des commandes.

En espérant que tes interfaces USB/Série ne soient pas identiques car c'est là où je coince ! Si elles ne sont pas identiques, nous pourrons créer une règle udev pour chacune d'entre elles en lui assignant un lien symbolique par exemple ttygps et ttyais. Ensuite dans le fichier caché  .opencpn/opencpn.conf de ton répertoire personnel, tu remplaceras respectivement dans la section :

[Settings/NMEADataSource]
Source=Serial:ttyUSB0
BaudRate=4800

par :

[Settings/NMEADataSource]
Source=Serial:ttygps
BaudRate=4800

puis dans la section :

[Settings/AISPort]
Port=Serial:/dev/ttyUSB1

par :

[Settings/AISPort]
Port=Serial:/dev/ttyais

Si tu n'as toujours pas la solution, poste le résultat des commandes demandées et croise les doigts pour que tes interfaces ne soient pas similaires. C'est mon cas et je vais moi-même créer une discussion pour recevoir de l'aide...

Hors ligne

#3 Le 02/12/2011, à 15:09

jmg17

Re : [Resolu] Ports USB et mise en veille

Merci pour la réponse.
Je n'ai pas trouvé la solution.
Voici la réponse, obtenue sur le forum de OpenCPN, qui explore la même piste que toi.
http://www.cruisersforum.com/forums/f13 … 71941.html
Je récupère le résultat des udevadm info et je les poste.
Merci.


Dell XPS 13 Ubuntu 20.04 LTS. Lenovo Legion Ubuntu 20.04 LTS

Hors ligne

#4 Le 06/12/2011, à 20:54

jmg17

Re : [Resolu] Ports USB et mise en veille

Bonjour,
Voici le résultat des commandes udevdam infos pour le GPS et l'AIS

~$ udevadm info -a -p `udevadm info -q path -n "/dev/ttyUSB0"` 

Udevadm info starts with the device specified by the devpath and then 
walks up the chain of parent devices. It prints for every device 
found, all possible attributes in the udev rules key format. 
A rule to match, can be composed by the attributes of the device 
and the attributes from one single parent device. 

  looking at device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/ttyUSB0/tty/ttyUSB0': 
    KERNEL=="ttyUSB0" 
    SUBSYSTEM=="tty" 
    DRIVER=="" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/ttyUSB0': 
    KERNELS=="ttyUSB0" 
    SUBSYSTEMS=="usb-serial" 
    DRIVERS=="pl2303" 
    ATTRS{port_number}=="0" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0': 
    KERNELS=="2-1:1.0" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="pl2303" 
    ATTRS{bInterfaceNumber}=="00" 
    ATTRS{bAlternateSetting}==" 0" 
    ATTRS{bNumEndpoints}=="03" 
    ATTRS{bInterfaceClass}=="ff" 
    ATTRS{bInterfaceSubClass}=="00" 
    ATTRS{bInterfaceProtocol}=="00" 
    ATTRS{supports_autosuspend}=="1" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1': 
    KERNELS=="2-1" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{configuration}=="" 
    ATTRS{bNumInterfaces}==" 1" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bmAttributes}=="a0" 
    ATTRS{bMaxPower}=="100mA" 
    ATTRS{urbnum}=="34428" 
    ATTRS{idVendor}=="067b" 
    ATTRS{idProduct}=="2303" 
    ATTRS{bcdDevice}=="0400" 
    ATTRS{bDeviceClass}=="00" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bDeviceProtocol}=="00" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{bMaxPacketSize0}=="64" 
    ATTRS{speed}=="12" 
    ATTRS{busnum}=="2" 
    ATTRS{devnum}=="2" 
    ATTRS{devpath}=="1" 
    ATTRS{version}==" 1.10" 
    ATTRS{maxchild}=="0" 
    ATTRS{quirks}=="0x0" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{authorized}=="1" 
    ATTRS{manufacturer}=="Prolific Technology Inc. " 
    ATTRS{product}=="USB-Serial Controller D" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2': 
    KERNELS=="usb2" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{configuration}=="" 
    ATTRS{bNumInterfaces}==" 1" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bmAttributes}=="e0" 
    ATTRS{bMaxPower}=="  0mA" 
    ATTRS{urbnum}=="33" 
    ATTRS{idVendor}=="1d6b" 
    ATTRS{idProduct}=="0001" 
    ATTRS{bcdDevice}=="0300" 
    ATTRS{bDeviceClass}=="09" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bDeviceProtocol}=="00" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{bMaxPacketSize0}=="64" 
    ATTRS{speed}=="12" 
    ATTRS{busnum}=="2" 
    ATTRS{devnum}=="1" 
    ATTRS{devpath}=="0" 
    ATTRS{version}==" 1.10" 
    ATTRS{maxchild}=="2" 
    ATTRS{quirks}=="0x0" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{authorized}=="1" 
    ATTRS{manufacturer}=="Linux 3.0.0-12-generic uhci_hcd" 
    ATTRS{product}=="UHCI Host Controller" 
    ATTRS{serial}=="0000:00:1d.0" 
    ATTRS{authorized_default}=="1" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.0': 
    KERNELS=="0000:00:1d.0" 
    SUBSYSTEMS=="pci" 
    DRIVERS=="uhci_hcd" 
    ATTRS{vendor}=="0x8086" 
    ATTRS{device}=="0x27c8" 
    ATTRS{subsystem_vendor}=="0x144d" 
    ATTRS{subsystem_device}=="0xc0a8" 
    ATTRS{class}=="0x0c0300" 
    ATTRS{irq}=="23" 
    ATTRS{local_cpus}=="ff" 
    ATTRS{local_cpulist}=="0-7" 
    ATTRS{dma_mask_bits}=="32" 
    ATTRS{consistent_dma_mask_bits}=="32" 
    ATTRS{broken_parity_status}=="0" 
    ATTRS{msi_bus}=="" 

  looking at parent device '/devices/pci0000:00': 
    KERNELS=="pci0000:00" 
    SUBSYSTEMS=="" 
    DRIVERS=="" 
$ udevadm info -a -p `udevadm info -q path -n "/dev/ttyUSB1"` 

Udevadm info starts with the device specified by the devpath and then 
walks up the chain of parent devices. It prints for every device 
found, all possible attributes in the udev rules key format. 
A rule to match, can be composed by the attributes of the device 
and the attributes from one single parent device. 

  looking at device '/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/ttyUSB1/tty/ttyUSB1': 
    KERNEL=="ttyUSB1" 
    SUBSYSTEM=="tty" 
    DRIVER=="" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/ttyUSB1': 
    KERNELS=="ttyUSB1" 
    SUBSYSTEMS=="usb-serial" 
    DRIVERS=="ftdi_sio" 
    ATTRS{latency_timer}=="1" 
    ATTRS{port_number}=="0" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0': 
    KERNELS=="3-1:1.0" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="ftdi_sio" 
    ATTRS{bInterfaceNumber}=="00" 
    ATTRS{bAlternateSetting}==" 0" 
    ATTRS{bNumEndpoints}=="02" 
    ATTRS{bInterfaceClass}=="ff" 
    ATTRS{bInterfaceSubClass}=="ff" 
    ATTRS{bInterfaceProtocol}=="ff" 
    ATTRS{supports_autosuspend}=="1" 
    ATTRS{interface}=="AIS-Multi" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3/3-1': 
    KERNELS=="3-1" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{configuration}=="" 
    ATTRS{bNumInterfaces}==" 1" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bmAttributes}=="c0" 
    ATTRS{bMaxPower}==" 20mA" 
    ATTRS{urbnum}=="162218" 
    ATTRS{idVendor}=="0403" 
    ATTRS{idProduct}=="6001" 
    ATTRS{bcdDevice}=="0600" 
    ATTRS{bDeviceClass}=="00" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bDeviceProtocol}=="00" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{bMaxPacketSize0}=="8" 
    ATTRS{speed}=="12" 
    ATTRS{busnum}=="3" 
    ATTRS{devnum}=="2" 
    ATTRS{devpath}=="1" 
    ATTRS{version}==" 2.00" 
    ATTRS{maxchild}=="0" 
    ATTRS{quirks}=="0x0" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{authorized}=="1" 
    ATTRS{manufacturer}=="COMAR" 
    ATTRS{product}=="AIS-Multi" 
    ATTRS{serial}=="FTQ9RAIS" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3': 
    KERNELS=="usb3" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{configuration}=="" 
    ATTRS{bNumInterfaces}==" 1" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bmAttributes}=="e0" 
    ATTRS{bMaxPower}=="  0mA" 
    ATTRS{urbnum}=="50" 
    ATTRS{idVendor}=="1d6b" 
    ATTRS{idProduct}=="0001" 
    ATTRS{bcdDevice}=="0300" 
    ATTRS{bDeviceClass}=="09" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bDeviceProtocol}=="00" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{bMaxPacketSize0}=="64" 
    ATTRS{speed}=="12" 
    ATTRS{busnum}=="3" 
    ATTRS{devnum}=="1" 
    ATTRS{devpath}=="0" 
    ATTRS{version}==" 1.10" 
    ATTRS{maxchild}=="2" 
    ATTRS{quirks}=="0x0" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{authorized}=="1" 
    ATTRS{manufacturer}=="Linux 3.0.0-12-generic uhci_hcd" 
    ATTRS{product}=="UHCI Host Controller" 
    ATTRS{serial}=="0000:00:1d.1" 
    ATTRS{authorized_default}=="1" 

  looking at parent device '/devices/pci0000:00/0000:00:1d.1': 
    KERNELS=="0000:00:1d.1" 
    SUBSYSTEMS=="pci" 
    DRIVERS=="uhci_hcd" 
    ATTRS{vendor}=="0x8086" 
    ATTRS{device}=="0x27c9" 
    ATTRS{subsystem_vendor}=="0x144d" 
    ATTRS{subsystem_device}=="0xc0a8" 
    ATTRS{class}=="0x0c0300" 
    ATTRS{irq}=="19" 
    ATTRS{local_cpus}=="ff" 
    ATTRS{local_cpulist}=="0-7" 
    ATTRS{dma_mask_bits}=="32" 
    ATTRS{consistent_dma_mask_bits}=="32" 
    ATTRS{broken_parity_status}=="0" 
    ATTRS{msi_bus}=="" 

  looking at parent device '/devices/pci0000:00': 
    KERNELS=="pci0000:00" 
    SUBSYSTEMS=="" 
    DRIVERS=="" 

Comment créer une régle udev pour assigner chaque peripherique a 1 seul port USB?

JM.


Dell XPS 13 Ubuntu 20.04 LTS. Lenovo Legion Ubuntu 20.04 LTS

Hors ligne

#5 Le 07/12/2011, à 03:09

jpiebrig

Re : [Resolu] Ports USB et mise en veille

Bonjour,

D'abord, tu as de la chance car tu as deux convertisseurs différents, ce qui simplifie beaucoup les choses. Voilà ce que tu peux mettre dans ta règle afin d'avoir toujours le bon paramétrage d'Opencpn, quelque soit le port USB où tu connectes tes interfaces :

#Créer des liens uniques pour le GPS et l'AIS
#
ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", ATTRS{bcdDevice}=="0400", SYMLINK+="gps"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTQ9RAIS", SYMLINK+="ais"
#

Il était possible de moins renseigner la règle, mais bon !
Je n'ai pas Ubuntu 11.10, mais je suppose que c'est identique au 11.04, donc tu copies ces cinq lignes, tu ouvres un terminal dans lequel tu tapes :

sudo gedit /etc/udev/rules.d/z99-opencpn.rules

Tu donnes ton mot de passe et "gedit" s'ouvre. Tu colles dedans le texte au dessus que tu as copié, tu enregistres et tu fermes "gedit".
Puis soit tu redémarres, soit tu tapes la commande pour la mise à jour les règle udev (je ne m'en rappelle plus..., donc redémarre si tu ne la connais pas)

Au redémarrage, tu ouvres Opencpn, puis la boite à outils, tu cliques sur l'onglet GPS et dans la zone de saisie de la boite "NMEA data source" tu tapes en lieu et place de ce qui t'es présenté : /dev/gps
Tu fais la même chose pour l'onglet AIS et dans la zone "AIS data port" tu tapes : /dev/ais
Cela devrait fonctionner alors.
Par la suite, normalement tu peux redémarrer, connecter tes interfaces n'importe où, elles seront toujours reconnues.

Petit bémol, j'espère que tu n'as pas d'autres interfaces USB/Série Prolific de connectées car elles ne possèdent pas de numéro de série et il ne m'est pas possible de les distinguer entre elles. Donc si tu en as plusieurs, il faut que la seule qui soit connectée, soit celle du GPS, plus bien sûr la FDTI de ton AIS.
Si tu n'as qu'une seule Prolific, tant mieux. Et si tu dois un jour en acheter une autre interface, je pense que tu as compris que cela ne devait pas être une Prolific, sous peine de problèmes...

Dernière modification par jpiebrig (Le 07/12/2011, à 03:12)

Hors ligne

#6 Le 07/12/2011, à 20:06

jmg17

Re : [Resolu] Ports USB et mise en veille

Bonjour,
Non je n'ai pas d'autre interface Prolofic , et après essai sur le bateau, nombreuses mises en veille, redémarrages, etc.... ça fonctionne parfaitement!
J'avais réussi à écrire des règles qui fonctionnaient peut-être, mais n'avais pas compris qu'il fallait modifier la toolbox de cette façon. Donc échec.
Ça ne résout pas ton problème. Essaye sur le forum opencpn
Merci beaucoup pour ton aide efficace.
JM.


Dell XPS 13 Ubuntu 20.04 LTS. Lenovo Legion Ubuntu 20.04 LTS

Hors ligne

#7 Le 07/12/2011, à 21:00

jpiebrig

Re : [Resolu] Ports USB et mise en veille

Tant mieux si cela fonctionne. Mets le sujet en résolu alors.
JP

Hors ligne