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 15/09/2009, à 11:15

daddy.cake

Wiimote, utilisation au démarrage ...

Bonjour à tous,

je peux vous dire que ça fait pas mal de temps que j'écume ce forum sans m'être inscrit, car très souvent trouvé la solution à un problème en fouinant ... mais aujourd'hui je franchi le pas ! smile inscription + post !!!!

Alors voilà, depuis quelques années j'utilise un shuttle dans mon salon pour visionner mes fichiers multimedias. Au niveau Mediacenter je peux dire que je suis assez au point, mythTV, Freevo, elisa (moovida) ... j'en ai essayé pas mal. La semaine dernière, j'ai découvert XBMC !!! et là, je dois dire que je suis sur le cul ... je comprends pas pourquoi j'ai pas essayé avant smile bref ... j'ai également une Wiimote que je voudrais utiliser pour diriger ce petit bijou.

J'ai suivi plusieurs tuto à ce sujet, exemples suivis :
http://passion-xbmc.org/tutoriels-linux/utiliser-une-wiimote-avec-xbmc-sous-ubuntu/
http://knight-galaad.no-ip.org/wordpress/?p=326
http://www.jeuxlinux.fr/a109-Une_Wiimote_sous_Linux.html

Installation et paramètrages fonctionne très bien, mais je suis obligé de tout faire manuellement, là ou je bloque c'est pour rendre tout ça automatique.

le module "uinput" apparaît bien dans ma liste de module quand je vérifie avec lsmod, mais au démarrage de ma session utilisateur je dois quand même saisir :

sudo wminput -c xbmc 00:21:BD:22:D8:54

Le script wiimote.sh placé dans /etc/init.d/ avec un chmod +x pour son execution et un coup de sudo update-rc.d wiimote.sh defaults :

#!/bin/sh
#
# Allow usage of the wiimote to control XBMC media center.
# Make sure to have install the following packages: lswm / wminput
# To know your wiimote address use lswm and follow on screen instrustion
# configuration of buttons can be done here: /etc/cwiid/wminput
#
WIIMOTEADDR=00:21:BD:22:D8:54
# END OF CONFIG SECTION
case "$1" in
start)
echo "Start Wiimote support ..."
echo "Load uinput module ..."
modprobe uinput
echo "starting wminput as daemon ..."
wminput -d -c xbmc $WIIMOTEADDR &
;;
stop)
echo "Stop Wiimote support ..."
killall wminput
;;
restart)
$0 stop && $0 start || exit 1
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 2
esac
exit 0

J'ai également placé 'uinput' dans mon fichier /etc/modules + inséré dans /etc/udev/rules.d/20-cwiid-input.rules la ligne : KERNEL=="uinput", GROUP="admin", MODE="0666"


je pense que le problème vient des droits pour l'execution de wminput mais comment faire ? mon utilisateur pourrait avoir des droits root ? sans utiliser sudo ? ... je suis un peu dans le vague ...

D'avance merci de votre aide.

Hors ligne

#2 Le 15/09/2009, à 11:22

Hawkmoon

Re : Wiimote, utilisation au démarrage ...

Une Wii pour XBMC ? Trop fort !! Je file m'en acheter une !

ls -lrt /etc/rc?.d/*wii*

please


Tagazok à toi, mon frère !

Hors ligne

#3 Le 15/09/2009, à 11:28

daddy.cake

Re : Wiimote, utilisation au démarrage ...

Tu peux m'expliquer s'il te plait ?

résultat de la commande :

lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc6.d/K20wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc5.d/S20wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc4.d/S20wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc3.d/S20wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc2.d/S20wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc1.d/K20wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc0.d/K20wiimote.sh -> ../init.d/wiimote.sh

Hors ligne

#4 Le 15/09/2009, à 11:43

Hawkmoon

Re : Wiimote, utilisation au démarrage ...

Ton script wiimote.sh est bien lancé au démarrage de la machine.
Essaye dans le script

nohup wminput -d -c xbmc $WIIMOTEADDR &

au lieu de

wminput -d -c xbmc $WIIMOTEADDR &

Et lance le script à la main.

sudo /etc/init.d/wiimote.sh

Tagazok à toi, mon frère !

Hors ligne

#5 Le 15/09/2009, à 11:52

daddy.cake

Re : Wiimote, utilisation au démarrage ...

Donc le fichier de sortie, nohup.out :

unable to open uinput

Hors ligne

#6 Le 15/09/2009, à 11:55

Hawkmoon

Re : Wiimote, utilisation au démarrage ...

Peux-tu regarder à quel moment est démarré le bluetooth ?

avant ou après le script ?


Tagazok à toi, mon frère !

Hors ligne

#7 Le 15/09/2009, à 12:00

daddy.cake

Re : Wiimote, utilisation au démarrage ...

Comment je peux vérifier l'ordre  ?

Hors ligne

#8 Le 15/09/2009, à 12:18

Hawkmoon

Re : Wiimote, utilisation au démarrage ...

ls -lrt /etc/rc?.d/*bt*
ls -lrt /etc/rc?.d/*blue*

Tagazok à toi, mon frère !

Hors ligne

#9 Le 15/09/2009, à 12:30

daddy.cake

Re : Wiimote, utilisation au démarrage ...

12:29:26 hostname@philippe[~]$ ls -lrt /etc/rc?.d/*blue*
lrwxrwxrwx 1 root root 19 2009-08-31 12:49 /etc/rc6.d/K74bluetooth -> ../init.d/bluetooth
lrwxrwxrwx 1 root root 19 2009-08-31 12:49 /etc/rc5.d/S25bluetooth -> ../init.d/bluetooth
lrwxrwxrwx 1 root root 19 2009-08-31 12:49 /etc/rc4.d/S25bluetooth -> ../init.d/bluetooth
lrwxrwxrwx 1 root root 19 2009-08-31 12:49 /etc/rc3.d/S25bluetooth -> ../init.d/bluetooth
lrwxrwxrwx 1 root root 19 2009-08-31 12:49 /etc/rc2.d/S25bluetooth -> ../init.d/bluetooth
lrwxrwxrwx 1 root root 19 2009-08-31 12:49 /etc/rc1.d/K74bluetooth -> ../init.d/bluetooth
lrwxrwxrwx 1 root root 19 2009-08-31 12:49 /etc/rc0.d/K74bluetooth -> ../init.d/bluetooth
12:29:28 hostname@philippe[~]$

Hors ligne

#10 Le 15/09/2009, à 12:34

daddy.cake

Re : Wiimote, utilisation au démarrage ...

12:29:28 hostname@philippe[~]$ ls -lrt /etc/rc?.d/*bt*
ls: ne peut accéder /etc/rc?.d/*bt*: Aucun fichier ou dossier de ce type

Hors ligne

#11 Le 15/09/2009, à 13:25

Hawkmoon

Re : Wiimote, utilisation au démarrage ...

Le bluetooth est démarré en 25 et ton script en 20.
Je t'invite à mettre un nombre relativement élevé, mais toujours sur 2 chiffres à la place du 20.
Soit, tu renommes les fichiers en remplaçant 20 par 99
soit tu utilises la commande update-rc.d (que je ne maitrise pas)


Tagazok à toi, mon frère !

Hors ligne

#12 Le 15/09/2009, à 14:56

daddy.cake

Re : Wiimote, utilisation au démarrage ...

Je viens de modifier les liens ... ca a l'air au poil ...

14:52:03 hostname@root[~]# ls -lrt /etc/rc?.d/*wii*
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc6.d/K99wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc5.d/S99wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc4.d/S99wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc3.d/S99wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc2.d/S99wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc1.d/K99wiimote.sh -> ../init.d/wiimote.sh
lrwxrwxrwx 1 root root 20 2009-09-14 12:52 /etc/rc0.d/K99wiimote.sh -> ../init.d/wiimote.sh

J'ai fais la modif à distance par ssh, je testerai ce soir. A noter ce midi que j'ai lancé le script manuellement et sans avoir a taper de mot de passe, puis les touches 1+2 de la wiimote et ca fonctionnait. Au pire je crée un raccourci sur le bureau, mais pour ma femme je preferai que ce soit automatique.

Je tiens à te remercier de ton aide Hawkmoon ! enfin c'est p-e pas fini ...

Hors ligne

#13 Le 21/09/2009, à 17:23

daddy.cake

Re : Wiimote, utilisation au démarrage ...

Bon j'ai trouvé ! ... MDR. J'ai bien le script au démarrage du système, mais je lui ai passé aucun arguments, un START ce serait mieux.
AH le boulet ! ! !!

Faut maintenant que je fasse démarrer tous ça sur la TV en fullscreen et XBMC alway actif
smile ca va être autre chose tout ça.

Hors ligne

#14 Le 24/09/2009, à 22:49

LvR.ubuntu

Re : Wiimote, utilisation au démarrage ...

daddy.cake a écrit :

Bon j'ai trouvé ! ... MDR. J'ai bien le script au démarrage du système, mais je lui ai passé aucun arguments, un START ce serait mieux.
AH le boulet ! ! !!

Faut maintenant que je fasse démarrer tous ça sur la TV en fullscreen et XBMC alway actif
smile ca va être autre chose tout ça.

Salut, je bute sur le meme pb :
j'ai bien uinput au démarrage (ajout dans /etc/modules)
j'ai mis dans /etc/udev/rules.d/20-cwiid-input.rules la ligne KERNEL=="uinput", GROUP="admin", MODE="0666"
et j'ai toujours besoin de sudo pour wminput

donc je viens d'essayer ta méthode du script au démarrage, un update-rc (en priorité 50), mais ce ne marche toujours pas ...
je suis donc aussi un boulet wink t'as fait comment pour que ca marche ?

Hors ligne

#15 Le 25/09/2009, à 00:07

daddy.cake

Re : Wiimote, utilisation au démarrage ...

Et bien, pour que moi quand je placais le script au démarrage (systeme --> Préférence --> Applications au démarrage)
J'avais oublié le 'start' à côté du wiimote.sh

/etc/init.d/./wiimote.sh start

je sais pas si c'est le même problème pour toi ... mais voilà ce qui c'est passé pour moi.

Hors ligne

#16 Le 25/09/2009, à 09:01

LvR.ubuntu

Re : Wiimote, utilisation au démarrage ...

Ah, ok, je n'avais pas essayé comme ca, du coup tu le démarres depuis ta session gnome.

Juste pour être sur, en fait on parle de plusieurs solutions :

- mettre KERNEL=="uinput", GROUP="admin", MODE="0666" dans /etc/udev/rules.d/20-cwiid-input.rules devrait permettre d'utiliser uinput sans les droits root.
(Mais wminput sans sudo ne marche pas chez moi, apparement il y a des choses dans le bugs tracker de launchpad : https://bugs.launchpad.net/ubuntu/+sour … bug/312957).

- mettre le script avec update-rc.d dans les rc.d devrait lancer le script wiimote.sh au boot de la machine.
Cependant moi je ne vois pas le process wminput (ps -ef | grep wminput) après le boot. Il y a donc un pb au lancement du script (qui fonctionne si je le lance manuellement après le boot en faisant sudo /etc/init.d/wiimote.sh start)
Je le vois bien avec ls -lrt /etc/rc?.d/*wii*, donc je suppose qu'il est lancé mais qu'il y a un pb.

Question : comment on peut récupérer les sorties stdin/err des scripts lancés au démarrage ???

- et donc du coup toi tu le lances depuis ta session gnome (donc normalement le reste est inutile, a part peut être la règle udev)

J'essaye ce soir

Dernière modification par LvR.ubuntu (Le 25/09/2009, à 09:26)

Hors ligne

#17 Le 01/10/2009, à 12:01

LvR.ubuntu

Re : Wiimote, utilisation au démarrage ...

bon, moi ca marche toujours pas la wiimote au démarrage sad

Une question, comment je peux avoir les sorties stdout/err des scripts lancés au démarrage (par rc*.d) ?

Hors ligne

#18 Le 01/10/2009, à 12:07

Hawkmoon

Re : Wiimote, utilisation au démarrage ...

dans
/var/log/messages
ou boot.log
ou syslog


Tagazok à toi, mon frère !

Hors ligne

#19 Le 01/10/2009, à 13:19

LvR.ubuntu

Re : Wiimote, utilisation au démarrage ...

ok, je fouillerai la dedans, merci

Hors ligne

#20 Le 05/10/2009, à 10:35

LvR.ubuntu

Re : Wiimote, utilisation au démarrage ...

Bonjour, ma wiimote marche bien au démarrage maintenant, voici comment j'ai fait :

- Il n'y a pas besoin de mettre le module uinput dans /etc/modules. On peut le faire mais le script au démarrage le vérifie, donc je préfère centraliser dans le script.

- Pas besoin non plus des règles udev (qui sont censé donner l'accès a uinput sans les droits root, mais de toute façon ca se suffi pas pour wminput, voir le bug sur launchpad

- il faut installer les paquets suivants : sudo apt-get install lswm wmgui wminput (wmgui ne sert que pour tester la wiimote)

- J'ai réécrit un script de démarrage conforme à la charte debian/ubuntu, qui utilise un fichier de configuration :

/etc/init.d/wminput (faire un sudo chmod +x dessus):

#! /bin/sh

### BEGIN INIT INFO
# Provides:          wiimote
# Required-Start:    $local_fs $syslog $remote_fs bluetooth udev
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Wminput for wiimote initscript
# Description:       Wiimote for wiimote initscript : should be placed in /etc/init.d.
### END INIT INFO

# Author: LvR

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="wminput initscript"
NAME=wminput
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
        # Be sure that uinput module is loaded
        modprobe uinput
        
        # Add specific daemon args
        [ -n "$WMINPUTCONF" ] && DAEMON_ARGS="$DAEMON_ARGS -c $WMINPUTCONF"
        [ -n "$WIIMOTEADDR" ] && DAEMON_ARGS="$DAEMON_ARGS $WIIMOTEADDR"
        [ -n "$EXTRAOPTS"   ] && DAEMON_ARGS="$DAEMON_ARGS $EXTRAOPTS"        
        
        
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
        # Add code here, if necessary, that waits for the process to be ready
        # to handle requests from services started subsequently which depend
        # on this one.  As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        # If the above conditions are not satisfied then add some other code
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
        #
        # If the daemon can reload its configuration without
        # restarting (for example, when it is sent a SIGHUP),
        # then implement that here.
        #
        start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
        return 0
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  #reload|force-reload)
        #
        # If do_reload() is not implemented then leave this commented out
        # and leave 'force-reload' as an alias for 'restart'.
        #
        #log_daemon_msg "Reloading $DESC" "$NAME"
        #do_reload
        #log_end_msg $?
        #;;
  restart|force-reload)
        #
        # If the "reload" option is implemented then remove the
        # 'force-reload' alias
        #
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac

exit 0

fichier de configuration a renseigner :
/etc/default/wminput

# This file is sourced by /etc/init.d/wminput
#
# When wminput is started using the init script, the
# -d option is always used.
#
# Each setting is marked either "required" or "optional";
# leaving any required setting unconfigured will cause
# the service to not start.

# [optional] wiimote mac address :
WIIMOTEADDR=00:21:BD:25:51:C6

# [optional] wminput configuration to use :
WMINPUTCONF=xbmc

# [optional] extra command line options, if any:
EXTRAOPTS=

On peut le tester en faisant : sudo /etc/init.d/wminput start (ou stop/restart), et le mettre au démarrage avec la commande sudo update-rc.d wminput defaults 99

Avec ceci ca marche nickel pour moi (je l'utilise pour xbmc), j'espère que ca peut être utile à qqun.

Hors ligne

#21 Le 31/10/2009, à 17:07

Zugol

Re : Wiimote, utilisation au démarrage ...

Oui ! C'est utile pour moi !

Sous Jaunty uinput fonctionnait bien avec les "rules" et j'avais acheté deux contrôleurs classiques wii pour tout ce qui était émulation. Mais rien à faire avec karmic...

Alors merci pour ce super script qui me sauve la mise !

Y a t'il un moyen pour que 2 porcess de wminput tournent en même temps avec des noms différents ?
J'ai deux manette et je souhaiterai le utiliser ne même temps. Mon ancienne méthode le permettais, mais pas celle ci...

Merci

Dernière modification par Zugol (Le 31/10/2009, à 19:13)


Ordineux depuis 1988

Hors ligne

#22 Le 01/11/2009, à 14:08

Zugol

Re : Wiimote, utilisation au démarrage ...

Bon, et bien c'est le demon qui est en cause et stop toute autre instance de wminput.
Il y a, à priori un bug dans uinput ou udev je ne sais pas, qui ignore les droits affectés dans le paraémtrage "rules".
Je peux choisir le group mais rien d'autre que les droits en lecture. Donc impossible de lancer wminput dans les droits root. Ce qui est paradoxal c'est wmgui accède sans problème ni droit root aux wiimotes...

Bref un wiimote ou rien.


Ordineux depuis 1988

Hors ligne

#23 Le 01/11/2009, à 15:11

Zugol

Re : Wiimote, utilisation au démarrage ...

Finalement je m'en sort avec un bon vieux script pas propre qui ne fait pas appel à start-stop-daemon basé sur le tiens mais qui appel en dur et comme une brute wminput.


Ordineux depuis 1988

Hors ligne

#24 Le 06/11/2009, à 13:58

limax

Re : Wiimote, utilisation au démarrage ...

LvR.ubuntu a écrit :

Bonjour, ma wiimote marche bien au démarrage maintenant, voici comment j'ai fait :

Bah mince alors  j'essayé de faire la même chose mais tes scripts sont bien plus clean que les miens et tout fonctionne en plus.

Est ce que (avec ton autorisation) je peux te citer et mettre l'astuce ici   http://forum.debian-fr.org/

Tu m'a bousillé 2 jours de recherches sur le net et de script inutiles et tout moches grrrrrrr
Merci encore ton service est super.

Hors ligne

#25 Le 09/11/2009, à 16:46

LvR.ubuntu

Re : Wiimote, utilisation au démarrage ...

Oui, bien sur, j'ai posté ici pour partager l'info

Hors ligne