Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » FXlink sur OpenBSD
Tm2t Hors ligne Membre Points: 3 Défis: 0 Message

FXlink sur OpenBSD

Posté le 27/08/2022 17:53

Bonjour à tous,
Je suis en train de mettre en place le FXsdk, gint et autres cross-compilers
sur mon ordinateur tournant sur OpenBSD 7.1.

Jusque là, aucun soucis, j'arrive à créer des projets (uniquement avec Cmake,
make ne veut pas fonctionner (et oui, j'utilise la version de chez GNU, gmake)),
les compiler, sans erreur.

Lorsque que je veux les passer sur ma calculatrice Graph 35-e II (qui est
supportée) en utilisant fxlink (version libusb, pas udisks puisque udisks
n'existe pas sur OpenBSD), ma calculatrice est correctement détectée.
fxlink -l affiche:


fx-CG or G-III series (USB Mass Storage) calculator
     Device location:  Bus 0, Port 2, Device 2
      Identification:  idVendor: 07cf, idProduct: 6102
  Guessed sysfs path:  /sys/bus/usb/devices/0-2/
       Serial number:  00000001
          Properties:  mass_storage, serial_number=00000001


(au passage, je suis obligé d'utiliser doas - l'équivalent de sudo sur
linux - pour qu'il puisse accéder aux périphériques USB. J'imagine
que c'est normal.)

Mais dès que je veux lancer le mode interactif pour envoyer des
fichiers (en utilisant fxlink -i), cette erreur revient en boucle:
error: bulk transfer failed on 0:2: Operation not supported or unimplemented on this platform


Après avoir activé le mode debug de libusb (avec le flag --libusb-log=DEBUG),
cette erreur plus détaillée s'affiche:


[ 2.821379] [0003483f] libusb: debug [libusb_alloc_transfer] transfer 0x10d2b4f5f50
[ 2.821384] [0003483f] libusb: debug [libusb_submit_transfer] transfer 0x10d2b4f5f50
[ 2.821389] [0003483f] libusb: debug [obsd_submit_transfer]
[ 2.821395] [0003483f] libusb: debug [libusb_free_transfer] transfer 0x10d2b4f5f50
error: bulk transfer failed on 0:2: Operation not supported or unimplemented on this platform


Tout de même, des allocations mémoire en guise de debug
c'est pas très intéressant pour investiguer, mais on fera avec.

Comme l'indique l'erreur, c'est spécifique à OpenBSD (parce
que la fonction est pas encore implémentée). Du coup, est-ce
qu'il y a un autre moyen d'envoyer des fichiers sur la calculatrice?

Je parle en terme de fonction alternative de libusb qui pourrait
faire le même travail ou simplement d'un autre soft *nix qui le
ferait aussi.

J'ai aussi tenté de regarder si la calculatrice n'avait pas simplement
créé un périphérique USB que je pourrais monter, mais apparament
non.

Désolé pour ce loooong post, et merci d'avance!


Lephenixnoir En ligne Administrateur Points: 22758 Défis: 149 Message

Citer : Posté le 27/08/2022 17:57 | #


Salut, ici tu utilises le backend libusb dont le principe est de communiquer directement avec le périphérique. Donc c'est normal que tu n'aies rien à monter, on n'est même pas en train de faire du système de fichiers. Le backend que tu utilises sert à communiquer des images, captures vidéo, etc. en temps réel depuis un add-in.

La "version libusb" et la "version udisks" ne sont donc pas deux alternatives mais bien deux parties séparées de fxlink qui implémentent chacune des fonctionnalités différentes.

Même si tu n'as pas UDisks2 sur OpenBSD, tu dois bien avoir un autre outil pour monter la calculatrice en mode utilisateur. La première étape serait de trouver lequel. Ensuite on peut étudier la possibilité de le supporter dans fxlink.

Je reste agréablement surpris parce que la dernière fois que j'ai tenté d'ajouter la compatibilité OpenBSD au fxSDK je ne parvenais pas à compiler binutils/GCC à cause d'erreurs de linker. x_x

Note qu'un certain nombre de scripts détectent la présence de gmake et l'appellent automatiquement, si tu as besoin de le faire à la main alors c'est peut-être un bug à corriger de mon côté.
Tm2t Hors ligne Membre Points: 3 Défis: 0 Message

Citer : Posté le 27/08/2022 18:26 | #


> La "version libusb" et la "version udisks" ne sont donc pas deux alternatives
> mais bien deux parties séparées de fxlink qui implémentent chacune des
> fonctionnalités différentes.

Oh, d'accord, je pensais que les deux permettaient de faire la même chose.

> Même si tu n'as pas UDisks2 sur OpenBSD, tu dois bien avoir un autre outil
> pour monter la calculatrice en mode utilisateur.

Quand tu parles de monter la calculatrice, tu parles d'une commande du genre
mount /dev/sd**
ou de quelque chose de complétement différent?

Si c'est le cas, lorsque je branche la calculatrice sur mon PC et que j'active le
mode USB, aucun périphérique n'apparaît de mon côté. Je ne sais pas si j'ai
mal configuré la calculatrice ou si c'est juste que OBSD ne la reconnaît même
pas.

> Je reste agréablement surpris parce que la dernière fois que j'ai tenté d'ajouter
> la compatibilité OpenBSD au fxSDK je ne parvenais pas à compiler binutils/GCC
> à cause d'erreurs de linker. x_x

Personellement, il y a just eu quelques erreurs comme quoi il trouvait pas certains
headers (parce qu'ils étaient dans /usr/local/include et non dans /usr/include, par ex.
il trouvait pas SDL2/SDL.h que j'ai du symlink) mais sinon ça a fonctionné normalement.

Après j'avais déjà compilés quelques cross-compilers avant pour faire un peu d'OS-dev,
donc j'avais déjà pas mal d'outils et de librairies déjà installées pour faire ce genre de trucs.

Aussi, sur OpenBSD la version de GCC qui s'installe quand tu utilises pkg_add c'est la version 4 x)
Il y a une manip à faire pour avoir la dernière version. Peut-être que les erreurs de linker venaient de là.

> Note qu'un certain nombre de scripts détectent la présence de gmake et l'appellent
> automatiquement, si tu as besoin de le faire à la main alors c'est peut-être un bug
> à corriger de mon côté.

La procédure d'installation à bien détecté gmake, pas de problème la-dessus.
fxsdk new par contre utilisait make et ne détectait pas gmake, j'ai du bidouiller un peu.
Mais même avec gmake, lorsque je build avec le makefile j'ai pas mal d'erreurs de compilation
(je me souviens plus trop des erreurs, il faudrait que je reteste. J'envoie les logs dès que j'ai plus
de détails).

Ah, et fxsdk utilise des options et programmes spécifiques aux coreutils GNU, par exemple
getopt renvoie des erreurs comme quoi l'option existe pas et pareil pour cp. Pas très très grave,
j'ai les coreutils gnu installés à côté si jamais, donc j'ai su me débrouiller avec eux.

Je me renseigne pour monter la calculette et je reviens ici.
Merci encore
Mb88 En ligne Membre Points: 333 Défis: 0 Message

Citer : Posté le 27/08/2022 18:30 | #


Si t'as besoin de mettre des fichiers dessus, utilise le mode "clé usb".
Sinon, bonne chance !
Lephenixnoir En ligne Administrateur Points: 22758 Défis: 149 Message

Citer : Posté le 27/08/2022 18:33 | #


Si c'est le cas, lorsque je branche la calculatrice sur mon PC et que j'active le mode USB, aucun périphérique n'apparaît de mon côté. Je ne sais pas si j'ai mal configuré la calculatrice ou si c'est juste que OBSD ne la reconnaît même pas.

Quelque chose que j'ai oublié de préciser c'est que la Graph 35+E II émule bien un périphérique SCSI standard. Tu dois pouvoir la monter par ton gestionnaire de fichiers, et oui avec mount /dev/sd* ou un autre périphérique du même style.

fxlink n'invente rien (pas comme FA-124 par exemple) et sert juste à automatiser sur la ligne de commande l'action d'utiliser le gestionnaire de fichiers pour copier les fichiers.

Donc la première étape c'est bien de s'arranger pour que ton système détecte et monte la calto, et ensuite on peut voir quels outils sont utilisés et si on peut automatiser la chose via un programme C.

Aussi, sur OpenBSD la version de GCC qui s'installe quand tu utilises pkg_add c'est la version 4 x) Il y a une manip à faire pour avoir la dernière version. Peut-être que les erreurs de linker venaient de là.

Oh wow, c'est bien possible que je sois tombé dans le piège. Si tu as assez de notes et de temps pour m'aider à adapter les scripts, je suis preneur. Ils sont tout juste fraîchement revus et bien propres en plus.

Mais même avec gmake, lorsque je build avec le makefile j'ai pas mal d'erreurs de compilation (...)

Oh oui ça c'est euh... teste... normal, le Makefile est pas vraiment tenu à jour. >_>

Ah, et fxsdk utilise des options et programmes spécifiques aux coreutils GNU, par exemple getopt renvoie des erreurs comme quoi l'option existe pas et pareil pour cp. Pas très très grave, j'ai les coreutils gnu installés à côté si jamais, donc j'ai su me débrouiller avec eux.

Ah oui c'est un peu casse-pieds ça. Je suis ouvert à adapter ce qu'il faut pourvu que ça ne nous fasse pas écrire des tartines de code en plus.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 55 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd