# [RISOLTO] comando da root avvio automatico

## system09

Ancora alle prese con l' ibook,

dopo tantissimi tentativi di configurazione 

tra synaptics e "xorg" per disabilitare il Tap del trackpad

ho scoperto il comando trackpad notap

che mi disabilità questo maledetto tap, sensibilissimo, del mouse.

però funziona solo da root,

come faccio a farlo avviare in automatico?

Ho fatto qualche ricerca ma non ho trovato niente.

Un utente sul forum inglese diceva di mettere in /etc/rc.conf

/usr/sbin/trackpad notap

ho provato ma poi ho dovuto avviare da live e entrare in chroot

per cancellarlo perchè mi dava errori e non si avviava più il sistema.

Grazie!

EDIT: Ricordo che utilizzo openboxLast edited by system09 on Thu Sep 29, 2011 1:25 pm; edited 3 times in total

----------

## koma

purtroppo non ho una gentoo tra le mani ma una volta non esisteva qualcosa tipo /etc/init.d/rc.local ? oppure /etc/conf.d/rc.local

----------

## system09

Su Arch ho provato a usare 

/etc/rc.local 

ma qui su gentoo non so

non vedo nessun file /etc/init.d/rc.local

o /etc/conf.d/rc.local

ho provato a creare il secondo ma non 

ha funzionato, e non saprei neanche cosa metterci,

io ci ho scritto semplicemente trackpad notap,

ma non credo sia corretto.

----------

## k01

da baselayout 2 gli script d'avvio personali vanno messi in /etc/local.d/ se non erro nella forma mieicomandi.start e mieicomandi.stop se necessario

non utilizzo openbox e nemmeno trackpad notap, ma se è un comando che agisce su xorg non è quello il posto giusto per farlo avviare, probabilmente ti risponderebbe con "cannot open display" o simile. con una rapida ricerca ho trovato:

 *Quote:*   

> Proprio come il file menu.xml, ci sono due diverse posizioni per lo script autostart.sh: quella globale, (/etc/xdg/openbox/autostart.sh), e quella utente (~/.config/openbox/autostart.sh). 

 

fonte: http://www.gentoo.org/doc/it/openbox.xml

----------

## system09

So che esiste autostart.sh perchè Openbox l' ho già usato

però lo usavo per avviare programmi da utente normale

esempio mettevo

tint2 &

conky &

ecc...&

ho già provato a metterci dentro

trackpad notap &

ma non ha funzioanto probabilmente perchè richiede

i permessi di root.

Devo provare a fare uno script e metterlo dove mi hai detto "/etc/local.d

non sono molto pratico potreste darmi un aiutino?

su Arch ne usavo due così

```

#!/bin/sh

echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch

```

qui come faccio così??

```

#!/bin/sh

echo DDIS > /usr/sbin/trackpad notap

```

non credo sia la stessa cosa   :Rolling Eyes: 

EDIT: sono riuscito

Ho creato lo script 

```

#!/bin/sh

trackpad notap

```

e l' ho avviato da autostart,sh

ieri probabilmente sbagliavo qualcosa

Grazie!!!!

EDIT: L'errore che facevo era creare lo script con $!/bin/sh invece di #!/bin/sh

----------

## djinnZ

Sono diventato insofferente a questo approccio windozziano del "basta che funzioni" legando la soluzione al contesto senza considerare le alternative. Proviamo a ragionare:

devi lanciare sto benedetto trackpad per impostare il funzionamento del dispositivo di puntamento.

Binari che si occupano di regolare il funzionamento delle periferiche vanno avviati in genere con uno script rc dedicato (così che lo si può abilitare/disabilitare), solo qualora siano legati alla presenza dell'ambiente completo (tutti i benedetti demoni e servizi avviati) o per fare una prova si usa /etc/local.d/*.start.

Da notare che gli script *.start (concepiti più per cose come avviare da remoto un'altra macchina, avviare automaticamente emerge --sync etc) utilizzano l'ambiente di openrc, quindi mancano di molte cose quali localizzazione, path completa per i binari etc. quindi 

```
#!/bin/sh

source /etc/profile

quelchemipare
```

. Nel caso si vogliano usare le funzioni interne ad openrc (per conoscere il nome del runlevel etc.) si deve aggiungere 

```
. /etc/init.d/functions.sh
```

.

Faccio notare che gli script /etc/local.d/*.start potrebbero trovare X che ancora si sta avviando (e quindi non risponde) e potrebbero trovare problemi di autenticazione, oltre che di identificazione del display.

Quindi openrc non è utile al tuo caso e comunque una soluzione valida richiederebbe troppe complicazioni per identificare il server e potrebbe sempre andare a rompere le scatole ad un server remoto (già, non è detto che il server sia sulla stessa macchina che riceve il login).

Per far avviare qualcosa al WM/DE, un volta che ha completato il suo avvio si agisce su autostart (nel tuo caso) od attraverso la tabella servizi su kde etc. Viene avviato ogni volta che quel WM/DE viene avviato;

anche se lo invochi da remoto su un altro server.

Approccio raffazzonato.

L'autostart è stato pensato per cose come avviare automaticamente il programma di posta quando accedi.

Tra l'altro ti troveresti con il puntatore ingestibile (a tuo dire) durante l'avvio, su DE più complessi non è una buona cosa, per esempio su kde se akonadi, phonon o nepomuk richiedono conferma durante l'avvio non puoi far molto.

Per far avviare automaticamente qualcosa al server X, prima del WM/DE, si deve agire in /etc/X11/xinit/xinitrc.d/ (il funzionamento è uguale a quello dei profili, il numero all'inizio stabilisce l'ordine di avvio rispetto agli altri script). Sarà avviato indipendentemente dal wm utilizzato ma solo sul server X attivo su quella macchina.

Strada più consona.

Se però usi diversi WM/DE e qualcuno di questi non ha bisogno del comando in questione potresti pensare di metter mano a /etc/X11/Sessions/nomedelWM-DE identificando tramite un semaforo, creato da uno script in /etc/X11/xinit/xinitrc.d, se è il caso o meno di attivare il comando.

Questa è la via più rigorosa ma, se il comando in questione non provoca un crash di gnome o kde (che per diverse cose, come anche la scelta della tastiera, provvedono direttamente via X protocol ad istruire il server) è inutile complicarsi la vita.

Per i privilegi di root, prima di metter mano a sudo o impostare su bit si verificano i permessi del device ed i gruppi ai quali l'utente o gli utenti sono iscritti.

Spero sia chiaro quale deve essere l'approccio.

Non ho modo di verificare (non installo certo un pacchetto per mac) ma se non mi sbaglio (banale ricerca) dovrebbe essere inrerito in rc (non è legato ad X) ed negli script di wake up o ti ritroverai il tap attivo ogni volta che il sistema va in sospensione.

E per quanto mi riguarda è una mancanza del pacchetto a cui trackpad appartiene.

----------

## system09

 *Quote:*   

> 
> 
> Sono diventato insofferente a questo approccio windozziano del "basta che funzioni" legando la soluzione al contesto senza considerare le alternative.
> 
> 

 

Concordo, hai ragione!!

il bello è che non funziona   :Laughing: 

non so cosa ho visto prima ma fare uno script e farlo avviare da autostart.sh non funziona.

Sei stato chiarissimo ma non so come agire in /etc/X11/xinit/xinitrc.d

creare uno script, per esempio 10-trackpad e inserici 

```
 

#!/bin/sh

source /etc/profile

trackpad notap

```

non mi sembra funzionare

quindi sono fermo come prima

EDIT:

Ci sono arrivato da solo ragionando un pò...dimmi se ti piace:

sono andato in /etc/init.d/mioscript

e ho inserito

```

#!/sbin/runscript

trackpad notap

```

```

# rc-update add mioscript default

```

ho riavviato e ha funzionato

va bene o è sempre uno di quei metodi "basta che funziona" ?

----------

## djinnZ

Ti ho dato una spiegazione per farti capire la logica con la quale si risolvono i problemi ( e mi sono dimenticato un pezzo come al solito  :Embarassed:  )

/etc/X11/xinit serve quando avvii con startx quandop avvii con startDM.sh&ini.d/xdm è xdm (suppongo se è kdm o gdm è un discorso a parte) ad avviare X.

Di norma si agisce su /etc/X11/xdm/Xsession (che è come operare su xinit) ma non sono sicuro di cosa abbiano modificato con openrc e non so quale DM usi quindi prova a guardare gli script cosa combinano (sicuramente è tutto mal documentato) o /etc/X11/Xsession e ~./Xsession se esistono (nel caso vanno creati).

Non vorrei sembrare noioso ma è sicuro che touchpad richiede che x sia avviato? Non dovrebbe agire anche per gpm? Non deve essere richiamato dopo la sospensione?

Se è così devi metterlo in rc e negli script di wake up, te lo ripeto (anzi segnalerei con un bug la necessità di integrarlo).

Tra l'altro la comodità di questi script è che puoi sempre inserire un comando set > vattelappesca per vedere con quali impostazioni girano o se vengono avviati o meno.

 *system09 wrote:*   

> EDIT:
> 
> va bene o è sempre uno di quei metodi "basta che funziona" ?

 è uno degli approcci validi. Agisci sull'hardware locale e se accedi all'utente da remoto non interferisci con il sistema in uso.

Ad esempio kde (che in molte cose è poco coerente) consente di impostare direttamente la localizzazione della tastiera ma la via più corretta è localizzare la tastiera sul server perché non è detto che sarà sempre e soltanto quella del computer su cui gira. (se poi sai che tutt6i i tuoi pc hanno la stessa tastiera puoi anche fregartene ma non è la via più rigorosa e quella volta che avvi da remoto su un server che ha tastiera americana smadonnerai perchè ti ritrovi con le impostazioni italiane)

Ti ricordo però che quando vorrai usare la sospensione dovrai levarti la testa anche con quello temo.

----------

## system09

Allora, inizio con il ringraziarti perchè con il tuo metodo fai ragionare le persone

però, leggendo quello che scrivi qua e la, spesso risulta difficile da mettere in pratica

comunque ripeto che questo ibook mi serve solo come test,

questo trackpad e cose varie poi sul mio pc "normale" non le avrò e quindi

dovrò agire semplicemente su synaptics.conf.

Su questo ibook già avevo intenzione di non installare nessun DM

infatti avvio il tutto con uno startx (se mi servirà).

 *Quote:*   

> 
> 
> Non vorrei sembrare noioso ma è sicuro che touchpad richiede che x sia avviato? Non dovrebbe agire anche per gpm? Non deve essere richiamato dopo la sospensione?
> 
> 

 

Qui devi scusarmi ma non saprei neanche come risponderti, cioè lo so come ma la risposta è un non lo so per tutte e tre le domande,

poi io sinceramente la sospensione non l' ho mai usata l' ho sempre disabilitata in tutti i sistemi.

----------

## djinnZ

 *system09 wrote:*   

> però, leggendo quello che scrivi qua e la, spesso risulta difficile da mettere in pratica

 Se è facile non c'è bisogno di aiuto. E poi devo ringraziare te perchè mi hai dato l'occasione per andare a guardare cosa c'è in xinit.d ed ho visto una cosa che non mi piace.

Probabilmente me ne dimenticherò ma di sicuro non l'avrei mai notato se non mi avesi messo la pulce nell'orecchio.

puoi anche pensare di configurarlo come terminale, non è troppo difficile (con xdm, kdm praticamente non è documentato e gdm ... [censura]).

Se non altro quando userai la sospensione lo sai che devi fare dei ritocchi. (se lofai forse sarà il caso di aprire un bug per proporre l'integrazione del tuo codice)

In generale ribadisco che questo non è un helpdesk. Non si deve rispondere ad indovinelli (serve solo a far incazzare ed è implicitamente vietato) ma non si deve neppure dare la soluzione e basta. La prossima volta che hai da metter mano agli init almeno spero che avrai capito come funzionano e dove andare a guardare.

Altrimenti sarà sempre e solo un aiuto da parte mia (e mai sarai capace di aiutare me).

----------

