-
Installer les drivers nécessaires à Diamond sous Linux.
02/14/2016 at 22:13 • 0 commentsINSTALLATION DES DRIVERS USB NECESSAIRES A L'UTILISATION DE LATTICE DIAMOND SOUS LINUX UBUNTU 14
MATERIEL:
Device sur la carte MachXO2 Pico: LCMXO2-1200ZE-2MG132CES1104RH01
PROBLEME:
Au premier lancement de Diamond:
Q: yoda@yoda-W253EU-SSD:~$ /usr/local/diamond/3.5_x64/bin/lin64/diamond
R:
yoda@yoda-W253EU-SSD:~$ libusb couldn't open USB device /dev/bus/usb/003/007: Permission denied.
libusb requires write access to USB device nodes.
Erreur de segmentation
(ceci est le problème du lancement non root, résolue par l'affectation au groupe 'usbdev')
Le problème résolu ici est celui de pouvoir ouvrir le mode 'programmer' depuis Diamond pour
downloader le Jedec dans le PLD.SOLUTION:
- Listage des périphériques usb:
Q: yoda@yoda-W253EU-SSD:~$ lsusb
R:
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse (M-BT58)
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 0480:0201 Toshiba America Info. Systems, Inc.
Bus 003 Device 007: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
Bus 003 Device 005: ID 04a9:173a Canon, Inc.
Bus 003 Device 003: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 003 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub- demande d'infos du périph concerné (chemin).
Q: yoda@yoda-W253EU-SSD:~$ sudo udevadm info -q path -n /dev/bus/usb/003/007
R: /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.1/3-2.1.3- demande des caractéristiques complètes du périphérique.
Q: yoda@yoda-W253EU-SSD:~$ sudo udevadm info -a -p /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.1/3-2.1.3
R: Udevadm info starts with the device specified by the devpath and thenwalks 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:14.0/usb3/3-2/3-2.1/3-2.1.3':
KERNEL=="3-2.1.3"
SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{bDeviceSubClass}=="00"
ATTR{bDeviceProtocol}=="00"
ATTR{devpath}=="2.1.3"
ATTR{idVendor}=="0403"
... blablabla ...
ATTR{manufacturer}=="Lattice"
ATTR{removable}=="unknown"
ATTR{idProduct}=="6010"
ATTR{bDeviceClass}=="00"
ATTR{product}=="Lattice FTUSB Interface Cable"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.1':
... blablabla ...
ATTRS{bDeviceClass}=="09"
ATTRS{product}=="USB 2.0 Hub [MTT]"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-2':
... blablabla ...ATTRS{bDeviceClass}=="09"
ATTRS{product}=="USB 2.0 Hub [MTT]"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3':
... blablabla ...
ATTRS{bDeviceClass}=="09"
ATTRS{product}=="xHCI Host Controller"
looking at parent device '/devices/pci0000:00/0000:00:14.0':
KERNELS=="0000:00:14.0"
... blablabla ...
ATTRS{numa_node}=="-1"
ATTRS{d3cold_allowed}=="1"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
yoda@yoda-W253EU-SSD:~$
- Mes recherches m'ont amené à créer un fichier:
/etc/udev/rules.d/90-usb-special-yoda.rules
(avec nano dans le répertoire en tant que 'root').
c'est la solution proposée la meilleure et la plus universelle.
Ce fichier contient:
(voir listing ci dessus, le périphérique posant problème est le "Lattice FTUSB Interface Cable")SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0403", MODE="0666", GROUP="plugdev"
- Pour finaliser, il faut d'abord débrancher les périphériques concernés, puis lancer au choix l'une de ces commandes...