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 21/01/2008, à 12:16

Efhache84

k8055 et droit d'accès à  l'usb

Bonjour,

je tente de faire fonctionner la carte k8055 sous ma buntu... j'y suis parvenu en partie grà¢ce à  libk8055

Elle fonctionne en ligne de commade mais uniquement en tant que root (ou avec sudo... ce qui est un peu pareil) or il y a moyen de me donner les permissions pour y accéder en tant que simple user... la solution de l'auteur de libk8055 est d'utiliser hotplug... ça n'a pas marché... j'ai donc cherché une autre solution... et j'en ai trouvée une plus "traditionelle" et qui devrait fonctionner... chez moi, naturellement sinon je ne poserais pas ma question, ça ne marche pas.

Alors, o๠est-ce que je me trompe?


La méthode :

1°) chercher la carte avec lsusb

...
Bus 003 Device 002: ID 10cf:5500 Velleman Components, Inc. 8055 Experiment Interface Board (address=0)
...

2°) créer un groupe k8055 et m'y ajouter

# groupadd k8055
# gpasswd -a USER_NAME k8055

3°)donner les droits à  au port usb correct (tout est fichier, non?)

# chown root:k8055 /proc/bus/usb/003/002
# chmod 660 /proc/bus/usb/003/002

mettre 770 au lieu de 660 ne change rien à  l'affaire... et une fois que je fais ça, alors que le groupe auquel j'appartiens a les droits normalement, pas moyen d'exécuter la commande en tant que moi (sans sudo donc)

Efhache@Orion:~$ k8055 -p:0 -d:170
Velleman Device Found @ Address 002 Vendor 0x010cf Product ID 0x05500
get driver name: could not get bound driver: Operation not permitted
Claim interface error: could not claim interface 0: Operation not permitted
Can not take over the device from the OS driver
Could not open the k8055 (port:0)
Please ensure that the device is correctly connected.

mais si pour la même commade j'ajoute sudo, aucun soucis...


bon après ça j'ai également un problème avec la librairie lorsque je l'appelle dans un programme en C++ (ou même C)
Selon l'auteur (et d'autres utilisateur web) seul un #include <k8055.h> et une compilation avec les bons flags (gcc -lusb -lk8055 main.c -o k8055_rocks) devrait suffir... mais chez moi, non... irrémédiablement, les fonctions propres à  la carte sont renseignée comme une référence indéfinie (pourtant il voit bien la librairie puisque la complétion automatique me propose les fonctions adéquate...)
Ou alors parfois, il me déclare que dans le libk8055.so (so??? pas o??) il y a une référence à  "sqrtf" qu'il ne connait pas... pourtant le libk8055.c (donc tt ça issus de l'auteur de libk8055 dont la page sourceforge est signalée ci-dessus) contient bien un include de math.h (sqrtf est bien renseigné dans math.h tout de même?)

Voilà  si quelqu'un pouvait m'aider pour terminer cela...

Je précise que la carte est fonctionnelle à  100% sous windows avec les DLL fournit par velleman, donc ce n'est pas la carte qui est défectueuse (ni le pc... dual boot)


Aspire 5633 WLMi - Lucid Lynx 10.04 en 64 bits

Hors ligne

#2 Le 12/06/2009, à 21:07

dioche85

Re : k8055 et droit d'accès à  l'usb

Bonjour Efhache84,

Je vois que ce post ne date pas d'y hier !
Mais je voulais savoir si tu avais trouver la solution pour réussir à utiliser la librairie libk8055 avec Code::Blocks sous Ubuntu en c++.

J'ai exactement le même souci que toi
A la compilation, les fonctions de la librairie sont marqués comme des références indéfinies alors que l'auto-complétion fonctionne???

Je serais reconnaissant si toi où quelqu'un aurait la solution...
Car cela fait plusieurs semaines que ce problème me reste insolvable.

Merci!                                                                           Dioche.

Hors ligne

#3 Le 13/06/2009, à 10:26

Efhache84

Re : k8055 et droit d'accès à  l'usb

Je dois avouer que je ne me suis plus pencher sur le problème car je suis passé à d'autres projets.
Mais non depuis lors pas trouvé de solution..., désolé hmm


Aspire 5633 WLMi - Lucid Lynx 10.04 en 64 bits

Hors ligne

#4 Le 13/06/2009, à 13:06

dioche85

Re : k8055 et droit d'accès à  l'usb

Je viens de trouver la solution!!!! j'y crois encore pas!

Il suffit juste de mettre "-lusb -lk8055" dans les options de l'éditeur de lien !!!
Et c'est tout!

Il faut bien sûr mettre au début du fichier main.c

 #include <k8055.h>

Sinon lorsqu'on code en C++ toujours au début du fichier main.ccp cette fois ci :

extern "C" {
#include "k8055.h"
}

Et ça compile sans problème!!!!         
Voilà!

Hors ligne

#5 Le 28/03/2010, à 15:11

Gp2mv3

Re : k8055 et droit d'accès à  l'usb

J'ai également le même probleme que décrit dans le premier post, si quelqu'un a une astuce, je suis preneur...

Hors ligne

#6 Le 05/05/2010, à 21:09

dioche85

Re : k8055 et droit d'accès à  l'usb

Bonsoir,

As-tu bien coller le fichier "welleman.rules" disponible depuis la "libk8055.0.4"
dans le répertoire   "/etc/udev/rules.d"

J'utilise cette méthode depuis plus d'un an. ça fonctionne toujours au poil:

a) installer les paquets build-essential, libusb1.0, libusb0.1.12, libk8055.0.4
b) coller le fichier "welleman.rules" dans le répertoire   "/etc/udev/rules.d"
c) dans un terminal, créer un groupe  :

group add k8055

d) également, y s'ajouter :

usermod -a -G k8055 'non de l'user'

e) Reboot et ça marche sans les posséder les droits root.

Voilà.

Dernière modification par dioche85 (Le 05/05/2010, à 21:11)

Hors ligne

#7 Le 07/05/2010, à 08:11

Gp2mv3

Re : k8055 et droit d'accès à  l'usb

Ok, merci, je vais essayer ça.
Malheureusement la carte est pas chez moi donc je testerai la prochaine fois. wink

Hors ligne

#8 Le 21/05/2010, à 04:03

Lami

Re : k8055 et droit d'accès à  l'usb

Bonjour,

Au lieu de :

dioche85 a écrit :

...
b) coller le fichier "welleman.rules" dans le répertoire   "/etc/udev/rules.d"
...

Remplacer le « w » par un « v » pour le nom du fabricant :

b) coller le fichier "velleman.rules" dans le répertoire  "/etc/udev/rules.d"

Une question, tous les fichiers du dossier "/etc/udev/rules.d" commencent par un numéro, ne devrait-on pas renommer le fichier "velleman.rules" en "40-velleman.rules" comme le fichier "40-k8055.rules" qui y est déjà ?

Est-ce que pour le langage Pascal il faut faire la même manipulation ?

En passant, je ne programme pas en C, mais en Pascal, mais je n'avais jamais programmé sous Linux en Pascal avant-hier le 19 mai 2010. Je n'arrive pas à inclure la librairie pour le k8055 que je viens de recevoir, j'ai une erreur dans ce sens du compilateur de Lazarus, Geany et Free Pascal. Pourriez-vous me fournir des pistes de solution pour Lazarus 9.26.2 et/ou Geany 0.18 et/ou Free Pascal 1.0.10, je suis sous Kubuntu 9.10 en 32 bits ?

Dans mon dossier ~/sda6/K8055/Linux, j'ai les produits suivants :

  k8055d-0.1.2-src
  k8055gui_v0.1
  k8055-utbm-full
  k8055-utbm-src-0.3
  k8055utils-2.1.3
  k8055utils-2.1.3-i386
  libk8055.0.2
  libk8055.0.3
  libk8055.0.4

Et j'ai copié le binaire fraichement compilé ~/sda6/K8055/Linux/libk8055.0.4/src/k8055 dans le dossier /bin

Sur qu'elle liste de discussion me recommandez-vous de pauser cette même question (je suis unilingue francophone) ?

Le module k8055gui fonctionne très bien sans être en root.

Merci d'avance !

Dernière modification par Lami (Le 21/05/2010, à 04:32)


L'ami René

Tous pour un et un pour tous !

Hors ligne

#9 Le 22/05/2010, à 10:32

Gp2mv3

Re : k8055 et droit d'accès à  l'usb

Salut,
Perso, je ne connais pas du tout le Pascal mais oui normalement tu dois faire la même manip étant donné qu'elle sert à donner les droits d'acces sur la carte. wink
Après pour ton problème, aucune idée...

Gp2mv3

Hors ligne

#10 Le 22/05/2010, à 18:26

Lami

Re : k8055 et droit d'accès à  l'usb

Bonjour Gp2mv3,

Merci pour l'information !

Je viens de regarder le contenu du fichier velleman.rules et son contenus correspond à une manipulation manuelle que je faisais, alors je sais maintenant comment éviter la manipulation manuelle, simplement en copient le fichier généré pendant la compilation dans le dossier "/etc/udev/rules.d".


L'ami René

Tous pour un et un pour tous !

Hors ligne

#11 Le 22/05/2010, à 18:33

Lami

Re : k8055 et droit d'accès à  l'usb

Rebonjour à tous,

Voici le mode d'installation qui a bien fonctionné pour moi. Je ne suis un spécialiste en rien, alors ne me demandez pas de l'aide pour des solutions, car je ne suis qu'un utilisateur ordinaire qui vous transmet ce qui a fonctionné pour lui. Pour Ubuntu et d'autres distributions ou pour d'autres versions des produits utilisés ici, je ne sais pas quoi vous dire, je ne connais pas.

Pour commencer, brancher votre carte K8055 au port USB de votre choix.

Installation des paquets pour la carte K8055 (VM110) sous Linux Kubuntu 9.10 32 bits.

Ma méthode pour installer la librairie libk8055 et l'interface graphique k8055gui.

Il faut plusieurs paquets en plus pour que le tout soit compilé et bien supporté.

Pour tout cela, les commandes dans une console sont :

sudo aptitude update
sudo aptitude upgrade
sudo aptitude install build-essential gcc libwxgtk2.8-dev libwxgtk2.8-0 libcurl4-gnutls-dev libusb-1.0-0 libusb-1.0-0-dev libusb++-0.1-4c2 libhid0 libhid-dev swig swig-doc swig-examples python-hid libqwt5-qt4 libqwt5-qt4-dev libqwt5-doc libqwt-dev python-qwt5-qt3 python-qwt5-qt4 python-qwt5-doc python-dev wx2.8-i18n wx2.8-headers wx2.8-examples wx2.8-doc

Dans vos dossiers personnels, dans une console, créer un dossier K8055 :

mkdir K8055

Déplacez-vous dans ce nouveau dossier :

cd K8055

Créer un nouveau dossier pour la librairie libk8055 :

mkdir libk8055

Déplacez-vous dans ce nouveau dossier :

cd libk8055

Télécharger la librairie à compiler :

wget http://prdownloads.sourceforge.net/libk8055/libk8055.0.4.tar.gz

Décompresser l'archive :

tar xzvf libk8055.0.4.tar.gz

Déplacez-vous dans le nouveau dossier src :

cd src

Préparer la compilation :

make

Compiler :

sudo make install

Copier la librairie binaire franchement compilée k8055 dans le dossier /bin :

sudo cp k8055 /bin/k8055

Pour rendre ce nouveau périphérique accessible au groupe d'utilisateur k8055, copier le nouvelle fichier des règles « udev » avec la commande suivante :

sudo cp velleman.rules /etc/udev/rules.d/velleman.rules

Créer le groupe utilisateur K8055 avec la commande :

sudo groupadd k8055

Ajoutez-vous à ce groupe

sudo gpasswd -a nom_utilisateur k8055

Pour moi cela donne la commande :

sudo gpasswd -a rene k8055

Redémarrer l'ordinateur pour que tous ces changements soient pris en compte.

Pour utiliser la librairie, faites un test dans une console avec la commande :

k8055 -d:255

Les LED de la carte K8055 s'illuminent pour indique le chiffre 255 en binaire sur 8 bits cela donne 11111111.

Les 8 LED sont donc allumés.

Et voilà la commande k8055 est disponible de partout et en faisant « k8055 -p:0 » on obtient l'état de la carte

Amusez-vous avec des commandes du genre :

k8055 -d:0 ouvre tous les contacteurs
k8055 -d:1 ferme le contacteur 1
k8055 -d:2 ferme le contacteur 2
k8055 -d:4 ferme le contacteur 3
k8055 -d:8 ferme le contacteur 4
k8055 -d:16 ferme le contacteur 5
k8055 -d:32 ferme le contacteur 6
k8055 -d:64 ferme le contacteur 7
k8055 -d:128 ferme le contacteur 8
k8055 -d:255 ferme tous les 8 contacteurs

Etc.

Maintenant, passer à l'installation de l'interface graphique k8055gui.

Télécharger l'archive à compiler à l'adresse Internet suivante en l'enregistrant dans un nouveau dossier nommé k8055gui dans le dossier K8055 :

http://sites.google.com/site/vellemank8 … 0.1.tar.gz

Dans une console,déplacez-vous dans le nouveau dossier crée pour l'archive k8055gui :

Par exemple, si votre dossier K8055 est à la racine de votre dossier personnel, faites la commande :

cd ~/K8055/k8055gui

Décompresser l'archive :

tar xzvf k8055gui_v0.1.tar.gz

Déplacez-vous dans le nouveau dossier src :

cd src

Préparer la compilation :

make

Compiler :

sudo make install

Pour exécuter le nouveau binaire :

./k8055gui

Connectez-vous à la carte en cliquant sur le bouton « Connect »

Voilà, le tour est joué !

Pour le reste, amusez-vous bien !

Dernière modification par Lami (Le 22/05/2010, à 18:48)


L'ami René

Tous pour un et un pour tous !

Hors ligne

#12 Le 15/06/2010, à 06:28

Gp2mv3

Re : k8055 et droit d'accès à  l'usb

Perso la première méthode a très bien fonctionné.
Elle est juste un peu lente quand on chipote à tout en même temps et le pic chauffe mais bon, ça doit être "normal"...

Hors ligne

#13 Le 17/06/2011, à 16:42

David Mézière

Re : k8055 et droit d'accès à  l'usb

Bonjour à tous !

J'ai tenté, sans trop de succès, d'utiliser les drivers unifiés COMEDI pour utiliser ma carte K8055, puis je suis tombé sur ce post. J'ai suivi avec intérêt la procédure proposée par L'ami René, qui fonctionne presque sur ma config (Ubuntu 10.04). Le seul souci, un peu gênant, c'est que ma station ne démarre plus, mais au moins, ça compile smile Du moins je perds le terminal graphique. Dès que je retire la règle udev tout rentre dans l'ordre, si ce n'est que je dois lancer la commande k8055 en root. Je pense que quelque chose a du changer depuis au niveau de udev. Je cherche désespérément des gens ayant eu une expérience positive soit avec COMEDI (je ne désespère pas), soit avec libk8055 sur des configs récentes.

David.

Hors ligne

#14 Le 17/06/2011, à 16:47

David Mézière

Re : k8055 et droit d'accès à  l'usb

Re,

Je précise que la compilation de l'interface graphique par contre, ne passe pas du tout smile

David.

Hors ligne

#15 Le 16/07/2012, à 13:07

Lami

Re : k8055 et droit d'accès à  l'usb

Salut David Mézière et les autres,

Est-ce que vous avez réussi vos compilations et exécutions sur la carte K8055 alias VM110 ?

J’essaie de nouveau, mais sous Kubuntu 12.04 64 bits et Lazarus (Free Pascal) !

Avec quels outils programmez-vous ?


L'ami René

Tous pour un et un pour tous !

Hors ligne

#16 Le 27/07/2012, à 17:16

Lami

Re : k8055 et droit d'accès à  l'usb

Bonjour,

J'ai finalement trouvé la manière de convertir le code source en Windows Delphi (Pascal Objet) pour le compiler sous Kubuntu 12.04 64 bits avec Lazarus (Free Pascal) !

Deux petites corrections pour incorporer la librairie Linux « LibK8055.so » à la place de la DDL « K8055.dll » et ça roulent...

Remplacer  « stdcall; external 'K8055d.dll'; » par « cdecl; external; ».

En entête des fichiers « K8055.pas » ou « LibUSB.pas » ou « USB.pas », corriger pour que cela ressemble à :

unit K8055;

{$mode objfpc}{$H+}
{$LINKLIB c}
{$LINKLIB usb}
{$LINKLIB libk8055.so}

interface

uses
...

Bonne programmation à tous...


L'ami René

Tous pour un et un pour tous !

Hors ligne