| [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage | |
|
Auteur | Message |
---|
Acris Accro'
Messages : 481 Réputation : 42 Inscrit le : 14/06/2013
| Msg n°1 Sujet: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Dim 08 Mar 2015, 13:50 | |
| Bonjour à tous, il est possible de faire connecter vos manettes bluetooth au démarrage de votre rpi. Source : Open-Console - Retrogaming rpi - Merci SpikeSpiegel. Il y a deux méthodes pour connecter votre manette bluetooth à votre rpi - commande hidd -> hidd --connect xx:xx:xx:xx:xx - commande bluez -> bluez-test-input connect xx:xx:xx:xx:xx Ma manette est une snakebyte idroid:con , elle se connecte uniquement avec la commande hidd. J'ai adapté le script de SpikeSpiegel /!\Attention il y a une partie pour le driver xboxdrv qui ne fonctionnera pas il faut l'adapter à l'envirionnement de recalbox - J'ai mis en commentaires ## /!\ Requis : recalbox v 3.2.7Trouver les adresses mac de vos manettes : Sortir d'emultationstation - touche clavier F4 ALT+F2 Taper dans le terminal : - Code:
-
hcitool scan Le résultat vous donne : - Code:
-
aa:bb:cc:ee:dd:ff idroid xx:xx:xx:xx:xx:xx idroid xx:xx:xx:xx:xx:xx keyboard Placer le fichier btDaemon.sh dans le dossier /recalbox/scripts/Remplacer les valeurs BT1 et BT2 par les adresses mac que vous avez obtenu dans le terminal ou via putty btDaemon.sh - Respecter le nom des fichiers - Code:
-
#!/bin/bash
#REMPLACER BT1 ET BT2 PAR VOS ADRESSES MAC #hcitool scan #Joystick 1 BT1='20:73:AB:01:98:76' #Joystick 2 #BT2='20:73:AB:01:16:3E'
BT1_STATUS='unknown' BT2_STATUS='unknown'
#initialize VERBOSE=0 NO_LOG=0 COUNT_LINES_LOGGER=0 MAX_LINES_LOGGER=100 DELAI=10 LOGGER_FILE=/var/log/btDaemonLogger.log [ "$1" = '-v' ] && VERBOSE=1 #END initialize
#functions logger() { #no logger [ $NO_LOG -eq 1 ] && return [[ $2 -eq 1 ]] && COUNT_LINES_LOGGER=0 COUNT_LINES_LOGGER=$(($COUNT_LINES_LOGGER + 1))
now=$(date +"%m-%d-%y %r") if [ $VERBOSE -eq 1 ]; then echo "[$now]" $1 fi
if [[ $2 -eq 1 ]]; then #RESET Logger File echo "[$now]" $1 > $LOGGER_FILE else echo "[$now]" $1 >> $LOGGER_FILE fi }
auto_connect() { local index=$1 local bt=$2
[ ! -s /tmp/btcheck ] && [ $(ls /dev/input/js0 2> /dev/null) ] && logger "USB device js0 is already connected" && return
if [ ! -z "$bt" ]; then if grep -q $bt /tmp/btcheck; then logger "[OK] bluetooth device $index [$bt] is already connected" else logger "[KO] bluetooth device $index [$bt] not connected" connect $index $bt fi else logger "no configuration found for bluetooth device $index (check mac address)" fi }
connect() { local index=$1 local bt=$2 local btStatus='notconnected'
local tryPing=1 local tryCon=1 local maxRetry=1 #priority to gamepad 1 #[ $index -eq 0 ] && maxRetry=10
logger "try connecting bluetooth device $index [$bt] maxRetry=$maxRetry..."
#10 attempts for connecting device while [ $tryPing -le $maxRetry ]; do l2ping $bt -c 3 > /dev/null 2>&1 RESPING=$? if [ $RESPING = 0 ]; then logger "[OK][$RESPING] ping bluetooth device $index [$bt]"
tryCon=1 while [ $tryCon -le $maxRetry ]; do hidd --connect $bt &> /dev/null RESCON=$? if [ $RESCON = 0 ]; then #logger "[OK][$RESCON] bluetooth device $index [$bt] connected" btStatus='connected' #xd_init $index $bt else logger "[KO][$RESCON][$tryCon] bluetooth device $index [$bt] connected" btStatus='notconnected' fi
[ $btStatus = 'connected' ] && break tryCon=$(($tryCon + 1)) done else logger "[KO][$RESPING][$tryPing] ping bluetooth device $index [$bt]" btStatus='noping' fi
[ $btStatus = 'connected' ] && break tryPing=$(($tryPing + 1)) done
[ $index -eq 0 ] && BT1_STATUS=$btStatus && logger "bluetooth device $index [$bt] [$BT1_STATUS]" [ $index -eq 1 ] && BT2_STATUS=$btStatus && logger "bluetooth device $index [$bt] [$BT2_STATUS]" } #END functions
#MAIN logger "[START] bluetooth devices monitoring..." 1
while [ 1 ]; do #COUNT_LINES_LOGGER=$(wc -l $LOGGER_FILE | cut -f1 -d" ") if [ $COUNT_LINES_LOGGER -gt $MAX_LINES_LOGGER ]; then #RESET Logger logger "--- bluetooth devices check connections [delai=$DELAI] ---" 1 else logger "--- bluetooth devices check connections [delai=$DELAI] ---" fi #check bluetooth devices status hcitool con|grep -v "^Connections:" > /tmp/btcheck
auto_connect 0 $BT1 auto_connect 1 $BT2
logger "------------------------------------------------------" sleep $DELAI done
logger "[STOP] bluetooth devices monitoring." #END MAIN
exit 0 Attribuer les droits d’exécution au fichier btDaemon.sh - Code:
-
chmod +X /recalbox/scripts/btDaemon.sh Placer le fichier S92btService dans le dossier suivant /etc/init.d/Téléchargeable via : [Vous devez être inscrit et connecté pour voir ce lien]Donner les droits d’exécution - Code:
-
chmod +X /etc/init.d/S92btService Redémarrer votre rpi - allumer vos manettes. Après quelques secondes , vos manettes devraient se connecter toutes seules . Démarrer le service : - Code:
-
/etc/init.d/S92btService start ` Arrêter le service : - Code:
-
/etc/init.d/S92btService stop Status du service :(A noter que chez moi , le status ne s'affiche pas) - Code:
-
/etc/init.d/S92btService status En cas de soucis consulter le rapport : - Code:
-
tail /var/log/btDaemonLogger.log Pour les manettes ne connectant avec bluez Utiliser ce script : - Code:
-
#!/bin/bash
#REMPLACER BT1 ET BT2 PAR VOS ADRESSES MAC #hcitool scan #Joystick 1 BT1='20:73:AB:01:98:76' #Joystick 2 #BT2='20:73:AB:01:16:3E'
BT1_STATUS='unknown' BT2_STATUS='unknown'
#initialize VERBOSE=0 NO_LOG=0 COUNT_LINES_LOGGER=0 MAX_LINES_LOGGER=100 DELAI=10 LOGGER_FILE=/var/log/btDaemonLogger.log [ "$1" = '-v' ] && VERBOSE=1 #END initialize
#functions logger() { #no logger [ $NO_LOG -eq 1 ] && return [[ $2 -eq 1 ]] && COUNT_LINES_LOGGER=0 COUNT_LINES_LOGGER=$(($COUNT_LINES_LOGGER + 1))
now=$(date +"%m-%d-%y %r") if [ $VERBOSE -eq 1 ]; then echo "[$now]" $1 fi
if [[ $2 -eq 1 ]]; then #RESET Logger File echo "[$now]" $1 > $LOGGER_FILE else echo "[$now]" $1 >> $LOGGER_FILE fi }
auto_connect() { local index=$1 local bt=$2
[ ! -s /tmp/btcheck ] && [ $(ls /dev/input/js0 2> /dev/null) ] && logger "USB device js0 is already connected" && return
if [ ! -z "$bt" ]; then if grep -q $bt /tmp/btcheck; then logger "[OK] bluetooth device $index [$bt] is already connected" else logger "[KO] bluetooth device $index [$bt] not connected" connect $index $bt fi else logger "no configuration found for bluetooth device $index (check mac address)" fi }
connect() { local index=$1 local bt=$2 local btStatus='notconnected'
local tryPing=1 local tryCon=1 local maxRetry=1 #priority to gamepad 1 #[ $index -eq 0 ] && maxRetry=10
logger "try connecting bluetooth device $index [$bt] maxRetry=$maxRetry..."
#10 attempts for connecting device while [ $tryPing -le $maxRetry ]; do l2ping $bt -c 3 > /dev/null 2>&1 RESPING=$? if [ $RESPING = 0 ]; then logger "[OK][$RESPING] ping bluetooth device $index [$bt]"
tryCon=1 while [ $tryCon -le $maxRetry ]; do bluez-test-input connect $bt &> /dev/null RESCON=$? if [ $RESCON = 0 ]; then #logger "[OK][$RESCON] bluetooth device $index [$bt] connected" btStatus='connected' #xd_init $index $bt else logger "[KO][$RESCON][$tryCon] bluetooth device $index [$bt] connected" btStatus='notconnected' fi
[ $btStatus = 'connected' ] && break tryCon=$(($tryCon + 1)) done else logger "[KO][$RESPING][$tryPing] ping bluetooth device $index [$bt]" btStatus='noping' fi
[ $btStatus = 'connected' ] && break tryPing=$(($tryPing + 1)) done
[ $index -eq 0 ] && BT1_STATUS=$btStatus && logger "bluetooth device $index [$bt] [$BT1_STATUS]" [ $index -eq 1 ] && BT2_STATUS=$btStatus && logger "bluetooth device $index [$bt] [$BT2_STATUS]" } #END functions
#MAIN logger "[START] bluetooth devices monitoring..." 1
while [ 1 ]; do #COUNT_LINES_LOGGER=$(wc -l $LOGGER_FILE | cut -f1 -d" ") if [ $COUNT_LINES_LOGGER -gt $MAX_LINES_LOGGER ]; then #RESET Logger logger "--- bluetooth devices check connections [delai=$DELAI] ---" 1 else logger "--- bluetooth devices check connections [delai=$DELAI] ---" fi #check bluetooth devices status hcitool con|grep -v "^Connections:" > /tmp/btcheck
auto_connect 0 $BT1 auto_connect 1 $BT2
logger "------------------------------------------------------" sleep $DELAI done
logger "[STOP] bluetooth devices monitoring." #END MAIN
exit 0
Dernière édition par Acris le Lun 09 Mar 2015, 06:19, édité 2 fois |
|
| |
SpikeSpiegel Membre d'honneur VIP
Messages : 6181 Réputation : 211 Age : 45 Inscrit le : 07/04/2012
RPI, PI-LEGOBOY, DINGOO A320, GCW-Zero, PocketCHIP
| Msg n°2 Sujet: Re: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Dim 08 Mar 2015, 14:04 | |
| Hello, merci pour cette procédure. Tu peux préciser ce que tu as installé comme package ? Dans le tuto, Installation du dongle: $ sudo apt-get install bluetooth bluez-utils blueman Par contre par défaut je n'ai pas la commande hidd, tu as installé quoi comme autre package ? bluez ? [Vous devez être inscrit et connecté pour voir ce lien]PS: tu peux supprimer la partie xbox du script si tu veux. nouvelle version: [Vous devez être inscrit et connecté pour voir ce lien]Merci |
|
| |
Acris Accro'
Messages : 481 Réputation : 42 Inscrit le : 14/06/2013
| Msg n°3 Sujet: Re: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Dim 08 Mar 2015, 14:10 | |
| - SpikeSpiegel a écrit:
- Hello, merci pour cette procédure.
Tu peux préciser ce que tu as installé comme package ?
Dans le tuto, Installation du dongle: $ sudo apt-get install bluetooth bluez-utils blueman
Par contre par défaut je n'ai pas la commande hidd, tu as installé quoi comme autre package ? bluez ?
[Vous devez être inscrit et connecté pour voir ce lien]
PS: tu peux supprimer la partie xbox du script si tu veux. nouvelle version: [Vous devez être inscrit et connecté pour voir ce lien] Bonjour dans recalbox, tu n'as pas besoin d'installer des packages, j'en ai installé aucun. dans le terminal F4 PUIS ALT+F2 si tu tapes : hidd --connect mac:adress il ne faut pas mettre sudo car tu es deja root, tu as un message derreur ? |
|
| |
SpikeSpiegel Membre d'honneur VIP
Messages : 6181 Réputation : 211 Age : 45 Inscrit le : 07/04/2012
RPI, PI-LEGOBOY, DINGOO A320, GCW-Zero, PocketCHIP
| |
| |
SpikeSpiegel Membre d'honneur VIP
Messages : 6181 Réputation : 211 Age : 45 Inscrit le : 07/04/2012
RPI, PI-LEGOBOY, DINGOO A320, GCW-Zero, PocketCHIP
| |
| |
Acris Accro'
Messages : 481 Réputation : 42 Inscrit le : 14/06/2013
| |
| |
SpikeSpiegel Membre d'honneur VIP
Messages : 6181 Réputation : 211 Age : 45 Inscrit le : 07/04/2012
RPI, PI-LEGOBOY, DINGOO A320, GCW-Zero, PocketCHIP
| |
| |
Acris Accro'
Messages : 481 Réputation : 42 Inscrit le : 14/06/2013
| |
| |
Acris Accro'
Messages : 481 Réputation : 42 Inscrit le : 14/06/2013
| |
| |
SpikeSpiegel Membre d'honneur VIP
Messages : 6181 Réputation : 211 Age : 45 Inscrit le : 07/04/2012
RPI, PI-LEGOBOY, DINGOO A320, GCW-Zero, PocketCHIP
| |
| |
Acris Accro'
Messages : 481 Réputation : 42 Inscrit le : 14/06/2013
| Msg n°11 Sujet: Re: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Lun 16 Mar 2015, 16:38 | |
| Salut tu as intégré hidd ou remplacé la commande bluez, ah remplacé dans le fichier ce qui aurait été intéressant c'est de pouvoir utiliser soit l un soit l autre si la 1ere commande retour une erreur essayer la deuxieme.
Merci ;D
Sous retropie ta manette fonctionne sans problème avec cette commande hidd ? certains sous recalbox, ont essayé , elles s'apparaillent mais la manette fonctionne mal.
tu as pu testé un peu recalbox ?
|
|
| |
SpikeSpiegel Membre d'honneur VIP
Messages : 6181 Réputation : 211 Age : 45 Inscrit le : 07/04/2012
RPI, PI-LEGOBOY, DINGOO A320, GCW-Zero, PocketCHIP
| Msg n°12 Sujet: Re: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Lun 16 Mar 2015, 16:49 | |
| Oui il faudrait mais je manque de temps. Pour moi la commande hidd marche très bien, c'est pour cette raison que je l'utilise à la place de bluez. J'ai également modifié le scan remplacé maintenant par la commande hidd --show Si tu veux tu peux modifier le script pour y intégrer la détection de hidd c'est assez simple il suffit de tester si le fichier existe si c'est le cas tu utilise la commande, par contre il vaut mieux faire ça au démarrage du script (pour éviter de faire ça à chaque fois). Si hidd est installé on utilise ce dernier sinon on utilise bluez et si aucun ben on ne fait rien edit: Non pas testé la recalbox, c'est un très bon système en plus digitallumberjack fait un travail énorme , mais le système n'est pas adapté pour le bidouilleur que je suis! Pour ceux qui ont des soucis le problème ne vient pas de hidd mais plus d'un problème de paramétrage (à mon avis). |
|
| |
Acris Accro'
Messages : 481 Réputation : 42 Inscrit le : 14/06/2013
| |
| |
SpikeSpiegel Membre d'honneur VIP
Messages : 6181 Réputation : 211 Age : 45 Inscrit le : 07/04/2012
RPI, PI-LEGOBOY, DINGOO A320, GCW-Zero, PocketCHIP
| Msg n°14 Sujet: Re: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Lun 16 Mar 2015, 17:06 | |
| Ben le but est aussi d'embarquer le moins de trucs possibles, donc limiter au maximum les composants inutiles. Pour moi le gros souci et la plus grande difficulté c'est que personne n'utilise le système avec le même type de manette et de la même façon... |
|
| |
Acris Accro'
Messages : 481 Réputation : 42 Inscrit le : 14/06/2013
| Msg n°15 Sujet: Re: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Lun 16 Mar 2015, 20:05 | |
| - SpikeSpiegel a écrit:
Pour moi le gros souci et la plus grande difficulté c'est que personne n'utilise le système avec le même type de manette et de la même façon... Bonjour je n'ai pas compris , je pense que l on peut les regrouper par famille le type de manette à cause de la position des boutons , joysticks etc... tu as les playstation, les xbox , les NES etc.... La mienne snakebyte idroid ressemble à la manette de playstation. Là je me prend la tête sur l exploitation du fichier cheat.dat dans mame4all le problème étant que ce fichier n'est pas à jour et que maintenant les cheats sont au format xml et que je trouve pas de convertisseur grrr. |
|
| |
SpikeSpiegel Membre d'honneur VIP
Messages : 6181 Réputation : 211 Age : 45 Inscrit le : 07/04/2012
RPI, PI-LEGOBOY, DINGOO A320, GCW-Zero, PocketCHIP
| Msg n°16 Sujet: Re: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Lun 16 Mar 2015, 21:17 | |
| Ce que je veux dire c'est qu'il est difficile de faire en sorte que tout marche, il existe tellement de gamepads... Il y a toujours un gars qui dans son coin va avoir une manette exotique qui ne marchera pas. Ou bien une exigence particulière qui ne sera pas gérable. Les joies du monde libre |
|
| |
momovanli Padawan
Messages : 149 Réputation : 8 Age : 60 Inscrit le : 21/10/2013
Shield - PSP -
Localisation : Belgique
| Msg n°17 Sujet: Re: [Rpi2][Recalbox][Tuto] Connecter manettes bluetooth au démarrage Lun 04 Mai 2015, 20:59 | |
| hello, je suis un vrai boulet et je n'arrive pas à comprendre :-( si quelqu'un à un peu de temps à me consacrer ou me guider vers des explications pour débutant... si je comprend bien il faut recopier les lignes de codes? il faut certainement faire shift au démarrage du pi et après incorporer les lignes non? ou alors faut faire autrement? j'ai acheté une nes30 qui fonctionne en mode filaire mais... pas en bluetooth. mon adaptateur bluetooth est un asus.. je ne sais pas si il fonctionne pour le pi! je galére c'est dommage qu'il n'y a pas une interface dans recalbox pour gérer le bluetooth comme pour le wi-fi. d'avance merci |
|
| |
Contenu sponsorisé
| |
| |
|