Old:Wiimote: differenze tra le versioni

m
Riga 1: Riga 1:
{{stub}}
Questa piccola guida va in soccorso di quanti vorrebbero spegnere il pc da una sessione attiva di XFCE4 senza dover tornare al DM in uso e senza ricorrere all'uso di una shell. Per fare ci� useremo "sudo":
<pre>
$ su
Password:
# apt-get update
# apt-get install sudo
</pre>
Il primo passo � quello di editare il file <tt>/etc/sudoers</tt>.


=Introduzione=
Sebbene il file <tt>/etc/sudoers</tt> possa essere ditato con qualsiasi editor, � molto pi� sicuro usare visudo. Infatti <code>visudo</code> non � altro che una versione leggermente modificata dell'editor <code>vim</code> che non permette di salvare il file <tt>sudoers</tt> se esso contiene errori (in realt� � anche possibile associare a visudo un editor diverso da <code>vim</code>, ma questa � un'altra storia ;-)).
Il Wiimote e' un controller prodotto dalla Nintendo usato come controller per la console Wii.
E' possibile utilizzarlo per controllare numerose applicazioni nell'ambiente Linux, questa guida e una descrizione pratica del suo utilizzo e
di come sfruttare la libreria [http://abstrakraft.org/cwiid/ Cwiid ] per il suo uso all'interno di una applicazione in C o C++.


=Installazione=
Lanciamo dunque <code>visudo</code> dopo esserci loggati come root in una console:
Ci sono varie librerie a disposizione, il sito di riferimento e' sicuramente http://www.wiili.org/, per questa mini-guida si utilizzera'
<pre>
la libreria Cwiid che e' la piu' completa e testata.
$ su
Password:
# visudo
</pre>
Ecco pi� o meno quello che dovrebbe apparire:
<pre>
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#


==Configurazione del sistema==
# Host alias specification
Per poter utilizzare il Wiimote sotto Linux e' necessario che sia attivo il modulo del kernel relativo al usbhid, in Ubuntu digitare
modprobe usbhid


altrimenti [[Debian Kernel Howto |Ricompilare il kernel]] e attivarne il modulo.
# User alias specification


==Pacchetti necessari==
# Cmnd alias specification
Installare i seguenti pacchetti con il nostro amato apt-get:
apt-get install autoconf awk, bison, flex, bluez-utils bluez-hcidump
apt-get install hcitool autotools-dev libbluetooth2-dev libgtk2.0-dev flex bison libcwiid1 libcwiid1-dev


Ora lanciamo hcitool scan premendo contemporaneamente i tasti 1 e 2
# User privilege specification
root    ALL=(ALL) ALL
j3no@kropotkin:~$ hcitool  scan
</pre>
Scanning ...
Come in vim, all'avvio di visudo ci si ritrova in "command mode" e non � possibile inserire testo. Per inserire qualcosa nel file dobbiamo entrare in "insert mode" premendo "i" (oppure <tt>[Ins]</tt>): in basso a sinistra deve apparire "INSERISCI".
        00:19:1D:6B:3D:A3      Nintendo RVL-CNT-01


Se l'operazione riesce il sistema e' pronto per essere utilizzato
Per ottenere quello che vogliamo, sar� sufficiente aggiungere una piccola linea, che abiliter� tutti gli utenti nel gruppo adm ad eseguire i comandi di shutdown e reboot dal menu di xfce:
<pre>
%adm    ALL=(root) NOPASSWD: /usr/sbin/xfsm-shutdown-helper
</pre>
Il risultato finale del nostro sudoers sar� quindi:
<pre>
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#


=Utilizzo della libreria Cwiid=
# Host alias specification
A disposizione avrete dei comandi che vi permetteranno di utilizzare il vostro controller:
*wminput: permette di utilizzare il wiimote come un mouse
*wmgui: e' un'interfaccia grafica per testare tutti gli eventi del controller


==Esempio di implementazione in un programma C ==
# User alias specification
Un esempio lo si trova sul sito di cwiid http://abstrakraft.org/cwiid/browser/trunk/wmdemo/wmdemo.c?rev=179 oppure all'interno della directory con i
sorgenti del programma http://abstrakraft.org/cwiid/downloads/cwiid-0.6.00.tgz nella directory wmdemo.


In linea generale c'e' una struttura dati messa a disposizione dall'API (cwiid_state) che viene passata ad una chiamata (cwiid_get_state) la quale aggiorna la descrizione dello stato dei sensori presenti sul wiimote in quel momento.
# Cmnd alias specification
Prima di far questo ci sara' una fase di connessione (cwiid_open) che chiedera' il BBSID, un codice identificativo che abbiamo precedentemente visto
durante la chiamata del comando "hcitool scan"


--[[Utente:J3no|J3no]] 10:00, 3 giu 2008 (CDT)
# User privilege specification
root    ALL=(ALL) ALL
%adm    ALL=(root) NOPASSWD: /usr/sbin/xfsm-shutdown-helper
</pre>
Ora salviamo il nostro file ed usciamo da visudo. Per fare questo premiamo ESC per tornare in "command mode" e poi:
<pre>
:wq
</pre>
 
Dopo aver riavviato X e rifatto il login, ogni utente appartenete al gruppo adm sar� abilitato alle azioni di riavvio e spegnimento direttamente dal men� di xfce.
 
Per una raccolta dei comandi di vim leggete [http://www.siforge.org/articles/2003/12/15-guida_vim.html qui].
 
 
----
 
Autore: [[Utente:Jango|jango]]
 
Revisione: ~ The Noise
 
[[Categoria:Xfce]][[Categoria:Tips&Tricks]]
89

contributi