Support Controlblock



  • Salut salut, premier post ici! Je me suis lancé cet été dans un petit projet retrogaming, en montant un Pi2 dans un support iCade (photos du truc ici). Pour le projet j'ai acheté le Controlblock de petrock parce qu'il fait à la fois contrôleur et power switch. Sur ma petite machine j'ai un interrupteur devant et une led qui indique le statut de boot et permet d'éteindre proprement la machine. Le bornier pour les inputs est aussi bien pratique. Le tout tourne donc sous Retropie. Et puis j'ai décidé de tester recalbox et il y a plein plein de choses très intéressantes sur cette distri - je ne vais pas les lister ici, si vous lisez ça c'est que vous êtes au courant aussi ;). Un grand bravo donc à retroboy et tous les contributeurs, c'est vraiment propre. Les manettes de PS3 marchent nickel comme sur Retropie mais depuis la beta 4 je peux aussi utiliser ma SFC30 de 8bitdo super facilement (<del>manque l'auto-connect mais c'est presque parfait</del> edit: ça marche!) alors que j'ai du bricoler pas mal sur le Retropie pour que ça marche. Il manque encore l'émulation Amiga, et ça sera quasi parfait! Je suis bien motivé à switcher. Sauf que voilà ma machine sous recalbox sans support Controlblock est amputée de ses contrôles arcade et de son bouton power. J'ai essayé de compiler le driver sur Retropie pour l'installer de l'autre côté, mais il y a trop de dépendances et sans package manager c'est galère. Que faire à part retourner sur Retropie? 🙂


  • Staff
    Developer
    Global moderator
    Team

    Salut, alors j'ai pas de solution miracle aujourd'hui. Je te dirais de passer sur les gpio directement avec https://github.com/digitalLumberjack/recalbox-os/wiki/GPIO-controllers-(EN) mais ça t'oblige a remapper tes boutons. Et ça ne supporte pas le on/off. Il y a déjà une issue pour supporter le on/off de la recalbox par les pin 5 et 6, et tu peux ajouter une issue sur le github pour le support du controllblock. On verra ce qu'on peu faire 🙂 En tout cas sur l'une ou l'autre des distrib, bon jeu 🙂



  • Merci pour ta réponse. J'avais vu le support des GPIO direct. Le controlblock offre beaucoup plus d'inputs, mais dans mon cas je ne m'en sers pas donc je pourrais éventuellement recabler en effet. Mais c'est le bouton power que je ne voudrais pas perdre 🙂 Le gros avantage qu'il offre c'est qu'il gère l'alimentation du Pi et une fois que celui ci a été shutdown proprement par le driver du controlblock, ce dernier coupe l'alim du Pi. C'est super pratique. Avec un pin GPIO pour faire le wakeup, on ne pourra pas couper le jus... J'ai ouvert un ticket sur github. Je vais regarder si je peux aider mais j'ai jamais touché à buildroot... Merci pour ton projet en tous cas, c'est très chouette!



  • Hello, bon j'essaye d'ajouter le driver controlblock à recalbox-buildroot et évidemment je galère. Je n'arrive pas à configurer un generic-package. Au mieux le make démarre mais la compilation échoue, il manque les libraries. Peut être parce que controlblock a une dépendance à g++-4.8 que je ne sais pas comment satisfaire et aussi probablement parce que j'ai écrit n'importe quoi dans mon controlblock.mk:

    In file included from /home/tom/depots/recalbox/recalbox-buildroot/output/host/usr/arm-buildroot-linux-gnueabihf/include/c++/4.9.3/chrono:35:0,
                     from SNESGamepad.cpp:23:
    /home/tom/depots/recalbox/recalbox-buildroot/output/host/usr/arm-buildroot-linux-gnueabihf/include/c++/4.9.3/bits/c++0x_warning.h:32:2: erreur: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
     #error This file requires compiler and library support for the \
      ^
    mcp23017pi.cpp:23:21: erreur fatale: bcm2835.h : Aucun fichier ou dossier de ce type
     #include "bcm2835.h"
    

    Mais en plus la target qui installe le service (apres le sudo make install il faut refaire un make installservice) fait des apt-get... Je ne pense pas que buildroot apprécie 😕 Bref c'est un peu hard pour une découverte de buildroot. En dernier recours je pourrais hoster une version du driver précompilé mais ça ne résoudra pas l'installation du service. Si tu as des pistes je suis preneur 🙂


  • Staff
    Developer
    Global moderator
    Team

    Salut, push moi les modifications que tu as faite sur ton fork, file moi le lien ici, et je jette un oeil ce weekend 🙂



  • Ok je fais ca, merci 🙂



  • Voilà j'ai pushé là: https://github.com/t0mg/recalbox-buildroot/commit/963ff8f08a6ddea9c4e68862ea085cf88bce6fb3 Le controlblock.mk est là: https://github.com/t0mg/recalbox-buildroot/blob/58b62ec0cd3b89791cdf0b7b16fe3d5a2f4d3c35/package/controlblock/controlblock.mk Honnêtement je pense que mon controlblock.mk ne fait pas le quart de ce qu'il devrait. La seule partie qui marche c'est le téléchargement de la source. Lors du make le controlblock compile des libs et je pense que ça n'utilise ni le bon compiler ni les bons chemins 😕 Merci de ton aide!


  • Staff
    Developer
    Global moderator
    Team

    Je regarde ca 😄


  • Staff
    Developer
    Global moderator
    Team

    J'ai regardé. C'est pas si facile car il compile des libs (https://github.com/petrockblog/ControlBlockService/tree/master/src/lib) pendant le build. Ces libs doivent être compilés a part sous buildroot. C'est pas infaisable mais faudra quelques modifications.



  • Mh alors pour jsoncpp il est dejà packagé dans buildroot, et libbcm2835 je l'ai trouvé ici. J'ai aussi un fork de Controlblock (je voulais faire des modifs qui n'ont rien à voir) donc je peux customiser les makefile si besoin mais j'aurais besoin de ton aide pour savoir comment tout caler ça pour que ça compile bien dans le controlblock.mk... Merci ! 🙂



  • Voilà j'ai rajouté le package libbcm2835 pour le gpio ainsi que la dépendance a jsoncpp deja présent dans buildroot. J'ai aussi ajouté python-smbus parce que le make installservice l'installe via apt (il installe aussi libi2c-dev mais normalement le module vient avec i2c-tools). Voilà voilà. Maintenant pour référencer tout ça comme il faut pour que les makefile de controlblock puissent marcher, je crains que cela soit largement au dessus de mes compétences... 😕 https://github.com/t0mg/recalbox-buildroot/commit/4e383ac7440ea59f67cf4261356d74363e948d66 Edit: les deps du package ont l'air ok, buildroot arrive a tout compiler (i2c-tools, libbcm2835, jsoncpp) maintenant c'est le makefile de controlblock qu'il faudrait changer vu il n'a plus besoin de compiler les libs lui-même... mais pour les links et les flags, je suis complètement paumé! 😄



  • Petit up. Je ne sais pas patcher ces makefile 😞 Je suis convaincu que le support de cette carte ne serait pas un atout que pour moi. Le controle intelligent de l'alimentation et le fait de pouvoir câbler beaucoup plus de boutons qu'en direct sur le gpio sont vraiment intéressants. Vu que je suis bien motivé à rester sur recalbox quand même, je suis prêt à offrir un powerblock pour ce travail (http://petrockblog.storenvy.com/products/13969704-powerblock, il est en stock contrairement au controlblock et les makefile sont similaires bien que plus light), ou bien faire un don si tu préfères, ou une bière 🙂


  • Staff
    Developer
    Global moderator
    Team

    Lol ok ca marche si tu fais un don sur la page paypal je commande ca directos et on s'occupe du support 🙂



  • Deal 😉 c'est bien mérité.


  • Staff
    Developer
    Global moderator
    Team

    Et c'est commandé ! 🙂



  • Cool 🙂


  • Staff
    Developer
    Global moderator
    Team

    Il est reçu 🙂 je regarde ca des que possible !



  • w00t w00t!



  • @digitaLumberjack bon je pense qu'il y a prescription du coup. Mais comme recalbox reste ma distri retrogaming favorite et de loin, je vais recâbler ma borne d'arcade sur les gpio et dire adieu au controlblock et son shutown qui coupait vraiment le jus dans le Pi 😕

    Merci pour tout votre boulot, c'est vraiment un chouette projet.


Log in to reply
 

Want to support us ?

210
Online

80.5k
Users

21.6k
Topics

158.0k
Posts