Problème driver

Bonjour,

J’essaye d’utiliser un actisense NGW-1 USB sous linux ( c’est une passerelle NMEA 2000/USB)

L’appareil fonctionne sous Windows 7 (réception des trames avec putty)

noyau employé:
Linux dronefluvial 3.2.0-4amd64#1 SMP Debian 3.2.51-1 x86_64 GNU/Linux

Mon problème est que je vois le périphérique mais il n’a pas le bon driver

J’ai installer FTDI ce week end cela n’a rien changé

Le périphérique nécessite FTDI à priori

Quand je fais un USB-Device à la ligne I à Driver je vois Driver=(none)

Je souhaiterai savoir comment “diriger” mon périphérique pour qu’il utilise le bon driver.

Ou comment faire pour utiliser mon driver

Merci d’avances pour vos réponses

Cordialement

Edouard

C’est du matos de bateau ça ? voilier ?

Pour tous les soucis de pilotes avec Debian, le mieux est de suivre la méthode documentée sur le wiki :
isalo.org/wiki.debian-fr/Ide … el-pilotes

Principe :
Avec la commande « lspci -n » tu obtiens l’identifiant de tout ton matos détecté. Tu copies coller sur le site indiqué dispose d’une liste de matos reconnu qui indique les paquets à installer, ou les noms de modules de noyau. Avec un peu de chance ton joujou est dedans (tu as une version « human readable » en exécutant juste « lspci »).

N’hésite pas à copier la sortie de « lspci -n » sur ce fil. Ainsi on pourra voir de quoi il retourne.

Merci

voila ce que cela me donne

et via le site je ne vois pas mon périphérique
Que puis je faire

00:00.0 0600: 8086:7190 (rev 01)
00:01.0 0604: 8086:7191 (rev 01)
00:07.0 0601: 8086:7110 (rev 08)
00:07.1 0101: 8086:7111 (rev 01)
00:07.3 0680: 8086:7113 (rev 08)
00:07.7 0880: 15ad:0740 (rev 10)
00:0f.0 0300: 15ad:0405
00:10.0 0100: 1000:0030 (rev 01)
00:11.0 0604: 15ad:0790 (rev 02)
00:15.0 0604: 15ad:07a0 (rev 01)
00:15.1 0604: 15ad:07a0 (rev 01)
00:15.2 0604: 15ad:07a0 (rev 01)
00:15.3 0604: 15ad:07a0 (rev 01)
00:15.4 0604: 15ad:07a0 (rev 01)
00:15.5 0604: 15ad:07a0 (rev 01)
00:15.6 0604: 15ad:07a0 (rev 01)
00:15.7 0604: 15ad:07a0 (rev 01)
00:16.0 0604: 15ad:07a0 (rev 01)
00:16.1 0604: 15ad:07a0 (rev 01)
00:16.2 0604: 15ad:07a0 (rev 01)
00:16.3 0604: 15ad:07a0 (rev 01)
00:16.4 0604: 15ad:07a0 (rev 01)
00:16.5 0604: 15ad:07a0 (rev 01)
00:16.6 0604: 15ad:07a0 (rev 01)
00:16.7 0604: 15ad:07a0 (rev 01)
00:17.0 0604: 15ad:07a0 (rev 01)
00:17.1 0604: 15ad:07a0 (rev 01)
00:17.2 0604: 15ad:07a0 (rev 01)
00:17.3 0604: 15ad:07a0 (rev 01)
00:17.4 0604: 15ad:07a0 (rev 01)
00:17.5 0604: 15ad:07a0 (rev 01)
00:17.6 0604: 15ad:07a0 (rev 01)
00:17.7 0604: 15ad:07a0 (rev 01)
00:18.0 0604: 15ad:07a0 (rev 01)
00:18.1 0604: 15ad:07a0 (rev 01)
00:18.2 0604: 15ad:07a0 (rev 01)
00:18.3 0604: 15ad:07a0 (rev 01)
00:18.4 0604: 15ad:07a0 (rev 01)
00:18.5 0604: 15ad:07a0 (rev 01)
00:18.6 0604: 15ad:07a0 (rev 01)
00:18.7 0604: 15ad:07a0 (rev 01)
02:00.0 0c03: 15ad:0774
02:01.0 0200: 8086:100f (rev 01)
02:02.0 0401: 1274:1371 (rev 02)
02:03.0 0c03: 15ad:0770

Je me disais que vu la formulation, le tuto du wiki devrait marcher. Pourrais-tu expliquer en quoi « tu vois » le périphérique (au besoin précise l’environnement de bureau que tu utilises, ou uploade une capture d’écran ici : pix.isalo.org/) ?

C’est quoi « FTDI » ?
Comment installe-t-on « FTDI » ?
Quel paquet correspond à « FTDI » dans le gestionnaire de paquet ?
Sinon y a-t-il un lien quelconque sur le Web, et peux-tu expliquer brièvement la démarche d’installation ?
Quand tu parle de « USB-Device » fais-tu bien référence à la commande suivante ?$ usb-devices

Bref je pense qu’il va falloir que tu nous en dises plus, d’autant qu’il s’agit de matos assez spécifique.

Merci des réponses

Pour ftdi voila ftdichip.com/index.html

Quand je dis je le vois c’est via un dmesg ou un usb-devices

voici ce que me donne le usb-devices

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev=03.02
S: Manufacturer=Linux 3.2.0-4-amd64 ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=0000:02:03.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0001 Rev=03.02
S: Manufacturer=Linux 3.2.0-4-amd64 uhci_hcd
S: Product=UHCI Host Controller
S: SerialNumber=0000:02:00.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub

T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0e0f ProdID=0003 Rev=01.03
S: Manufacturer=VMware
S: Product=VMware Virtual USB Mouse
C: #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid

T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 3 Spd=12 MxCh= 7
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0e0f ProdID=0002 Rev=01.00
S: Product=VMware Virtual USB Hub
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub

T: Bus=02 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 21 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0403 ProdID=d9ab Rev=06.00
S: Manufacturer=Actisense
S: Product=NGW-1-A
S: SerialNumber=1C12B
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

c’est le dernier périphérique avec Manufacturer=Actisense qui m’interesse

voila pour le lsusb

root@dronefluvial:/home/dronefluvial# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 021: ID 0403:d9ab Future Technology Devices International, Ltd

et pour finir le dmesg avec la partie qui nous interesse

[11565.366155] device-mapper: uevent: version 1.0.3
[11565.366676] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com
[11570.964661] EFI Variables Facility v0.08 2004-May-17
[11571.285045] SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled
[11571.286045] SGI XFS Quota Management subsystem
[11571.318710] JFS: nTxBlock = 3920, nTxLock = 31360
[11571.365131] NTFS driver 2.1.30 [Flags: R/W MODULE].
[11571.410712] QNX4 filesystem 0.2.3 registered.
[11571.494735] Btrfs loaded
[11571.515809] fuse init (API version 7.17)
[12088.012237] usb 2-2.1: USB disconnect, device number 20
[12089.882100] usb 2-2.1: new full-speed USB device number 21 using uhci_hcd
[12090.260894] usb 2-2.1: New USB device found, idVendor=0403, idProduct=d9ab
[12090.260902] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[12090.260907] usb 2-2.1: Product: NGW-1-A
[12090.260910] usb 2-2.1: Manufacturer: Actisense
[12090.260912] usb 2-2.1: SerialNumber: 1C12B

voila toutes les informations

raspberrypi.org/phpBB3/viewt … 44&t=55609
yachtelectronics.blogspot.de/200 … linux.html

…2 liens trouvés avec Duckduckgo…

C’est en anglais mais il y a un bout de code que j’aime bien (pour charger un module du noyau) :/sbin/modprobe ftdi_sio

Édition :
Je suis tombé sur cette page
wiki.debian.org/DeviceDatabase/USB

Il y a plein d’USB_id, mais pas « 0403:d9ab ». Toutefois « 0403 » a l’air de correspondre avec FTDI et toutes les références commençant ainsi utilisent le module ftdi_sio. Je pense que c’est là qu’il faut gratter.

ftdichip.com/Drivers/VCP.htm
ftdichip.com/Drivers/D2XX.htm

Ton appareil c’est plutôt VCP ou D2XX ?

Problème résolu

J’ai fait un patch sur le driver ftdi

Merci de votre aide

Il consiste en quoi ce patch ?

j’ajoute dans ftdi_sio.h
#define FTDI_AS_NDC_PID 0xD9A8
#define FTDI_AS_USG_PID 0xD9A9
#define FTDI_AS_NGT_PID 0xD9AA
#define FTDI_AS_NGW_PID 0xD9AB

j’ajoute dans ftdi_sio.c dans la partie static struct usb_device_id id_table_combined [] = {

{ USB_DEVICE(FTDI_VID, FTDI_AS_NDC_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_AS_USG_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_AS_NGT_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_AS_NGW_PID) },

Après je crée un Makefile

Et je place ceci dans le répertoire adéquat